SuperAPI AI 工具集

databricks-zerobus-ingest

数据与分析

查看项目

更新于 10-15 20:32

技能介绍

Zerobus Ingest 是一个无服务器连接器,可通过 gRPC 将记录逐条直接写入 Delta 表,省去面向湖仓数据时搭建 Kafka、Kinesis、Event Hub 等消息总线基础设施的需要。服务负责校验 schema、将数据落盘到目标表,并向客户端返回持久化确认。该能力已 GA(2026年2月起,按 Lakeflow Jobs Serverless SKU 计费)。

核心模式为:SDK 初始化 → 创建流 → 写入记录 → 处理 ACK → flush → 关闭。

主要能力与用法:

  • 语言与序列化:Python(JSON 或 Protobuf)、Java、Go、TypeScript、Rust;可从 Unity Catalog 表生成 Protobuf schema。未指定语言时默认 Python。
  • 常用库:databricks-sdk>=0.85.0、databricks-zerobus-ingest-sdk>=1.0.0、grpcio-tools,通常需自行安装。安装示例:%pip install databricks-sdk>=VERSION databricks-zerobus-ingest-sdk>=VERSION。
  • 前置条件:一个 Unity Catalog 托管 Delta 表;具备目标表 MODIFY 与 SELECT 权限的服务主体 id 和 secret;所在区域的 Zerobus 服务端点;对应语言的 SDK。
  • 最小流程(Python/JSON):初始化 ZerobusSdk(server_endpoint, workspace_url),设置 RecordType.JSON,创建 stream 后调用 ingest_record(json.dumps(record)),再 flush() 与 close()。
  • 执行建议:借助 execute_code MCP 工具在 Databricks 上运行;首次执行返回 cluster_id 与 context_id,后续复用可更快并保留已安装库和变量;失败则改本地文件后同上下文重试。

使用限制:Zerobus 不创建或修改表,需自行预建目标表并管理 schema 演进;提供至少一次(at-least-once)投递保证,消费者需处理重复;服务运行于单一可用区;每流吞吐上限 100 MB/s 与 15,000 行/秒;时间戳字段需为 Unix 整数微秒时间戳,而非字符串;服务主体需在目标表上有显式 MODIFY 和 SELECT 授权,schema 级继承权限可能不足;SDK 无法在 serverless 计算上 pip 安装,需用经典计算集群或 REST API(Beta)。