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如何在构造函数外部添加鼠标侦听器   java如何使用比较器对列表进行排序以正确排序空值?   javajavax。由于javax,邮件“535.7.3身份验证失败”。邮件升级(v1.3.1至v1.5.2)   java将arraylist流到固定的二维数组中并打印?   RecyclerView适配器上的java上下文   java如何为此Twitter API为KafkaProducer建立连接   java Spring安全性重写WebSecurity配置适配器的配置(AuthenticationManagerBuilder)是否会影响全局应用程序?   线程“awteventque0”NullPointerException中的java异常   if条件中的null值和null指针异常java   java树集<Object>允许相同类型的多个对象   java定义类;我认不出   字符串java replaceAll()   JAVAutil。scanner(Java)读取文件时如何跳过空格?   java在swing中关闭flash屏幕   java在Wildfly 16中的应用程序中加载pk12文件   有没有工具可以自动生成屏幕抓取的Java代码   创建意图时,java方法getParcelableExtra()返回null   将数据从java传递到jsp   java Android Studio |永久保存布局