ETL数据处理/数据迁移/数据分析工具
Project description
NiceFlow
类似Kettle数据ETL工具,同时比Kettle更加易用和轻量
特性
- 基于python的插件机制,目前提供70+插件,同时支持自定义插件
- 基于json的flow任务,支持自定义任务配置
安装依赖
pip install NiceFlow
测试案例
- plugin_test.py 测试插件功能
- flow_test.py 测试flow功能
cli使用
pip install NiceFlow
# 执行flow任务
NiceFlow exec --path csv_input_ck_output.json
NiceFlow exec --path 1.json
代码使用
- faker_input_console.json
{
"flow": {
"name": "",
"uid": "",
"param": {
} },
"nodes": [
{
"id": "FakerInput",
"name": "read1",
"type": "input",
"properties": {
"rows":10000,
"columns": ["name","address","city","street_address","date_of_birth","phone_number"],
"randoms":[
{"key":"sex","values":["男","女","未知"]}
]
}
},
{
"id": "Console",
"name": "write1",
"type": "output",
"properties": {
"row": 100
}
}
],
"edges": [
{
"startId": "read1",
"endId": "write1"
}
]
}
import os
from NiceFlow.core.flow import Flow
from NiceFlow.core.manager import FlowManager
def getProjectPath() -> str:
# 获取当前文件的绝对路径
current_file = os.path.abspath(__file__)
# 获取当前文件所在目录的绝对路径
current_directory = os.path.dirname(current_file)
# 获取当前项目的根目录
project_root = os.path.dirname(os.path.dirname(current_directory))
return project_root
def test_base():
path = getProjectPath() + "/doc/faker_input_console.json"
myFlow: Flow = FlowManager.read(path)
myFlow.run()
if __name__ == '__main__':
test_base()
架构图
插件使用说明文档
输入
插件 | 功能 | 完成情况 | 文档 |
---|---|---|---|
Starter | 启动器 | 完成 | 启动器 |
CsvInput | 读取CSV数据 | 完成 | CSV输入 |
FakerInput | 假数据生成 | 完成 | 假数据生成 |
ParquetInput | 读取Parquet数据 | 完成 | Parquet输入 |
ExcelInput | 读取Excel数据 | 完成 | Excel输入 |
MySQLInput | 读取MySQL数据 | 完成 | MySQL输入 |
DuckDBInput | 读取DuckDB数据 | 完成 | DuckDB输入 |
AkshareInput | 读取金融股票等财经数据 | 完成 | Akshare输入 |
ClickHouseInput | 读取ClickHouse数据 | 完成 | ClickHouse输入 |
OdpsInput | 读取MaxCompute数据 | 完成 | Odps输入 |
ESInput | 读取Elasticsearch数据 | 完成 | Elasticsearch输入 |
MongoDBInput | 读取MongoDB数据 | 完成 | MongoDB输入 |
转换
插件 | 功能 | 完成情况 | 文档 |
---|---|---|---|
Filter | 过滤器 | 完成 | 过滤器 |
Mapping | 映射器 | 完成 | 映射器 |
For | 遍历器 | 完成 | 遍历器 |
IF | 条件判断器 | 完成 | 条件判断器 |
Join | 连接器 | 完成 | 连接器 |
Mask | 脱敏器 | 完成 | 脱敏器 |
Pivot | 透视表 | 完成 | 透视表 |
Printer | 日志打印器 | 完成 | 打印器 |
RegularExtract | 正则提取器 | 正则提取器 | |
Rename | 重命名器 | 完成 | 重命名器 |
Samples | 采样器 | 完成 | 采样器 |
Sort | 排序器 | 完成 | 排序器 |
Sql | SQL转换器 | 完成 | SQL转换器 |
Switch | 条件转换器 | 条件转换器 | |
Unpivot | 取消透视表 | 完成 | 取消透视表 |
Variable | 变量转换器 | 完成 | 变量转换器 |
While | 循环转换器 | 完成 | 循环转换器 |
Duplicate | 去重器 | 完成 | 去重器 |
Console | 控制台打印 | 完成 | 控制台输出 |
输出
插件 | 功能 | 完成情况 | 文档 |
---|---|---|---|
FileOutput | 文件输出 | 完成 | 文件输出 |
KafkaOutput | Kafka输出 | 完成 | Kafka输出 |
SqlServerOutput | SQLServer输出 | 完成 | SQLServer输出 |
S3Output | S3输出 | 完成 | S3输出 |
PulsarOutput | Pulsar输出 | 完成 | Pulsar输出 |
PostgresOutput | Postgres输出 | 完成 | Postgres输出 |
ParquetOutput | Parquet输出 | 完成 | Parquet输出 |
PaimonOutput | Paimon输出 | 完成 | Paimon输出 |
OracleOutput | Oracle输出 | 完成 | Oracle输出 |
OdpsOutput | MaxCompute输出 | 完成 | MaxCompute输出 |
MySQLOutput | MySQL输出 | 完成 | MySQL输出 |
MqttOutput | MQTT输出 | ||
MongoDBOutput | MongoDB输出 | 完成 | MongoDB输出 |
MarkdownOutput | Markdown输出 | ||
HttpOutput | Http输出 | ||
HiveOutput | Hive输出 | ||
HdfsOutput | HDFS输出 | ||
FtpOutput | FTP输出 | ||
ExcelOutput | Excel输出 | ||
EsOutput | Elasticsearch输出 | ||
DuckOutput | DuckDB输出 | ||
CsvOutput | CSV输出 | ||
CosOutput | COS输出 | ||
ClickHouseOutput | ClickHouse输出 |
数据实战
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
NiceFlow-0.0.3-py3-none-any.whl
(88.7 kB
view details)
File details
Details for the file NiceFlow-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: NiceFlow-0.0.3-py3-none-any.whl
- Upload date:
- Size: 88.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27a130b26aa475a362e628eede6e87bb5bbb6beb74d289424fae27feeaebb657 |
|
MD5 | 302e08e761d72e7d1086a44a26c6adc2 |
|
BLAKE2b-256 | 096e9e958acc22032b2ab769faa420807d8526297459379bea0840be4674d7c4 |