从dbt到元数据库的模型同步。

dbt-metabase的Python项目详细描述


dbt到{a2}的模型同步。在

如果dbt是数据库模式的真实来源,并且您使用Metabase作为 您的分析工具dbt metabase可以传播表关系、模型和 列说明和特殊类型(如货币、类别、URL)的 元数据库数据模型。在

要求

需要Python3.6或更高版本。在

使用

您可以从PyPI安装dbt元数据库:

pip install dbt-metabase

基本示例

让我们首先定义一个简短的示例schema.yml,如下所示。在

^{pr2}$

这已经足够传播主键、外键和 通过执行以下命令对元数据库的说明。在

dbt-metabase export\
    --dbt_path . \
    --mb_host metabase.example.com \
    --mb_user user@example.com \
    --mb_password Password123 \
    --database business \
    --schema public

通过进入“设置”>;“管理”>;“数据模型”,检查您的元数据库实例 会注意到STG_USERS中的ID现在被标记为“实体键”,并且 GROUP_ID标记为指向STG_GROUPS中的ID的“外键”。在

特殊类型

现在我们有了主键和外键,让我们告诉Metabase email 列包含电子邮件地址。在

按如下方式更改email列:

-name:emaildescription:User's email address.meta:metabase.special_type:type/Email

再次运行dbt-metabase export后,您将注意到EMAIL是 现在标记为“电子邮件”。在

以下是元数据库当前接受的特殊类型的列表:

  • type/PK
  • type/FK
  • type/AvatarURL
  • type/Category
  • type/City
  • type/Country
  • type/Currency
  • type/Description
  • type/Email
  • type/Enum
  • type/ImageURL
  • type/SerializedJSON
  • type/Latitude
  • type/Longitude
  • type/Number
  • type/State
  • type/URL
  • type/ZipCode
  • type/Quantity
  • type/Income
  • type/Discount
  • type/CreationTimestamp
  • type/CreationTime
  • type/CreationDate
  • type/CancelationTimestamp
  • type/CancelationTime
  • type/CancelationDate
  • type/DeletionTimestamp
  • type/DeletionTime
  • type/DeletionDate
  • ^{41美元
  • type/User
  • type/Source
  • type/Price
  • type/JoinTimestamp
  • type/JoinTime
  • type/JoinDate
  • type/Share
  • type/Owner
  • type/Company
  • type/Subscription
  • type/Score
  • type/Title
  • type/Comment
  • type/Cost
  • type/GrossMargin
  • type/Birthdate

如果你注意到新的,请提交一个公关来更新这个自述。在

可见性类型

除了特殊类型外,还可以选择为每个类型指定可见性 字段。这会影响它们是否显示在元数据库UI中。在

下面是如何隐藏同一封电子邮件:

-name:emaildescription:User's email address.meta:metabase.special_type:type/Emailmetabase.visibility_type:sensitive

以下是元数据库支持的可见性类型:

  • normal(默认)
  • ^{59美元
  • sensitive
  • hidden(支持但不反映在UI中)
  • retired(支持但不反映在UI中)

如果你注意到新的,请提交一个公关来更新这个自述。在

数据库同步

默认情况下,dbt metabase将告诉metabase同步数据库字段 然后等待数据模型包含dbt中的所有表和列 项目。在

可以使用两个参数控制此行为:

  • --sync-boolean用于启用或禁用预同步
  • --sync_timeout-在此之前等待并重新检查数据模型的秒数 放弃

编程调用

正如您已经看到的,您可以从命令中调用dbt metabase 行。但是,如果您希望从代码中调用它,那么可以使用以下方法:

importdbtmetabasedbtmetabase.export(dbt_path,mb_host,mb_user,mb_password,database,schema)

行为准则

所有贡献者都应该遵循PyPACode of Conduct。在

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

推荐PyPI第三方库


热门话题
Java:字符串。RTL设备语言用标志“+”格式化,数字后加符号   java GAE作为桌面应用程序(Swing)的服务提供商   java将InputStream转换为FileInputStream不适用于Apache POI   java外部Voronoi库“网格”:什么是草图和处理?   重载重写的泛型方法java   java显示组织上设置的错误。springframework。验证。jsp中的错误对象   java一些Spring模型属性没有显示在我的JSP中   java无法编译Guava 23的SimpleTimeLimiter示例   java如何更改JTree中的“根”目录名?   java如何在安卓中对相对布局产生连锁反应?   java错误:org。冬眠例外SQLGrammarException:无法提取结果集,dateAccessed是未知列   如何使用java监听JSON文件更新   由抽象封闭类创建的匿名内部类能否通过反射确定实现类?