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 源和大查询之间的连接的主要内容,如果未能解决你的问题,请参考以下文章

DWH 和大数据测试工具

Informatic ETL开发步骤

Informatic ETL开发步骤

如何在外部源和 azure 突触分析之间传输数据

事件源和 Internet Explorer

ETL informatica 大数据版(不是云版)可以连接到 Cloudera Impala 吗?