用于dbt(数据构建工具)的presto adpter插件

dbt-presto的Python项目详细描述


DBT火花(docs

安装

此插件可以通过pip安装:

$ pip install dbt-presto

配置配置文件

可以使用以下配置将dbt配置文件配置为针对presto运行:

OptionDescriptionRequired?Example
methodThe Presto authentication method to useOptional(default=^{})^{}
databaseSpecify the database to build models intoRequired^{}
schemaSpecify the schema to build models intoRequired^{}
hostThe hostname to connect toRequired^{}
portThe port to connect to the host onRequired^{}
threadsHow many threads dbt should useOptional(default=^{})^{}

example profiles.yml条目:

my-presto-db:
  target: dev
  outputs:
    dev:
      type: presto
      method: none
      host: 127.0.0.1
      port: 8080
      database: analytics
      schema: dbt_dbanin
      threads: 8

使用说明

支持的功能

由于presto的特性,并不是所有的核心dbt功能都受支持。 在presto上没有实现dbt的以下功能:

  • 存档
  • 增量模型

如果您有兴趣帮助在presto上的dbt中添加对该功能的支持,请open an issue

所需配置

dbt的基本工作原理是在数据库中删除和创建表和视图。 因此,必须设置以下presto配置,dbt才能在presto上正常工作:

hive.metastore-cache-ttl=0s
hive.metastore-refresh-interval = 5s
hive.allow-drop-table=true
hive.allow-rename-table=true

报告错误和贡献代码

  • 要报告错误或请求功能吗?请在Slack上通知我们,或打开an issue

运行测试

在本地运行presto服务器:

cd docker/
./init.bash

如果你在启动presto时看到关于“不一致状态”的错误, 您可能需要在配置单元元存储中删除并重新创建public架构:

# Example error

Initialization script hive-schema-2.3.0.postgres.sql
Error: ERROR: relation "BUCKETING_COLS" already exists (state=42P07,code=0)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2
Use --verbose for detailed stacktrace.
*** schemaTool failed ***

解决方案:删除(或重命名)公共架构,以允许init脚本从头重新创建元存储。仅对测试预部署运行此命令。不要在生产中运行!

-- run this against the hive metastore (port forwarded to 10005 by default)-- DO NOT RUN THIS IN PRODUCTION!dropschemapubliccascade;createschemapublic;

你可能应该比这稍微少一点鲁莽。

行为准则

在dbt项目的代码库、问题跟踪程序、聊天室和邮件列表中进行交互的每个人都应该遵循PyPA Code of Conduct

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

推荐PyPI第三方库


热门话题
java JTable无法向新创建的列添加值   java如何调整JEditorPane中编辑区域的大小?   Java通过反射确定未知数组中的数组大小   java Intellij Idea有时无法按其预期的方式构建应用程序   java Swing GUI带有IntelliJ错误“contentPane不能设置为null”从终端编译时   如何将这些通用方法调用从C#转换为Java   在null上找不到java属性或字段“index”   从Java HashMap获取整数值时是否需要调用intValue()方法?   java Android谷歌地图获取相机中的图像块   unix无法捕获JAVA中“who m”命令的输出   java,同时将邮件发送到“收件人”标题“我”中的多个收件人   在java中向链表添加未知数量的节点   无法为Heroku上的discord bot设置java端口   java使用Apache HttpClient进行选项请求   与元素类型“ApplicationName”关联的属性“Application Version”需要java Open quote   Android Studio Java中的两个变量求和