Google BigQuery
连接类型 | Alteryx 工具。最新版本可在 Alteryx 社区获得。 |
支持类型 | 读取和写入 |
验证版本 | ODBC 客户端版本 2.4.6.1015 |
驱动程序详细信息
在 Alteryx Google BigQuery 工具中配置连接之前,可能需要在 Google Cloud 中执行管理员操作。
Google BigQuery 需要使用 OAuth 作为身份验证方法。我们通过 DSN 使用 Simba ODBC 驱动程序或在 Alteryx 中使用 DCM 的方式支持 OAuth。
用于连接的 Alteryx 工具
标准工作流处理
![Input Data Tool Icon](../../image/uuid-44c39077-2b45-df80-e69b-b71155470a81.png)
![Output Data Tool Icon](../../image/uuid-c3b315b4-79eb-aeec-b68a-2dca910b2a6f.png)
数据库内工作流处理
![Blue icon with database being plugged in.](../../image/uuid-1a9d955f-dda6-bb9b-293b-18f515ee9c40.png)
![Blue icon with a stream-like object flowing into a database.](../../image/uuid-44c7f9d3-5dab-b8e3-89e0-b62d271e5a7d.png)
注意
仅支持使用 DCM 进行数据库内工作流处理。
用于库内读取和写入连接的 Google BigQuery 数据集必须相同。
重要
包含特殊字符(如连字符)的项目、数据集和表需要加引号。有关更多信息,请参阅知识库文章 Google BigQuery Error with Hyphens in SQL Query 。
配置 Google BigQuery 批量连接
只有在使用 DCM 时才支持使用 Google BigQuery 批处理 。要通过“输出数据”工具使用批量连接:
确保 数据连接管理器 已启用。
选择 设置一个连接 ,然后选择 数据源 - Google BigQuery 批处理。
选择 添加数据源
输入 数据源名称 ,
输入 目录(项目) 。这是 Google BigQuery 项目 ID,其中包含用于将表写入的数据集和用于暂存的 Google Cloud Storage 存储桶。
输入 数据集 。这是最终表将被写入的位置。
输入 存储桶名称 。这是 Google Cloud Storage 用于批量加载的暂存位置。存储桶必须与项目位于同一位置。
选择 保存 。
选择 + 连接凭证 。云存储中的暂存使用与 Google BigQuery 项目相同的凭证。
选择 身份验证方法 ,
按照说明, 在 DCM 中使用 OAuth 。
选择 连接 。
输入表名称并选择 确定 。
使用 DCM 的 OAuth
您可以使用与 DCM 集成的 OAuth 为 Google BigQuery 设置身份验证。这样,就不必手动将令牌复制到 ODBC 驱动程序。
先决条件
要设置 OAuth,您需要:
一个有效的 DSN,并且 身份验证工具 选项设置为 OAuth ,
管理员提供的 OAuth 授权 URL、端口、客户端 ID 和客户端密钥。
身份验证设置
在 Designer 中,将“输入”工具拖到画布上。
选中 使用数据连接管理器 (DCM) 复选框。
选择 设置连接 。
在 数据连接 窗口中,转到 数据源 并选择 Google BigQuery ODBC 。
此时将打开 连接管理器 窗口。选择 + 添加数据源 。
对于 技术 ,选择 Google BigQuery ODBC - Simba 。
填写 数据源名称 并选择准备好的 Google BigQuery DSN 。
选择 保存 。
要链接凭证,请选择 + 连接凭证 。
选择 OAuth 作为 身份验证方法 。
对于 OAuth 应用程序 ,选择 创建新凭证 并填写所需信息(从管理员处获取 OAuth 授权 URL、端口、客户端 ID 和客户端密钥)。
为 OAuth 令牌 选择 创建新凭证 。
填写 凭证名称 ,然后选择 创建并链接 。
选择 连接 。
在 Google 管理器外部浏览器窗口中登录。
注意
由于 DCM 中的令牌管理方式,可能会要求您执行两次 Oauth 授权过程。
Google BigQuery JSON 密钥文件验证
在 Designer 版本 2024.1 中,使用 DCM 通过 Google BigQuery 验证服务帐户比以往更容易。
选择您的 Google BigQuery 连接,然后从可用验证方法列表中查找 JSON 密钥文件验证。
提供 JSON 密钥文件的路径。
连接到您的 Google BigQuery 数据。
有关如何为您的 Google BigQuery 帐户配置 JSON 密钥文件身份验证的详细说明,请参阅 BigQuery 指南 。
使用 Google BigQuery 工具配置连接
身份验证和权限
如需 Google BigQuery 凭证方面的帮助,请联系您的 Google Cloud 管理员。
从 Designer 22.1 版开始,Simba ODBC 驱动程序支持 OAuth 身份验证。
服务到服务身份验证设置
您可以从 Google Cloud Console 获取服务帐户 JSON 密钥文件,也可以为现有服务帐户创建新密钥。有关 Google BigQuery 的更多信息,可在 Google Big Query 文档 站点上的 创建和管理服务帐户密钥 下找到。
终端用户身份验证设置
从 Google Cloud Console 的凭证页面获取 OAuth 客户端 ID 和密钥。确保将客户端类型设置为“其他”。
注意
尽可能使用 服务到服务 身份验证,而不是 终端用户 身份验证。通过为针对相同服务帐户执行身份验证的不同的应用程序管理不同的密钥,可允许在撤销某一特定应用程序的访问权限时,不需要其它应用程序更新其身份验证凭证。
访问权限
必须通过 Google Cloud Console 授予在 Google BigQuery 项目服务帐户中读取和写入数据的权限。有关权限的详细信息,请访问 Google Big Query 文档 站点。
其他信息
Google BigQuery 总是引用表格。
按字段名称进行附加。如果名称或数据类型不匹配,Google BigQuery 将抛出错误。
在格式特定选项中勾选 支持 Null 值 (默认已勾选),以便将空值数据加载到 Google BigQuery 中。如果未勾选该选项,Google BigQuery 将拒绝空值。
如果目标表中的多余列未包含在 Alteryx 中,则这些列将加载为空。
列名只能包含字母(a-z、A-Z)、数字 (0-9) 或下划线 (_),并且必须以字母或下划线开头。列名的最大长度为 300 个字符。有关更多信息,请参阅 Google BigQuery 文档 。
输出连接器架构
传递给 Google BigQuery 输出工具的字段名称和类型必须与终极 Google BigQuery 表格中的名称和类型匹配。在 Google BigQuery 表格中存在,但在工作流字段列表中不存在的列,将导致插入记录中相应的列产成 Null 值。在目标列配置未允许 NULL 值的情况下,会导致错误。
输入进度指示器
如果输入工具选定表格的流式缓冲区中存在行而不存在自定义查询,输入工具则将使用 Google 报告的流式缓冲区中的估计行数来更新运行中的工作流进度指示器的百分比。如果 Google 的估计值不正确,则进度指示器中报告的值也可能不正确。
如果被查询的表格为空,而该表格的流缓冲为非空,则 Google 可以将流缓冲中的行数估计为零。但是,Google 仍可能从流式缓冲区回行。发生这种情况时,您将不会看到进度指示器百分比更新,并且会显示警告。
已知局限
最大嵌套、重复记录深度
在一层深度上支持嵌套的重复记录。不支持嵌套深度超过一层的嵌套重复记录。有关嵌套重复记录的更多信息,请访问 Google BigQuery 文档 站点。
空间数据
Google BigQuery 不支持写入空间数据。
日期时间字段
当写入 Google BigQuery 时:
使用 ODBC 写入,Designer 会将日期/时间字段创建为“日期时间”;使用批量加载程序写入,Designer 会将日期/时间字段创建为“时间戳”。
在 Google BigQuery 中,“时间戳”与“日期时间”相同,您可以使用“提取”对其进行解析。
嵌套、重复记录扁平化
输入时 :
从 Google BigQuery 表格提取嵌套或重复的记录时,Alteryx 工作流会根据以下命名方案展平嵌套和/或重复记录:
顶级列 top_attr 的嵌套记录 nested_attr 将会创建新的列,该列名为 nr_top_attr_nested_attr。
输出时 :
当将记录从 Alteryx 工作流推送到现有的 Google BigQuery 表格时,需要将记录字段折叠为嵌套和重复记录,方法是:重命名流入到输出连接器的记录字段,以遵循这些命名约定。
必须将应嵌套到顶级列 top_attr 的记录 nested_attr 重命名为 nr_top_attr_nested_attr 。
在顶级列 top_attr 下嵌套和重复任意次数的记录 nested_attr 必须重命名为 nrr_top_attr_{repetition_index}_nested_attr 。
在 API 调用将新行插入到 Google BigQuery 表格之前,嵌套字段中包含所有 NULL 值的任何重复记录都将被删除。这意味着 Designer 工作流中的记录可以有任意数量的最大重复,而不是每个记录都必须有相同数量的重复。
AVRO 限制
由于 AVRO 限制,BigQuery 批量加载程序不支持 BIGNUMERIC 数据类型。它会将其视为 FLOAT。
使用 Google BigQuery 批量加载程序,Designer 无法将字段创建为“日期时间”。在 Designer 版本 23.2 之前,批量加载程序会将日期加载为字符串。