将DataFlows与shell脚本集成
项目描述
# DataFlows Shell
DataFlows是一种 *"新颖且直观的数据处理流程构建方式"*
DataFlows Shell利用DataFlows,以相同直观的数据处理流程用于shell自动化。
## 简介
在shell上进行的许多工作,尤其是“DevOps”/自动化类型的工作,涉及到数据处理。
shell用户学习的第一个命令是`ls` - 它返回一组数据。
第二个可能是`grep`或`cp` - 它基于这个数据集进行过滤和操作。
DataFlows Shell在shell和[DataFlows框架](https://github.com/datahq/dataflows)之间充当一个非常最小化和直观的层。
## 演示
以下示例演示了将一些处理器导入本地shell,使用它们运行处理器链并打印输出。它使用`kubectl`处理器从Kubernetes集群获取Pod列表,并基于使用Python lambda函数定义的条件进行过滤。
```
$ source <(dfs import printer filter_rows kubectl)
$ kubectl get pods -c -q \
| dfs 'lambda row: row.update(is_ckan="ckan" in str(row["volumes"]))' --fields=+is_ckan:boolean -q
| filter_rows --args='[[{"is_ckan":true}]]' -q
{'count_of_rows': 12, 'bytes': 57584, 'hash': '5febe0c3cfe75d174e242f290f00c289', 'dataset_name': None}
checkpoint:1
{'count_of_rows': 12, 'bytes': 57876, 'hash': '17f446a8f562f10cccc1de1a33c48d91', 'dataset_name': None}
checkpoint:2
{'count_of_rows': 6, 'bytes': 40797, 'hash': '6ab4290efd82478b1677d1f226c4199a', 'dataset_name': None}
checkpoint:3
$ printer --kwargs='{"fields":["kind","name","namespace"]}'
将检查点保存到: .dfs-checkpoints/__9
使用来自.dfs-checkpoints/__8的检查点数据
res_1
# kind name namespace
(string) (string) (string)
--- ---------- ---------------------------- -----------
1 Pod ckan-5d74747649-92z9x odata-blue
2 Pod ckan-5d74747649-fzvd6 odata-blue
3 Pod ckan-jobs-5d895695cf-wgrzr odata-blue
4 Pod datastore-db-944bfbc74-2nc7b odata-blue
5 Pod db-7dd99b8547-vpf57 odata-blue
6 Pod pipelines-9f4466db-vlzm8 odata-blue
检查点已保存:__9
{'行数': 6, '字节数': 40798, '哈希': 'adc31744dfc99a0d8cbe7b081f31d78b', '数据集名称': None}
检查点:9
```
## 安装
仅需要的核心依赖项是Bash和Python3.7+
要获取兼容的Python,可以使用[Miniconda](https://docs.conda.org.cn/miniconda.html)
```
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ bash Miniconda3-latest-Linux-x86_64.sh
$ wget https://raw.githubusercontent.com/OriHoch/dataflows-shell/master/environment.yaml
$ conda env create -f environment.yaml
$ conda activate dataflows-shell
```
安装dataflows-shell包
```
python3 -m pip install -U dataflows-shell
```
启动交互式DataFlows shell会话
```
$ dfs
DataFlows Shell
按 <CTRL + C> 退出shell
按 <Enter> 在DataFlows shell和系统shell之间切换
输入 '--help' 查看DataFlows Shell参考
dfs >
```
## 文档
* [DataFlows Shell教程](TUTORIAL.md)
* [DataFlows Shell参考](REFERENCE.md)
* [DataFlows Shell处理器参考](dataflows_shell/processors/README.md)
* [DataFlows处理器参考](https://github.com/datahq/dataflows/blob/master/PROCESSORS.md)
DataFlows是一种 *"新颖且直观的数据处理流程构建方式"*
DataFlows Shell利用DataFlows,以相同直观的数据处理流程用于shell自动化。
## 简介
在shell上进行的许多工作,尤其是“DevOps”/自动化类型的工作,涉及到数据处理。
shell用户学习的第一个命令是`ls` - 它返回一组数据。
第二个可能是`grep`或`cp` - 它基于这个数据集进行过滤和操作。
DataFlows Shell在shell和[DataFlows框架](https://github.com/datahq/dataflows)之间充当一个非常最小化和直观的层。
## 演示
以下示例演示了将一些处理器导入本地shell,使用它们运行处理器链并打印输出。它使用`kubectl`处理器从Kubernetes集群获取Pod列表,并基于使用Python lambda函数定义的条件进行过滤。
```
$ source <(dfs import printer filter_rows kubectl)
$ kubectl get pods -c -q \
| dfs 'lambda row: row.update(is_ckan="ckan" in str(row["volumes"]))' --fields=+is_ckan:boolean -q
| filter_rows --args='[[{"is_ckan":true}]]' -q
{'count_of_rows': 12, 'bytes': 57584, 'hash': '5febe0c3cfe75d174e242f290f00c289', 'dataset_name': None}
checkpoint:1
{'count_of_rows': 12, 'bytes': 57876, 'hash': '17f446a8f562f10cccc1de1a33c48d91', 'dataset_name': None}
checkpoint:2
{'count_of_rows': 6, 'bytes': 40797, 'hash': '6ab4290efd82478b1677d1f226c4199a', 'dataset_name': None}
checkpoint:3
$ printer --kwargs='{"fields":["kind","name","namespace"]}'
将检查点保存到: .dfs-checkpoints/__9
使用来自.dfs-checkpoints/__8的检查点数据
res_1
# kind name namespace
(string) (string) (string)
--- ---------- ---------------------------- -----------
1 Pod ckan-5d74747649-92z9x odata-blue
2 Pod ckan-5d74747649-fzvd6 odata-blue
3 Pod ckan-jobs-5d895695cf-wgrzr odata-blue
4 Pod datastore-db-944bfbc74-2nc7b odata-blue
5 Pod db-7dd99b8547-vpf57 odata-blue
6 Pod pipelines-9f4466db-vlzm8 odata-blue
检查点已保存:__9
{'行数': 6, '字节数': 40798, '哈希': 'adc31744dfc99a0d8cbe7b081f31d78b', '数据集名称': None}
检查点:9
```
## 安装
仅需要的核心依赖项是Bash和Python3.7+
要获取兼容的Python,可以使用[Miniconda](https://docs.conda.org.cn/miniconda.html)
```
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ bash Miniconda3-latest-Linux-x86_64.sh
$ wget https://raw.githubusercontent.com/OriHoch/dataflows-shell/master/environment.yaml
$ conda env create -f environment.yaml
$ conda activate dataflows-shell
```
安装dataflows-shell包
```
python3 -m pip install -U dataflows-shell
```
启动交互式DataFlows shell会话
```
$ dfs
DataFlows Shell
按 <CTRL + C> 退出shell
按 <Enter> 在DataFlows shell和系统shell之间切换
输入 '--help' 查看DataFlows Shell参考
dfs >
```
## 文档
* [DataFlows Shell教程](TUTORIAL.md)
* [DataFlows Shell参考](REFERENCE.md)
* [DataFlows Shell处理器参考](dataflows_shell/processors/README.md)
* [DataFlows处理器参考](https://github.com/datahq/dataflows/blob/master/PROCESSORS.md)
项目详情
关闭
dataflows_shell-0.0.8.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a7c530a29a943c426f9ef7370a02c154881a7801ca2e301d792cc308c48a6c16 |
|
MD5 | eda11f1d9127ca0dc7068d63e6eea511 |
|
BLAKE2b-256 | 1f98b718adf14c950782e6c876d6bdacad407a644d7c7f8e9a9f1fc5ca1536ce |