airbyte ETL,http API 源和大查询之间的连接
Posted
技术标签:
【中文标题】airbyte ETL,http API 源和大查询之间的连接【英文标题】:airbyte ETL ,connection between http API source and big query 【发布时间】:2022-01-17 00:18:32 【问题描述】:我手头有一个任务,我应该为 airbyte 创建基于 python 的 HTTP API 连接器。连接器将返回一个响应,其中将包含一些 zip 文件的链接。 每个 zip 文件都包含 csv 文件,应该上传到 bigquery
现在我已经创建了返回 zip 文件 URL 的连接器。
主要问题是如何将底层 csv 文件发送到 bigquery , 我可以肯定地解压缩甚至读取 python 连接器中的 csv 文件,但我被困在将其发送到 bigquery 的部分。
p.s 如果你们能告诉我将 CSV 发送到谷歌云存储,那也太棒了
【问题讨论】:
在 Airbyte 中将数据上传到 BigQuery 有两种可用选项,一种称为Standard,另一种称为GCS Staging。 嘿乔希,你是说,我可以通过 api 连接器的响应读取和发送 CSV 数据,并且可以上传到 BQ...就像我只想知道如何传输数据来自我的消息来源,它对大查询给出 json 响应 您应该考虑发布的答案。 【参考方案1】:当您使用 CDK 构建 Airbyte 源连接器时,您的连接器代码必须输出将发送到目的地的 记录,在您的情况下是 BigQuery。这允许将提取逻辑与加载逻辑分离,并使您的源连接器目标不可知。
我建议在您的 source 连接器的实现中使用这种高级逻辑:
-
调用源 API 检索 zip 的 url
下载+解压压缩包
使用 Pandas 解析 CSV 文件
输出解析记录
这是假设所有 CSV 文件都具有相同的架构。如果不是,您必须为每个模式声明一个流。 here 提供了一个很棒的指南,其中包含有关如何开发 Python 连接器的更多详细信息。
一旦您的源连接器输出 AirbyteRecordMessages
,您就可以将其连接到 BigQuery 并根据您的需要选择最佳加载方法(标准或 GCS 暂存)。
【讨论】:
以上是关于airbyte ETL,http API 源和大查询之间的连接的主要内容,如果未能解决你的问题,请参考以下文章