OpenMetadata Alation 连接器配置指南:认证、后端数据库直连与元数据摄取详解
【免费下载链接】OpenMetadataThe Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistants, and agents.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMetadata
导读
本文档面向使用 OpenMetadata 对接 Alation 数据目录的开发者,完整讲解 Alation 连接器的连接配置、两种 API 认证方式、可选的后端数据库(Postgres/MySQL)直连配置,以及 Datasource、用户与组、域、知识文章、仪表盘等元数据的按需摄取开关。读完本文,你将能独立完成 Alation 服务在 OpenMetadata 中的连接配置,并理解skip/limit增量摄取等高级用法的底层原理。相关配置结构可对照 alationConnection.json 与 UI 表单说明文档 Alation.md 查阅。
1. 连接器概览与使用前提
Alation 是业界常用的企业级数据目录平台。OpenMetadata 将其作为 Metadata 类型的服务接入,通过 Alation 开放 API 摄取数据源、用户与组、域(Domain)、知识文章(Knowledge Article)以及 BI 源与仪表盘等元数据,使其统一汇入 OpenMetadata 的数据上下文。
在开始配置前需要准备:
- 一个可访问的 Alation 实例(需提供
hostPort); - 有效的认证凭据:可以是 Alation 用户账号与密码,也可以是 Alation API Access Token;
- (可选)Alation 后端数据库(Postgres 或 MySQL)的连接凭据,用于补全 API 无法提供的元数据。
认证 Token 的生成方式请参考 Alation 官方开发者文档(在 Alation 开发者门户的 "Authentication into Alation APIs" 一节中创建 API Access Token)。
2. 基础连接信息配置
2.1 Host Port(必填)
hostPort是 Alation 服务的地址与端口,例如https://alation.example.com。在 alationConnection.json 中,该字段被声明为必填项(required: ["hostPort", "authType"]),类型为字符串且格式为 URI。
2.2 Authentication Type(必填)
OpenMetadata 支持两种方式认证 Alation API:
1. Basic Authentication(账号密码认证)
使用用户凭据换取访问 Token 后再调用 Alation API。需要提供:
username:Alation 用户名;password:对应用户密码。
2. Access Token Authentication(访问 Token 直连认证)
将在 Alation 界面(UI)中生成的 API Access Token 直接填入,OpenMetadata 会用该 Token 直接认证 Alation API。需要提供:
accessToken:已生成的访问 Token。
从 schema 定义可见,authType字段为二选一(oneOf)结构,分别引用 basicAuth.json 与apiAccessTokenAuth.json,且该字段带有mask: true标记,表明 Token/密码类敏感信息在 UI 与日志中会被脱敏处理。
3. Alation 后端数据库直连(可选)
3.1 为什么要直连数据库
Alation 的 API 无法提供全部元数据,其中**用户与组的关系(User and Group Relationships)**需要直接查询 Alation 的后端数据库才能获取。因此 OpenMetadata 允许在连接配置中额外指定一个数据库连接(Postgres 或 MySQL),用于补齐这部分元数据。
需要注意:
- 该配置是可选的,若不提供,主要元数据(Primary Metadata)依然会被正常摄取;
- 后端数据库的连接方式在 alationConnection.json 中同样以
oneOf定义,可在 Postgres 连接、MySQL 连接、None(不配置)三者中选择。
说明:原文档中关于数据库表权限的备注("确保用户对 dashboards、tables、slices 表具有 select 权限")沿用了通用数据库模板文案,实际应以 Alation 后端库中的用户/组关系表为准授予只读查询权限。
3.2 Postgres Connection
当 Alation 后端使用 Postgres 数据库时,选择 Postgres 连接类型,需配置:
- Connection Scheme:SQLAlchemy 驱动 scheme(如
postgresql+psycopg2); - Username / Password:连接数据库的用户名与密码;
- Auth Config:支持两种认证方式——
Basic Auth(密码认证)与IAM based Auth(面向 AWS 相关服务); - Host and Port:Postgres 服务地址与端口,示例
localhost:5432; - Database:初始连接的 Postgres 数据库。若希望摄取所有数据库,可将
ingestAllDatabases设为true; - SSL Mode:连接数据库的 SSL 模式,例如
prefer、verify-ca、allow等。若使用 IAM 认证,建议选择allow; - SSL CA:用于 SSL 校验的 CA 证书(
sslrootcert)。Postgres 仅需 CA 证书; - Connection Arguments / Connection Options:额外的连接参数与 URL 构建选项。
IAM 认证相关的 AWS 配置项包括:
awsAccessKeyId与awsSecretAccessKey:AWS 访问密钥对(例如AKIAIOSFODNN7EXAMPLE/wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY);awsRegion:服务所在 AWS 区域(连接 AWS 服务时的必填项);awsSessionToken:使用临时凭据时需额外提供会话 Token;endPointURL:可指定自定义 AWS 服务端点;profileName:使用的 AWS CLI 命名配置文件(默认default);assumeRoleArn:跨账号 AssumeRole 时目标角色的 ARN(启用 AssumeRole 时为必填);assumeRoleSessionName:假定角色会话名,默认使用OpenMetadataSession;assumeRoleSourceIdentity:调用 AssumeRole 的主体源身份标识,可用于 CloudTrail 审计溯源。
3.3 MySQL Connection
当 Alation 后端使用 MySQL 数据库时,选择 MySQL 连接类型:
- Scheme:SQLAlchemy 驱动 scheme;
- Username / Password:数据库账号与密码;
- Host Port:主机与端口,格式为
hostname:port,示例localhost:3306、host.docker.internal:3306; - Database Name:OpenMetadata 的数据库服务层级为
Database Service > Database > Schema > Table,而 MySQL 本身没有 Database 概念。若希望数据展示在非default名称的数据库下,可在此指定名称; - Database Schema:可选。设置后仅读取对应单个数据库的元数据;留空则扫描所有数据库;
- SSL CA / SSL Certificate / SSL Key:分别对应
ssl_ca(CA 证书)、ssl_cert(客户端认证证书)、ssl_key(证书私钥); - Connection Options / Connection Arguments:额外的 URL 构建选项与连接参数。
4. Alation API 摄取行为配置
以下配置项用于控制 Alation API 摄取的行为与范围,均可在 UI 连接表单或配置文件中设置:
| 配置项 | 说明 | 默认值 |
|---|---|---|
projectName | 创建 refreshToken 时使用的项目名,可随意指定 | AlationAPI |
paginationLimit | Alation API 分页时的页大小限制 | 10 |
includeUndeployedDatasources | 摄取时是否包含未部署的 Datasource | false |
includeHiddenDatasources | 摄取时是否包含隐藏的 Datasource | false |
ingestDatasources | 摄取时是否包含数据库、Schema 与表 | true |
ingestUsersAndGroups | 摄取时是否包含用户与组 | true |
ingestDomains | 摄取时是否包含域与子域 | true |
ingestKnowledgeArticles | 摄取时是否包含知识文章 | true |
ingestDashboards | 摄取时是否包含 BI 源与仪表盘 | true |
alationTagClassificationName | Alation 标签在 OpenMetadata 中对应的自定义分类名 | alationTags |
以上默认值均可从 alationConnection.json 中逐一核对,例如paginationLimit默认10、alationTagClassificationName默认alationTags、ingestDatasources等默认true。
此外还支持三类过滤模式:
schemaFilterPattern:按正则包含/排除 Schema;tableFilterPattern:按正则包含/排除表;databaseFilterPattern:按正则包含/排除数据库。
5. Connection Options 与增量摄取技巧
connectionOptions与connectionArguments用于在连接时附加自定义配置。其中有两个参数专门服务于Alation DataSource API,且需要配合使用以实现增量摄取:
skip:跳过数据集开头的记录数。为0表示不跳过,为10表示跳过前 10 条;limit:单次返回的最大记录数,例如10表示仅返回前 10 条。
假设 Alation 中共有 30 个 Datasource,可把摄取拆成三次执行:
- 第 1 次执行:
{"skip": 0, "limit": 10} - 第 2 次执行:
{"skip": 10, "limit": 10} - 第 3 次执行:
{"skip": 20, "limit": 10}
这种"游标式"分页方案适用于数据量大、单次全量摄取耗时过长的场景,可将大批量摄取拆分为多个小批次任务逐步完成。
6. 配置文件示例
OpenMetadata 的 Metadata 摄取可通过 YAML 工作流配置文件驱动。仓库内置的 alationsink.yaml 给出了 Alation 服务的完整配置骨架,核心结构如下:
source: type: AlationSink serviceName: local_alation_sink serviceConnection: config: type: AlationSink hostPort: https://alation.example.com # 选择以下两种认证方式之一 # Basic Authentication authType: username: user_name password: password # Access Token Authentication # authType: # accessToken: access_token projectName: Test paginationLimit: 10 # datasourceLinks: { # "23": "om_service_name.om_db_name", # "24": "om_service_name_two.om_db_name_two", # } sourceConfig: config: type: DatabaseMetadata sink: type: metadata-rest config: {} workflowConfig: loggerLevel: INFO # DEBUG, INFO, WARNING or ERROR openMetadataServerConfig: hostPort: http://localhost:8585/api authProvider: openmetadata securityConfig: jwtToken: "<your-jwt-token>"从源码结构看,Alation 的摄取实现位于 ingestion/src/metadata/ingestion/source/metadata/alationsink 目录下,其中 client.py 定义了AlationSinkAuthenticationProvider与AlationSinkClient(负责 Token 换取与 API 调用),connection.py 定义了连接配置类,metadata.py 承担元数据摄取主流程,constants.py 存放相关常量,可供想深入了解实现细节的读者查阅。
7. 常见问题与注意事项
- 认证失败:请确认 Token 的生成方式与所选认证类型一致——Basic Auth 走账号密码换 Token 流程,Access Token 方式则直接使用 UI 生成的 Token,二者不要混用。
- 敏感信息脱敏:
authType在 schema 中带有mask: true,密码与 Token 不会明文展示,请注意妥善保管配置中的凭据。 - 用户与组关系缺失:该部分元数据依赖后端数据库直连,若未配置 Postgres/MySQL 连接,则仅摄取 API 可提供的元数据,用户与组关系不会出现。
- 大批量 Datasource 摄取慢:可参考上文
skip/limit增量摄取方案,将任务拆分为多批执行。 - 默认值参考:所有开关类配置均有明确默认值(见第 4 节表格),按需调整即可,无需逐项显式声明。
通过以上配置,即可将 Alation 中的核心元数据持续同步至 OpenMetadata,为数据团队构建统一、可信的数据上下文。
【免费下载链接】OpenMetadataThe Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistants, and agents.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMetadata
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考