从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。在
- 项目
标签: