一份契约描述30多种数据源:ODCS服务器配置实战(Kafka、Snowflake、PostgreSQL等)
【免费下载链接】open-data-contract-standardHome of the Open Data Contract Standard (ODCS).项目地址: https://gitcode.com/gh_mirrors/op/open-data-contract-standard
ODCS(Open Data Contract Standard,开放数据契约标准)让你用一份 YAML 数据契约文件,就能声明数据到底存放在哪些服务器上——Kafka 消息队列、Snowflake 数据仓库、PostgreSQL 数据库、S3 对象存储……34 种数据源类型全部支持。下面带你快速上手 ODCS 的servers服务器配置。
servers 是什么:一句话定位"数据在哪里"
servers元素回答的是数据消费者最关心的问题:数据物理上放在哪里?它帮助消费方发现数据、帮助平台工程师自动化授权。每条 server 记录描述一个数据集在特定环境 + 特定技术上的位置,且servers支持声明多条记录,即一份契约可以覆盖多个数据源、多个环境。
每个服务器条目只需两个必填字段,其余按技术类型选配:
| 字段 | 必填 | 说明 |
|---|---|---|
server | ✅ | 服务器标识名 |
type | ✅ | 数据源类型(34 选 1) |
id | ❌ | 唯一 ID(如 UUID),避免重名冲突 |
description | ❌ | 服务器描述 |
environment | ❌ | 环境标识:prod / preprod / dev / uat |
roles | ❌ | 有访问权限的角色 |
📖 完整的属性表格参考官方文档 docs/infrastructure-servers.md,机器可读的校验规则见 schema/odcs-json-schema-latest.json。
34 种服务器类型:主流技术全覆盖
ODCS 的type字段支持34 种取值,按场景大致可分为四类:
- 📊 关系型 / 分析数据库:
postgresql、postgres、mysql、oracle、sqlserver、clickhouse、duckdb、db2、informix、vertica、zen - ☁️ 云数仓与平台:
snowflake、redshift、bigquery、cloudsql、databricks、synapse、azure、s3、glue - ⚡ 流式与消息:
kafka、kinesis、pubsub - 🔧 查询引擎与文件:
hive、impala、presto、trino、dremio、athena、denodo、api、sftp、local、custom
找不到你的数据源?用custom类型兜底,它开放了host、port、account、location等几乎所有属性。
实战一:Kafka 消息队列服务器(最短配置)
Kafka 是配置最精简的数据源之一——只需要 bootstrap 地址:
servers: - server: my-kafka type: kafka host: pkc-7xoy1.eu-central-1.aws.confluent.cloud:9092 format: avro # 可选,声明消息格式完整可运行示例见 docs/examples/server/kafka-server.odcs.yaml。注意physicalType: topic的 schema 与 kafka 服务器类型是天然搭档。
实战二:PostgreSQL 关系数据库
PostgreSQL 采用经典的"主机 + 端口 + 库"三段式,端口默认 5432 可省略:
servers: - server: pg-warehouse type: postgresql host: db.internal.example.com port: 5432 database: adventureworks schema: public environment: prod一个包含多表、列级权威定义和敏感数据标签的完整 PostgreSQL 契约示例,可以对照 docs/examples/all/postgresql-adventureworks-contract.odcs.yaml。
实战三:Snowflake 数据仓库
Snowflake 要求声明六要素,信息密度最高:
servers: - server: snowflake-prod type: snowflake host: xy12345.snowflakecomputing.com port: 443 account: xy12345 database: SALES warehouse: COMPUTE_WH schema: ANALYTICS云端数据湖:Azure 与 S3 的位置式配置
文件型数据源不写 host/port,而是直接用location 定位符 + 文件格式:
servers: - server: my-azure type: azure location: az://my-data-location format: parquet更多示例:docs/examples/server/azure-server.odcs.yaml。
进阶:一份契约覆盖 dev / uat / prod 多环境
servers是数组,同一数据产品在不同环境各写一条,用environment区分即可。自动化平台据此识别"这份契约保护的是生产数据还是测试数据",无需维护多份契约:
servers: - server: orders-db type: postgresql host: dev-db.internal database: orders environment: dev - server: orders-db type: postgresql host: prod-db.internal database: orders environment: prod小结:servers 配置的三个要点
- 只认两件套:
server名称 +type类型,其余按数据源类型补充host/port/location等; - 一契多源:数组写法让多环境、多技术栈共享同一份契约,治理成本直接减半;
- custom 兜底:34 种类型之外的自研数据源,用
custom+customProperties自由扩展。
想继续深入?从 docs/examples/README.md 的完整示例库入手,用本地 JSON Schema 校验你的第一份 ODCS 契约吧 🚀
【免费下载链接】open-data-contract-standardHome of the Open Data Contract Standard (ODCS).项目地址: https://gitcode.com/gh_mirrors/op/open-data-contract-standard
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考