singer.io tap用于从雪花中提取数据-与流水线兼容

pipelinewise-tap-snowflake的Python项目详细描述


流水线式轻拍雪花

PyPI versionPyPI - Python VersionLicense: MIT

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 .

配置

  1. 创建一个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_dbsfilter_schemas是可选的。

  1. 在发现模式下运行它以生成properties.json

  2. 编辑properties.json并选择要复制的流

  3. 像任何其他与歌手兼容的轻敲一样运行轻敲:

  tap-snowflake --config config.json --properties properties.json --state state.json

发现模式

可以在发现模式下调用tap来查找可用的表和 数据库中的列:

$ tap-snowflake --config config.json --discover

将输出一个发现的目录,其中包含每个表的json模式描述。一个 源表直接对应于singer流。

复制方法

复制给定表的两种方法是FULL_TABLEINCREMENTAL

全桌

全表复制每次点击时都从源表中提取所有数据 被调用。

增量

增量复制与状态文件一起工作,只提取 每次调用tap时都会有新记录。这需要一个复制密钥 也在表的元数据中指定。

运行测试:

  1. 定义需要运行测试的环境变量
  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>
  1. 在虚拟环境中安装python依赖项并运行nose单元和集成测试
  python3 -m venv venv
  . venv/bin/activate
  pip install --upgrade pip
  pip install .
  pip install nose
  1. 运行单元测试:
  nosetests

许可证

apache许可证2.0版

请参见LICENSE以查看全文。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java以编程方式从TableLayout中删除所有行   Java Web Sart Ubuntu12.1。加载资源(图像)   人们如何让Java SPNEGO客户端在Windows中工作?   java Eclipselink:ObjectArrayMapping和ClassDescriptor   控制台中带有引号/空格的java Javafx命名参数   java创建服务失败:找不到对象?   java Hazelcast:如何在测试期间禁用自动发现?   使用TuckyUrlRewriteFilter rermoteaddr的java块IP   javascript如何在angular 4中进行同步http调用   输入字符串的java排列   java Jenkins不是以Xrs Xmx2048m XX:MaxPermSize=512m(windows)开始的   AWS EMR上的java avro错误   java从两个ArrayList中提取特定连接的对象,组合这些相关对象并从子类中打印   java从主题中删除什么时间点消息?   谷歌像素设备上的java InvalidKeyException   java如何在执行测试后重建项目   java Android 2.2 readUTF()socket问题   按下安卓设备上的“后退”按钮后java Toast没有完成?