如何用 datahub datapack 命令向 DataHub 实例加载演示数据包?
【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub
DataHub 提供了datahub datapack命令,用于把整理好的元数据包(data pack,内含预构建的 MCP:数据集、看板、血缘、所有权、词汇表词条等)加载进 DataHub,适用于演示、测试或为新实例填充初始数据。本文以showcase-ecommerce这个内置包为例,完整走一遍"列出 → 查看详情 → 加载 → 验证 → 清理"的操作路径。需要说明:datahub datapack目前处于实验阶段(Experimental),命令界面和行为在后续版本中可能变化。
准备条件
- 已安装 DataHub CLI。可以用 Homebrew(macOS / Linux):
brew install datahub-project/tap/datahub或用 pip(需要 Python 3.10+):
python3 -m venv venv source venv/bin/activate python3 -m pip install --upgrade pip wheel setuptools python3 -m pip install --upgrade acryl-datahub安装后用datahub version验证,看到版本号即安装成功。更多安装方式见 DataHub CLI 文档。
- 有一个可连接的 DataHub 实例。本地可以用 Docker 快速启动:
datahub docker quickstart启动完成后会看到✔ DataHub is now running的提示,文档示例输出中还会提示:
Load sample data: run `datahub init` then `datahub datapack load showcase-ecommerce`, or head to http://localhost:9002 (username: datahub, password: datahub)(以上为 quickstart 文档中的示例输出。)
第一步:配置 CLI 连接实例
datahub init用来告诉 CLI 要连接哪个 DataHub 实例。对于使用默认凭证的 quickstart 实例,可以直接非交互式地生成 token:
datahub init --username datahub --password datahub如果是 DataHub Cloud 实例,用--host和--token指定 GMS 地址和访问 token。也可以交互式运行datahub init,按提示输入 host 与 token。若实例不在默认端口,还可通过DATAHUB_GMS_URL等环境变量覆盖连接配置,这些环境变量优先于init生成的配置文件。
第二步:列出并查看可用的数据包
# 列出注册表中所有数据包 datahub datapack list # 按标签过滤(例如 demo) datahub datapack list --tag demo # JSON 格式输出 datahub datapack list --format json--format支持table(默认)和json两种取值。
内置数据包有两个(文档示例输出):
| 包名 | 说明 | 实体数 | 平台 |
|---|---|---|---|
bootstrap | 轻量级引导数据:基础数据集、看板、用户和标签 | ~50 | Kafka, Hive, HDFS |
showcase-ecommerce | 电商演示数据:血缘、治理、词汇表、域和数据产品 | ~1,050 | Snowflake, Looker, PowerBI, Tableau, dbt, Spark, PostgreSQL, S3 |
加载前可以用info查看详情:
datahub datapack info showcase-ecommerce输出(文档示例):
# Name: showcase-ecommerce # Description: Rich demo dataset with 1049 entities... # URL: https://raw.githubusercontent.com/datahub-project/static-assets/... # Size: ~2.7 MB # Trust: verified # Tags: demo, rich, snowflake, looker, powerbi, tableau, lineage, governance # Reference time: 2025-07-08T16:15:42.552000+00:00 # Cached: yes # Loaded: yes (run_id=datapack-showcase-ecommerce-..., at 2026-03-22T...)其中Cached和Loaded两行是判断当前加载状态的关键:未加载过的包Loaded为no。
第三步:加载数据包
datahub datapack load showcase-ecommerce如果只想预览会加载什么而不实际写入,先跑一次 dry-run:
datahub datapack load showcase-ecommerce --dry-run加载过程按固定顺序执行:注册表解析包名到 URL → 下载并缓存(MCP 文件缓存在~/.datahub/datapack-cache/)→ schema downshift(查询服务端实体注册表,过滤掉当前环境不支持的 aspect,避免在 OSS 上因 Cloud 独有功能报错)→ 引用完整性检查(对悬空 URN 给出警告)→ 时间平移(把时间戳重定基,让数据看起来是"刚刚产生的")→ 走标准摄入管道写入 → 记录 run ID 以便后续卸载。
load的常用选项:
| 选项 | 用途 |
|---|---|
--url URL | 从任意 URL 加载而非注册表,支持http://、https://、file:// |
--dry-run | 预览加载内容,不实际摄入 |
--no-cache | 忽略本地缓存,强制重新下载 |
--force | 跳过服务端版本兼容性检查 |
--as-of DATETIME | 指定时间平移的目标时间(默认当前时间),可让历史数据按某个时间点呈现 |
--no-time-shift | 保留包内原始时间戳,不做时间平移 |
--trust-community | 允许加载社区贡献的包 |
--trust-custom | 允许从未经验证的 URL 加载 |
文档给出的几个变体示例:
# 从本地文件加载 datahub datapack load my-data --url file:///path/to/data.json --trust-custom # 时间戳锚定到指定日期 datahub datapack load showcase-ecommerce --as-of 2025-06-15注意信任分级:Verified(DataHub 项目发布)加载不提示;Community(第三方注册表包)需要加--trust-community;Custom(--url指定的任意来源)需要加--trust-custom。
验证加载结果
加载完成后,用info检查Loaded字段:
datahub datapack info showcase-ecommerce输出中Loaded: yes (run_id=..., at ...)表示该包已成功写入并记录了 run ID(文档示例格式)。也可以直接到 DataHub UI(quickstart 实例为 http://localhost:9002)查看数据集、血缘等内容是否出现。
可选:通过摄入配方加载(demo-data source)
如果加载动作需要放进datahub ingest的定时/自动化流程中,可以用标准摄入配方中的demo-datasource 类型:
source: type: demo-data config: pack_name: "showcase-ecommerce" # 或使用 pack_url: "https://example.com/data.json" no_time_shift: false as_of: "2025-06-15T00:00:00Z" trust_community: false trust_custom: false no_cache: false不带任何配置时,demo-data加载bootstrap包且保留原始时间戳(兼容旧配方);指定pack_name可换成其他包。仓库中有一份可直接参考的配方示例:demo-data_recipe.yml。
清理:卸载数据包
演示结束后用unload移除该包写入的所有实体:
# 软删除(默认,可恢复) datahub datapack unload showcase-ecommerce # 先预览将被删除的内容 datahub datapack unload showcase-ecommerce --dry-run--hard会硬删除实体,不可逆;默认是软删除,可恢复。执行硬删除前建议先用--dry-run确认删除范围。注意unload依赖摄入回滚机制,只对通过datahub datapack load加载的包有效。
限制与注意事项
datapack是实验性命令,命令界面和行为可能随版本变化(见 datapack 命令文档)。- 服务端缓存位置:包文件缓存在
~/.datahub/datapack-cache/(按 URL 哈希),注册表缓存在~/.datahub/datapack-registry-cache.json(1 小时 TTL)。包更新后未生效时,用load --no-cache强制重新下载。 - 时间平移默认开启,加载后的数据时间戳会呈现为"刚刚";需要保留原始时间戳时加
--no-time-shift,或用--as-of锚定到指定时间。 unload只适用于datapack load写入的实体;通过demo-data配方加载的数据不在其覆盖范围内。
完整命令与选项说明见 docs/cli-commands/datapack.md,CLI 安装与init细节见 docs/cli.md,本地实例启动见 docs/quickstart.md。
【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考