DataHub Ingestion镜像是DataHub数据目录平台的核心组件,专注于实现数据从各类数据源到DataHub的数据摄取、同步及元数据采集功能。作为DataHub数据集成链路的关键环节,该镜像支持通过配置化方式定义数据摄取任务,自动化完成数据抽取、转换、加载(ETL)流程,确保DataHub数据目录中数据资产信息的实时性与准确性,为企业数据治理、元数据管理及数据发现提供基础支撑。
从Docker Hub或私有镜像仓库拉取最新版本镜像:
bashdocker pull datahubproject/ingestion:latest
版本说明:可通过指定标签选择稳定版本(如
v0.13.0),建议与DataHub核心服务版本保持一致。
数据摄取任务通过YAML配置文件定义,以下为MySQL数据源同步至DataHub的示例配置(ingestion-config.yaml):
yaml# 数据源配置 source: type: mysql config: username: "db_user" password: "db_password" host_port: "mysql-host:3306" database: "target_db" schema_pattern: "public" # 同步指定schema下的表 table_pattern: "orders.*" # 同步orders前缀的表 use_information_schema: true # 从information_schema获取元数据 # 目标DataHub配置 sink: type: datahub config: server: "[***]" # DataHub GMS服务地址 auth: type: "no-auth" # 若启用认证,可配置token或OAuth2信息 # 同步策略配置 transformers: - type: "add_dataset_tags" # 为同步的数据集添加标签 config: tags: ["mysql", "production"] - type: "mask_sensitive_fields" # 脱敏敏感字段(如手机号) config: fields: ["phone_number"] mask_type: "partial" # 部分脱敏(如138****5678) # 任务调度配置 run_config: schedule: "0 */6 * * *" # CRON表达式:每6小时执行一次 retry_count: 3 # 任务失败后重试次数 timeout_seconds: 3600 # 任务超时时间(1小时)
通过docker run启动容器,挂载配置文件并指定环境变量:
bashdocker run -d \ --name datahub-ingestion \ -v /path/to/ingestion-config.yaml:/etc/datahub/ingestion-config.yaml \ -e DATAHUB_GMS_HOST=datahub-gms \ # DataHub GMS服务主机名 -e DATAHUB_GMS_PORT=8080 \ # DataHub GMS服务端口 -e LOG_LEVEL=INFO \ # 日志级别(INFO/DEBUG/WARN/ERROR) -e INGESTION_WORKER_COUNT=2 \ # 并发任务数(默认1) datahubproject/ingestion:latest \ ingest -c /etc/datahub/ingestion-config.yaml # 启动指定配置文件的任务
与DataHub核心服务一同部署时,可通过docker-compose.yml集成:
yamlversion: '3.8' services: datahub-gms: # DataHub GMS服务(需提前部署) image: datahubproject/gms:latest ports: - "8080:8080" # ...其他GMS配置(略) datahub-ingestion: image: datahubproject/ingestion:latest volumes: - ./ingestion-configs:/etc/datahub/configs # 挂载配置文件目录 environment: - DATAHUB_GMS_HOST=datahub-gms - DATAHUB_GMS_PORT=8080 - LOG_LEVEL=INFO - INGESTION_WORKER_COUNT=3 command: ingest -d /etc/datahub/configs # 批量运行目录下所有YAML配置任务 depends_on: - datahub-gms
| 环境变量 | 描述 | 默认值 |
|---|---|---|
DATAHUB_GMS_HOST | DataHub GMS服务主机名或IP | localhost |
DATAHUB_GMS_PORT | DataHub GMS服务端口 | 8080 |
LOG_LEVEL | 日志输出级别(DEBUG/INFO/WARN/ERROR) | INFO |
INGESTION_WORKER_COUNT | 并发执行的摄取任务数(控制资源占用) | 1 |
CONFIG_RELOAD_INTERVAL | 配置文件自动重载间隔(秒,0表示禁用),用于动态更新任务配置 | 300 |
METRICS_PORT | Prometheus监控指标暴露端口 | 9090 |
HTTP_PROXY | 若通过代理访问数据源或DataHub,配置HTTP代理地址(如[***]) | 无 |
配置文件(YAML)核心参数结构如下:
source)type:数据源类型(如mysql/***/kafka),需与内置连接器匹配。config:数据源连接详情,不同类型数据源参数不同(参考DataHub连接器文档)。sink)type: datahub:固定值,指定目标为DataHub。config.server:DataHub GMS服务地址(如[***])。config.auth:认证配置(如no-auth/token/oauth2),无认证时可省略。transformers,可选)type及对应config。run_config,可选)schedule:CRON表达式(如0 0 * * *表示每日凌晨执行),不配置则为一次性任务。retry_count:任务失败后重试次数。timeout_seconds:单任务超时时间,超时后标记为失败。通过DataHub UI([***])的“Ingestion”模块查看任务列表及执行状态,或通过容器日志实时监控:
bashdocker logs -f datahub-ingestion
修改挂载的YAML配置文件后,配置将在CONFIG_RELOAD_INTERVAL时间内自动重载,无需重启容器;或通过DataHub API触发任务更新:
bashcurl -X POST "[***]{task-id}/reload"
Prometheus可通过METRICS_PORT(默认9090)抓取指标,关键指标包括:
ingestion_task_success_total:成功完成的任务数ingestion_task_failed_total:失败的任务数ingestion_records_processed_total:处理的记录总数ingestion_task_duration_seconds:任务平均执行耗时来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429