开始使用零 ETL 集成
这组任务将为您演练如何设置第一个零 ETL 集成。首先,请配置集成源,并使用所需的参数和权限对它进行设置。然后,继续从 Amazon Redshift 控制台和 AWS CLI 执行初始设置的剩余部分。
创建零 ETL 集成
在此步骤中,您将创建 Aurora 或 RDS 与 Amazon Redshift 的零 ETL 集成。
创建 Aurora 与 Amazon Redshift 的零 ETL 集成
-
从 Amazon RDS 控制台,按照《Amazon Aurora 用户指南》中的说明,创建自定义数据库集群参数组。
-
从 Amazon RDS 控制台,按照《Amazon Aurora 用户指南》中的说明,创建源 Amazon Aurora 数据库集群。
-
从 Amazon Redshift 控制台:创建和配置目标 Amazon Redshift 数据仓库。
-
从 AWS CLI 或 Amazon Redshift 控制台:为您的数据仓库开启区分大小写。
-
从 Amazon Redshift 控制台:为您的 Amazon Redshift 数据仓库配置授权。
-
-
从 Amazon RDS 控制台,按照《Amazon Aurora 用户指南》中的说明,创建零 ETL 集成。
-
从 Amazon Redshift 控制台或查询编辑器 v2,通过您的集成创建 Amazon Redshift 数据库。
创建 RDS 与 Amazon Redshift 的零 ETL 集成
-
从 Amazon RDS 控制台,按照《Amazon RDS 用户指南》中的说明,创建自定义数据库参数组。
-
从 Amazon RDS 控制台,按照《Amazon RDS 用户指南》中的说明,创建源 Amazon RDS 实例。
-
从 Amazon Redshift 控制台:创建和配置目标 Amazon Redshift 数据仓库。
-
从 AWS CLI 或 Amazon Redshift 控制台:为您的数据仓库开启区分大小写。
-
从 Amazon Redshift 控制台:为您的 Amazon Redshift 数据仓库配置授权。
-
-
从 Amazon RDS 控制台,按照《Amazon RDS User Guide》中的说明,创建零 ETL 集成。
-
从 Amazon Redshift 控制台或查询编辑器 v2,通过您的集成创建 Amazon Redshift 数据库。
Amazon RDS 控制台提供了分步集成创建流程,在其中您可以指定源数据库和目标 Amazon Redshift 数据仓库。出现问题时,您可以选择让 Amazon RDS 为您修复问题,而无需在 Amazon RDS 或 Amazon Redshift 控制台中手动修复。
创建和配置目标 Amazon Redshift 数据仓库
在此步骤中,您将创建并配置目标 Amazon Redshift 数据仓库,例如 Redshift Serverless 工作组或预置集群。
您的目标数据仓库必须具有以下特征:
-
运行 Amazon Redshift Serverless 或实例类型为 ra3.16xlarge、ra3.4xlarge 或 ra3.xlplus 的预置集群。
-
区分大小写(
enable_case_sensitive_identifier
) 功能已开启。有关更多信息,请参阅 为您的数据仓库开启区分大小写。 -
如果您的目标数据仓库是 Amazon Redshift 预置集群,则应加密。有关更多信息,请参阅 Amazon Redshift 数据库加密。
-
在与集成源相同的 AWS 区域中创建。
注意
对于 Aurora PostgreSQL 与 Amazon Redshift 的零 ETL 集成,还应根据目标数据仓库考虑以下事项:
-
您必须在
preview_2023
版本上创建预览版的数据仓库。您无法在生产中使用预览版功能,也无法将预览版数据仓库移至生产部署。 -
如果您选择创建 Amazon Redshift 预置集群,则该集群必须至少有两个节点。
-
您必须在美国东部(俄亥俄州)AWS 区域创建目标数据仓库。请注意,您必须使用 Amazon RDS 数据库预览环境
为 Aurora PostgreSQL 零 ETL 集成创建源数据库。
要为 Aurora PostgreSQL 零 ETL 集成创建预览版 目标数据仓库,请根据您的部署类型参阅以下主题之一:
要为零 ETL 集成创建目标数据仓库,请根据您的部署类型参阅以下主题之一:
-
要创建 Amazon Redshift 预置集群,请参阅创建集群。
-
要创建预览版 Amazon Redshift Serverless 工作组及命名空间,请参阅创建带有命名空间的工作组。
当您创建预置集群时,Amazon Redshift 还会创建默认参数组。您无法编辑默认参数组。但是,您可以在创建新集群之前创建自定义参数组,然后将其与集群关联。您也可以编辑将与创建的集群关联的参数组。在创建自定义参数组或编辑现有参数组以使用零 ETL 集成时,您还必须为参数组开启区分大小写。
要使用 Amazon Redshift 控制台或 AWS CLI 创建自定义参数组,请参阅 Creating a parameter group。
为您的数据仓库开启区分大小写
您可以在创建过程中附加参数组,并为预置集群开启区分大小写。但是,只有在创建之后,您才能通过 AWS Command Line Interface (AWS CLI) 更新无服务器工作组。这是支持 MySQL 和 PostgreSQL 的区分大小写功能所必须的。enable_case_sensitive_identifier
是一个配置值,用于确定数据库、表和列的名称标识符是否区分大小写。必须开启此参数才能在数据仓库中创建零 ETL 集成。有关更多信息,请参阅 enable_case_sensitive_identifier。
对于 Amazon Redshift Serverless – 使用 AWS CLI 为 Amazon Redshift Serverless 开启区分大小写。请注意,您只能从 AWS CLI 为 Amazon Redshift Serverless 开启区分大小写。
对于 Amazon Redshift 预置集群,请使用以下主题之一为目标集群启用区分大小写:
使用 AWS CLI 为 Amazon Redshift Serverless 开启区分大小写
运行以下 AWS CLI 命令为您工作组开启区分大小写。
aws redshift-serverless update-workgroup \ --workgroup-name
target-workgroup
\ --config-parameters parameterKey=enable_case_sensitive_identifier,parameterValue=true
请等待工作组状态变为 Active
,然后再执行下一步操作。
使用 Amazon Redshift 控制台为 Amazon Redshift 预置集群开启区分大小写
登录 AWS Management Console,然后通过以下网址打开 Amazon Redshift 控制台:https://console.aws.amazon.com/redshiftv2/
。 -
在左侧导航窗格中,选择预置集群控制面板。
-
选择要将数据复制到的预置集群。
-
在左侧导航窗格中,选择配置 > 工作负载管理。
-
在工作负载管理页面中,选择参数组。
-
选择参数选项卡。
-
选择编辑参数,然后将 enable_case_sensitive_identifier 更改为 true。
-
然后,选择保存。
使用 AWS CLI 为 Amazon Redshift 预置集群开启区分大小写
-
由于您无法编辑默认参数组,因此请在终端程序中运行以下 AWS CLI 命令来创建自定义参数组。稍后,您将它与预置集群相关联。
aws redshift create-cluster-parameter-group \ --parameter-group-name
zero-etl-params
\ --parameter-group-family redshift-1.0 \ --description "Param group for zero-ETL integrations" -
运行以下 AWS CLI 命令,为您参数组开启区分大小写。
aws redshift modify-cluster-parameter-group \ --parameter-group-name
zero-etl-params
\ --parameters ParameterName=enable_case_sensitive_identifier,ParameterValue=true -
运行以下命令,将参数值与集群关联。
aws redshift modify-cluster \ --cluster-identifier
target-cluster
\ --cluster-parameter-group-namezero-etl-params
-
等待预调配集群变为可用。您也可以使用
describe-cluster
命令查看集群的状态。然后,运行以下命令可重启集群。aws redshift reboot-cluster \ --cluster-identifier
target-cluster
为您的 Amazon Redshift 数据仓库配置授权
要将数据从集成源复制到 Amazon Redshift 数据仓库中,您必须首先添加以下两个实体:
-
已授权的主体 – 标识可以在数据仓库中创建零 ETL 集成的用户或角色。
-
已授权的集成源 – 标识可以更新数据仓库的源数据库。
您可以从 Amazon Redshift 控制台的资源策略选项卡或者使用 Amazon Redshift PutResourcePolicy
API 操作,配置授权主体和授权集成源。
添加已授权的主体
要在您的 Redshift Serverless 工作组或预置集群中创建零 ETL 集成,需要授予对关联命名空间或预置集群的访问权限。
如果满足以下两个条件,则可以跳过此步骤:
-
拥有 Redshift Serverless 工作组或预置集群的 AWS 账户也拥有源数据库。
-
该主体与基于身份的 IAM 策略相关联,该策略使其有权在此 Redshift Serverless 命名空间或预置集群中创建零 ETL 集成。
将已授权的主体添加到 Amazon Redshift Serverless 命名空间
-
在 Amazon Redshift 控制台的左侧导航窗格中,选择 Redshift Serverless。
-
选择命名空间配置,选择您的命名空间,然后转到资源策略选项卡。
-
选择添加已授权的主体。
-
对于要添加的每个已授权的主体,输入您想要授予访问权限的 AWS 用户或角色的 ARN,或者 AWS 账户的 ID,以便他们能在命名空间中创建零 ETL 集成。账户 ID 存储为 ARN。
-
选择 Save changes(保存更改)。
向 Amazon Redshift 预置集群添加已授权的主体
-
在 Amazon Redshift 控制台的左侧导航窗格中,选择预置集群控制面板。
-
选择集群,然后选择集群并转到资源策略选项卡。
-
选择添加已授权的主体。
-
对于要添加的每个已授权的主体,输入您想要授予访问权限的 AWS 用户或角色的 ARN,或者 AWS 账户的 ID,以便他们能在集群中创建零 ETL 集成。账户 ID 存储为 ARN。
-
选择 Save changes(保存更改)。
添加已授权的集成源
要允许您的源更新 Amazon Redshift 数据仓库,您必须将其作为已授权的集成源添加到命名空间。
向 Amazon Redshift Serverless 命名空间添加已授权的集成源
-
在 Amazon Redshift 控制台中,转到无服务器控制面板。
-
选择命名空间的名称。
-
转到资源策略选项卡。
-
选择添加已授权的集成源。
-
指定用于零 ETL 集成的源的 ARN。
注意
移除已授权的集成源会阻止数据复制到命名空间。此操作会停用从该源到此命名空间的所有零 ETL 集成。
向 Amazon Redshift 预置集群添加已授权的集成源
-
在 Amazon Redshift 控制台中,转到预置集群控制面板。
-
选择预置集群的名称。
-
转到资源策略选项卡。
-
选择添加已授权的集成源。
-
指定作为零 ETL 集成的数据来源的源 ARN。
注意
移除已授权的集成源会阻止数据复制到预置集群。此操作会停用从该源到此 Amazon Redshift 预置集群的所有零 ETL 集成。
使用 Amazon Redshift API 配置授权
您可以使用 Amazon Redshift API 操作来配置用于零 ETL 集成的资源策略。
要控制可以在命名空间中创建入站集成的源,请创建资源策略并将其附加到命名空间。使用资源策略,您可以指定有权访问集成的源。资源策略附加到目标数据仓库的命名空间,以允许源创建入站集成,将数据从源中复制到 Amazon Redshift。
以下是资源策略示例。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "redshift:AuthorizeInboundIntegration", "Condition": { "StringEquals": { "aws:SourceArn": "
source_arn
" } } }, { "Effect": "Allow", "Principal": { "AWS": "source_principal
" }, "Action": "redshift:CreateInboundIntegration" } ] }
以下总结了可用于为集成配置资源策略的 Amazon Redshift API 操作:
-
使用 PutResourcePolicy API 操作来使资源策略生效。当您提供其他资源策略时,将替换该资源上之前的资源策略。使用前面的资源策略示例,该策略授予执行以下操作的权限:
-
CreateInboundIntegration
– 允许源主体创建入站集成,以便将数据从源复制到目标数据仓库。 -
AuthorizeInboundIntegration
– 允许 Amazon Redshift 持续验证目标数据仓库是否能够接收从源 ARN 复制的数据。
-
-
使用 GetResourcePolicy API 操作可查看现有资源策略。
-
使用 DeleteResourcePolicy API 操作可从资源中移除资源策略。
要更新资源策略,您也可以使用 put-resource-policy AWS CLI 命令。
后续步骤
现在,您已经为目标 Amazon Redshift 数据仓库配置了授权,您可以创建零 ETL 集成并开始复制数据。
根据您的源,请执行下列操作之一。
-
要创建 Aurora 零 ETL 集成,请参阅《Amazon Aurora 用户指南》中的创建 Aurora 与 Amazon Redshift 的零 ETL 集成。
-
要创建 RDS 零 ETL 集成,请参阅《Amazon RDS User Guide》中的 Creating Amazon RDS zero-ETL integrations with Amazon Redshift。