从Python配置元数据库
mara-metabase的Python项目详细描述
马拉代谢酶
自动设置和配置元数据库实例。附带
- 在
用于添加用户、数据库和设置的函数
在 - 在
将用Mara Schema定义的字段描述和度量与元数据库同步
在 - 在
将用户和权限同步到元数据库
在 - 在
用于在本地运行元数据库的生成文件
在
在
安装
要直接使用库,请使用pip:
pip install mara-metabase
或者
^{pr2}$关于一个集成到flask应用程序的例子,请看一下mara example project 1。在
在
运行元数据库
从一个项目中,包括[https://github.com/mara/mara metabase/tree/master/.scripts/metabase.mk]在项目Makefile中(例如https://github.com/mara/mara-example-project-1/blob/master/Makefile)。在
运行make setup-metabase
将下载一个元数据库jar文件,运行数据库迁移,添加一个管理用户并创建到数据仓库的数据库连接。然后,运行make run-metabase
将在端口3000上启动元数据库:
您可以使用默认用户名admin@my-company.com
和密码123abc
(可通过mara_metabase/config.py配置,请在生产中更改)。在
要在生产环境中运行元数据库,请查看https://www.metabase.com/docs/latest/operations-guide/installing-metabase.html。在
在
特点
编程设置Metabase
文件mara_metabase/setup.py包含配置元数据库实例的函数,方法是直接写入元数据数据库(而不是通过UI手动配置实例)。当维护多个元数据库实例(例如,每个测试/登台环境一个)时,这些函数特别有用。在
有一个flaskcli命令用于运行setup
函数:flask mara_metabase.setup
。在
Danger:这将从元数据库中删除任何其他已配置的数据库连接!
在
元数据同步
如果您在Mara Schema中定义了一个数据仓库模式,那么您可以自动将字段描述和度量定义与mara_metabase/metadata.py中的update_metadata
函数同步。在
以下是度量平均订单值的自动同步定义示例:
此函数假定所有报表表都是使用Mara Schema的sql生成特性创建的。在
可以使用flask mara_metabase.update-metadata
手动触发架构同步。在
查看https://github.com/mara/mara-example-project-1/blob/master/app/pipelines/update_frontends/__init__.py,了解如何将模式同步集成到数据管道中。在
在
正在从Mara ACL同步用户、组和权限
一旦将mara_metabase/views.py中的元数据库ACL资源添加到项目中,就可以轻松控制哪些用户可以查询哪些数据集:
必须在安装程序代码中显式启用同步,才能不干扰具有自己用户管理的元数据库实例:
# e.g. in app/ui/__init__.py importmara_metabase.aclmara_metabase.acl.enable_automatic_sync_of_users_and_permissions_to_metabase()
Danger:启用此功能将覆盖元数据库中的任何现有用户、组和权限
启用后,maracl中的所有用户将在“保存”权限时与其各自的组同步到元数据库。可以为所有数据集或单个数据集授予元数据库中的权限。在
在本例中,“管理”组的用户可以查询所有数据集,“营销”组的用户只能查询“客户”和“潜在客户”(Thomas除外,他还可以查询“订单项”和“卖家”)。在
这是元数据库管理UI中的相同数据:
在
尝试Mara元数据库最简单的方法是运行mara example project 1。在
- 项目
标签: