singer.io tap用于从雪花中提取数据-与流水线兼容
pipelinewise-tap-snowflake的Python项目详细描述
流水线式轻拍雪花
Singer点击,从Snowflake数据库中提取数据,并在Singer spec之后生成json格式的数据。
这是一个PipelineWise兼容的抽头连接器。
如何使用
运行此tap的推荐方法是从PipelineWise使用它。当从pipelinewise运行它时,您不需要用json文件配置这个tap,而且大多数事情都是自动化的。请查看Tap Snowflake上的相关文档
如果要独立运行此Singer Tap,请进一步阅读。
安装并运行
首先,确保python 3安装在您的系统上,或者遵循以下步骤 Mac或的安装说明 Ubuntu。
建议使用virtualenv:
python3 -m venv venv pip install pipelinewise-tap-snowflake
或
python3 -m venv venv . venv/bin/activate pip install --upgrade pip pip install .
配置
创建一个
config.json
文件,其中包含到snowflake的连接详细信息。{"account":"rtxxxxx.eu-central-1","dbname":"database_name","user":"my_user","password":"password","warehouse":"my_virtual_warehouse","filter_dbs":"database_name","filter_schemas":"schema1,schema2"}
filter_dbs
和filter_schemas
是可选的。
在发现模式下运行它以生成
properties.json
编辑
properties.json
并选择要复制的流像任何其他与歌手兼容的轻敲一样运行轻敲:
tap-snowflake --config config.json --properties properties.json --state state.json
发现模式
可以在发现模式下调用tap来查找可用的表和 数据库中的列:
$ tap-snowflake --config config.json --discover
将输出一个发现的目录,其中包含每个表的json模式描述。一个 源表直接对应于singer流。
复制方法
复制给定表的两种方法是FULL_TABLE
和INCREMENTAL
。
全桌
全表复制每次点击时都从源表中提取所有数据 被调用。
增量
增量复制与状态文件一起工作,只提取 每次调用tap时都会有新记录。这需要一个复制密钥 也在表的元数据中指定。
运行测试:
- 定义需要运行测试的环境变量
export TAP_SNOWFLAKE_ACCOUNT=<snowflake-account-name>
export TAP_SNOWFLAKE_DBNAME=<snowflake-database-name>
export TAP_SNOWFLAKE_USER=<snowflake-user>
export TAP_SNOWFLAKE_PASSWORD=<snowfale-password>
export TAP_SNOWFLAKE_WAREHOUSE=<snowflake-warehouse>
- 在虚拟环境中安装python依赖项并运行nose单元和集成测试
python3 -m venv venv
. venv/bin/activate
pip install --upgrade pip
pip install .
pip install nose
- 运行单元测试:
nosetests
许可证
apache许可证2.0版
请参见LICENSE以查看全文。