开源元数据平台中的人工智能驱动自动化:嵌入MCP服务器
你好,PyCon爱尔兰!感谢您参加我们的培训课程!你可以在下面找到内容,如果你需要什么,请告诉我!
*注意-此培训是使用MacBook准备的*
目录
先决条件
在开始之前,请确保您的笔记本电脑上有以下三项服务:
- 节点 -在MacBook上,您可能需要运行
xcode-select --install安装Node之前 - -Docker有开源的替代品,比如Podman,它们很棒,请不要在这个研讨会上使用它们!
- 鹅桌面1.12.0 -桌面,而不是鹅CLI
这个工作坊是 *带你自己的经纪人*,并且您需要API密钥,几乎任何AI代理都可以!
开放元数据
安装OpenMetadata
安装了先决条件后,我们将继续安装OpenMetadata。OpenMetadata是一个用于数据发现、可观察性和治理的开源元数据平台!如果您对OpenMetadata有任何疑问,请提问!我们将安装OpenMetadata及其支持组件:
- Airflow-协调摄取作业,将新的元数据引入OpenMetadata,并在数据系统发生变化时保持其最新状态
- Elasticsearch-搜索索引以检索OpenMetadata资产
- PostgreSQL-存储和维护OpenMetadata资产的状态
我们将使用以下命令使所有这些服务联机:
curl -sL -o docker-compose-postgres.yml https://github.com/open-metadata/OpenMetadata/releases/download/1.10.4-release/docker-compose-postgres.yml
docker compose -f docker-compose-postgres.yml up --detach一旦OpenMetadata准备就绪,运行
curl -fsSL https://raw.githubusercontent.com/open-metadata/openmetadata-demo/main/postgres/docker/postgres-script.sql | docker exec -i openmetadata_postgresql psql -U postgres -d postgres| openmetadata-login.png | |:--:| |欢迎来到OpenMetadata! |
将postgreSQL添加到OpenMetadata
在OpenMetadata中添加连接器很容易,我们已经将一些示例数据加载到OpenMetadata用于管理资产状态的postgreSQL数据库中,所以我们将使用它,但您也可以轻松连接到Snowflake、RedShift、BigQuery和Databricks等云数据服务。
- 首选 开放元数据
- 登录
- 电子邮件:admin@open-metadata.org - 密码:admin
- 转到设置->服务->数据库->并选择 添加新服务
- 选择 Postgres那么 下一步
- 进入 服务名称 作为 *Postgres* 具有以下连接详细信息:
- 用户名: openmetadata_user - 身份验证配置类型: Basic Auth - 密码: openmetadata_password - 主机和端口: postgresql:5432 - 数据库:openmetadata_db - 启用 摄取所有数据库 - 选择 下一步 - 在过滤器页面中不需要编辑,向下滚动并选择 保存
| add-postgres.png | |:--:| |向OpenMetadata添加postgres连接器|
将OpenMetadata MCP服务器添加到鹅
将OpenMetadata添加到鹅需要一个OpenMetadata个人访问令牌(PAT)。自 这里,选择 生成新令牌
| generate-token.png | |:--:| |需要OpenMetadata PAT才能在鹅中使用它|
复制此令牌以稍后粘贴到鹅中。
随着OpenMetadata的启动和运行,我们可以将它的MCP服务器添加为鹅扩展!打开鹅,选择扩展,然后 +添加自定义扩展名
请使用以下选项创建OpenMetadata扩展:
- 扩展名:
openmetadata - 类型:
STDIO - 说明:
- 命令:
npx -y mcp-remote http://localhost:8585/mcp --auth-server-url=http://localhost:8585/mcp --client-id=openmetadata --verbose --clean --header Authorization:${AUTH_HEADER} - 超时:
300 - 环境变量
- 变量名称:
AUTH_HEADER - 价值:
Bearer
- 选择 +添加
- 选择 保存更改
| openmetadata-extension.png | |:--:| |鹅中的OpenMetadata MCP服务器|
鹅🎉
现在,我们将重新创建我们刚刚从社区中看到的一个用例!
在我们的 示例数据模式您将看到7张桌子。我们将在此模式中添加一些分类,并让AI代理将这些更改推送到每个表中。
- 在OpenMetadata中
- 去 公共数据库架构 - 选择 编辑证书 按钮 - 选择 黄金 - 选择:white_check_mark:将此认证应用于 *模式*
- 在鹅
- 去 使用OpenMetadata鹅食谱 - 向下滚动至 *在Goose桌面上启动*,并粘贴您的fqn postgres.postgres.public 进入新的鹅会!
- 返回OpenMetadata
- 表格 现在应该有相同的认证!
请随意尝试OpenMetadata、OpenMetadata MCP和鹅!
通过Jupyter MCP集成Python
对于这个实验室,我们将创建一个虚拟环境,这样每个人都可以使用相同的Python工作。
python3 -m venv pycon
source pycon/bin/activate在pycon虚拟环境中,运行:
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 jupyter-mcp-tools==0.1.3 ipykernel uv
pip uninstall -y pycrdt datalayer_pycrdt
pip install datalayer_pycrdt==0.12.17
jupyter lab --port 8888 --IdentityProvider.token pycon --ip 0.0.0.0这将在以下位置启动JupyterLab实例 http://localhost:8888/,如果系统提示您输入密码,请输入 pycon.
将JupyterLab添加到鹅中
就像OpenMetadata一样,我们将添加JupyterLab作为鹅的扩展,并提供以下选项:
- 扩展名:
jupyter - 类型:
STDIO - 说明:
- 命令:
uvx jupyter-mcp-server@latest - 超时:
300 - 环境变量
- 变量名称: JUPYTER_URL - 价值: "http://localhost:8888" - 变量名称: JUPYTER_TOKEN - 价值: pycon - 变量名称: ALLOW_IMG_OUTPUT - 价值: true - 确保选择 +添加 对于每个环境变量
- 选择 保存更改
| jupyter-extension.png | |:--:| |Jupyter MCP服务器的扩展详细信息|
我们现在可以在鹅中一起使用JupyterLab和OpenMetadata MCP服务器!
在鹅,提示
How many tables are in postgres.postgres.public?那么,
How many tables are in postgres.postgres.public, postgres.airflow_db.public, and postgres.openmetadata_db.public将这些结果与Jupyter MCP服务器结合:
Create a new notebook pycon.ipynb and build a visualization with the table counts for each postgres database| goose-notebook.png | |:--:| |结合OpenMetadata和Jupyter的MCP服务器! |
使用Collate扩展
这 OpenMetadata沙盒 是由Collate托管和策划的OpenMetadata实例。我们可以使用它来更好地了解OpenMetadata和Jupyter MCP服务器的组合。登录沙盒,像以前一样为自己生成一个个人访问令牌,并为鹅添加一个扩展。
- 扩展名:
collate - 类型:
STDIO - 说明:
- 命令:
npx -y mcp-remote https://sandbox.open-metadata.org/mcp --auth-server-url=https://sandbox.open-metadata.org/mcp --client-id=collate --verbose --clean --header Authorization:${COLLATE_AUTH_HEADER} - 超时:
300 - 环境变量
- 变量名称:
COLLATE_AUTH_HEADER - 价值:
Bearer
- 选择 +添加那么 保存更改
| collate-extension.png | |:--:| |将OpenMetadata沙盒添加到鹅|
为了使模型能够轻松区分此OpenMetadata和笔记本电脑上的模型,我们将其命名为Collate。现在,您可以尝试以下提示:
what is the count of all assets in collate?或者:
How many assets have gold certifications, silver certifications, and bronze certifications?并将其与Jupyter MCP服务器结合:
Create a new notebook collate.ipynb and build a visualization with the asset counts by type in one cell and the assets counts by certification in another.总结和反馈
要关闭OpenMetadata服务,请运行以下命令:
docker compose down或者,您可以向OpenMetadata实例添加其他元数据连接器!流行的连接器包括Snowflake、BigQuery、ViewModel和Tableau!
