Redshift 批量源

本页介绍如何将数据从 Amazon Redshift 实例加载到 Google Cloud 与 Cloud Data Fusion。通过 Redshift 源代码连接器, 从 Redshift 数据集复制到目标,例如 BigQuery。借助连接器,您还可以创建可配置的 SQL 查询。

准备工作

  • Cloud Data Fusion 6.9.0 版及更高版本支持 Redshift 来源。
  • 配置 Redshift 源连接器时,您可以选择 或创建新的一次性连接。对于 有关详情,请参阅管理关联。重复使用连接时,请注意 以下:

    • 您无需提供凭据。
    • 现有连接提供架构和表名称信息 用于生成导入查询。

配置插件

  1. 转到 Cloud Data Fusion 网页界面 然后点击 Studio

  2. 检查是否选择了 Data Pipeline - Batch(而非 Realtime)。

  3. 来源菜单中,点击 Redshift。Redshift 节点显示在 流水线如果你在 Studio 页面上没有看到 Redshift 源代码, 从 Cloud Data Fusion Hub 部署 Redshift 源连接器

  4. 如需配置来源,请转到 Redshift 节点,然后点击属性

  5. 输入以下属性。有关完整列表,请参阅 属性

    1. 为 Redshift 节点输入标签,例如 Redshift tables
    2. 输入连接详情。您可以设置新的一次性连接 或可重复使用的现有连接。

      新增关联项

      要添加与 Redshift 的一次性连接,请按以下步骤操作:

      1. 使用连接保持关闭状态。
      2. JDBC 驱动程序名称字段中,输入驱动程序的名称。 Redshift 支持两种类型的 JDBC 驱动程序:CData 和 Amazon。 如需了解详情,请参阅 上传 JDBC 驱动程序
      3. 主机字段中,输入 Redshift 的端点 集群,例如 cdf-redshift-new.example-endpoint.eu-west-1.redshift.amazonaws.com
      4. 可选:在端口字段中,输入数据库端口 数字,例如 5439
      5. 如果您的 Redshift 数据库需要身份验证,请执行以下操作: 以下:

        1. 用户名字段中,输入数据库的名称。
        2. 密码字段中,输入 数据库。
        3. 可选:在参数字段中,输入 键值参数。要使用 CData 驱动程序,请提供: 连接参数,例如 RTK 或 OEMKey(如果有)。
        4. Name(名称)字段中,输入一个名称,例如 SN-PC-Source-01-01-2024
        5. Database(数据库)中输入目标数据库名称。 字段,例如 datafusiondb

      可重复使用的连接

      如需重复使用现有连接,请按以下步骤操作:

      1. 开启使用网络连接
      2. 点击浏览连接
      3. 点击连接名称。

      4. 可选:如果连接不存在,并且您想要创建一个 新的可重复使用的连接,请点击添加连接并参阅 请参阅本页面的新建连接标签页中的 页面。

    3. 导入查询字段中,使用架构和表输入查询 (例如 Select * from "public"."users")。

    4. 可选:输入高级属性,例如边界 查询或拆分数量。有关所有房源说明,请参阅 属性

  6. 可选:点击验证,并解决发现的所有错误。

  7. 点击 关闭。已保存属性,您可以继续构建数据 在 Cloud Data Fusion 网页界面中设置流水线。

属性

属性 支持用于自动化操作的宏 必需属性 说明
标签 数据流水线中节点的名称。
使用连接 浏览以查找与来源的连接。如果 使用网络连接处于开启状态时,您无需提供 凭据。
连接 要使用的连接的名称。如果使用连接为 系统就会显示此字段提供了数据库和表信息 。
JDBC 驱动程序名称 要使用的 JDBC 驱动程序的名称。如果选择使用连接 未选择,系统就会显示此字段。
主机 Amazon Redshift 集群的端点。如果 未选择使用连接,系统会显示此字段。
Port(端口) 运行 Redshift 的端口。如果选择使用连接 未选择,系统就会显示此字段。
用户名 连接到指定数据库的用户身份。如果 未选择使用连接,系统会显示此字段。
密码 用于连接到指定数据库的密码。如果 未选择使用连接,系统会显示此字段。
连接参数 作为连接参数的任意字符串键值对的列表。 这些参数作为连接传递给 JDBC 驱动程序 参数。如果 未选择使用连接,系统会显示此字段。
参考名称 唯一标识此来源的沿袭,并添加注释 元数据和其他服务
数据库 Redshift 数据库名称。要选择数据,请点击 浏览数据库
导入查询 SELECT 查询,用于从 。
边界查询 返回 splitBy 字段。例如:SELECT MIN(id),MAX(id) FROM table在以下情况下无需提供 numSplits 已设为一。
拆分列 用于生成分块的字段名称。在以下情况下无需提供 numSplits 已设为一。
拆分数量 要生成的拆分数量。
大小 每个分块每次要提取的行数。更大的提取大小 可以加快导入的速度 。如果您未指定此项,则默认设置为 1000

数据类型映射

下表列出了具有相应 CDAP 的 Redshift 数据类型 类型:

Redshift 数据类型 CDAP 架构数据类型
bigint long
boolean boolean
character string
character varying string
date date
double precision double
geometry bytes
hllsketch string
integer int
json string
numeric(精确率, 比例)/decimal(精度, 比例) decimal
numeric,精度为 0 string
real float
smallint int
super string
text string
time [ (p) ],无时区 time
time [ (p) ],有时区 string
timestamp [ (p) ],无时区 timestamp
timestamp [ (p) ],有时区 timestamp
varbyte byte
xml string

最佳做法

从以下位置连接到 Redshift 集群时,可遵循以下最佳实践 Google Cloud

使用 IP 地址许可名单

防止来自未经授权的来源的访问并限制对特定 IP 的访问 对 Redshift 集群启用访问权限控制。

如果您使用 Redshift 访问权限控制,则可以在以下位置访问集群: Cloud Data Fusion,请按以下步骤操作:

  1. 获取 Google Cloud 上的服务或机器的外部 IP 地址 必须连接到 Redshift 集群的 Google Cloud 服务,例如 代理服务器 IP(请参阅查看 IP 地址)。对于 Dataproc 集群,获取 所有主节点和子节点的 IP 地址。
  2. 通过创建 Google Cloud 机器 IP 地址的入站规则。

  3. 在 Wrangler 中添加连接属性并进行测试:

    1. 在网页界面中打开 Cloud Data Fusion 实例。
    2. 点击 Wrangler > 添加连接,然后创建新的 进行连接
    3. 输入所有连接属性。
    4. 点击测试连接,然后解决所有问题。

如需创建多个分块,请使用边界查询

对于多个分块,请使用边界查询来管理多节点集群。在 从 Redshift 提取数据并均匀分配负载的场景 请在 Redshift 源连接器中配置边界查询 属性。

  1. Studio 页面上的 Cloud Data Fusion 流水线中,转到 Redshift 节点,然后点击属性
  2. Advanced 属性中,指定以下内容:

    1. 输入要创建的拆分数量。
    2. 输入每个分块的提取大小。
    3. 输入要应用于多节点 Redshift 集群的边界查询。
    4. 输入拆分列字段名称。

例如,假设您有以下用例:

  • 假设您有一个包含 1000 万条记录的表。
  • 其中包含一个名为 id 的唯一 ID 列。
  • Redshift 集群有 4 个节点。
  • 目标:为了充分发挥集群的潜力,您计划 生成多个分块。为此,请使用以下属性 配置:

    • 边界查询字段中,输入以下查询:

      SELECT MIN(id), MAX(id) FROM tableName
      

      在此查询中,id 是包含拆分项的列的名称 。

    • 拆分列字段中,输入列名称 id

    • 输入拆分的数量和提取大小。这些属性是 因此,您可以根据提取大小或 反过来。对于此示例,请输入以下内容。

    • 拆分数量字段中,输入 40。在此示例中,其中 表包含 1000 万条记录,每个结果部分创建 40 个分块 包含 250,000 条记录的分块。

    • 提取大小字段中,输入 250,000

后续步骤