本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中创建亚马逊 Redshift 托管目录 Amazon Glue Data Catalog
你现在可能没有可用的亚马逊 Redshift 创建器集群或 Amazon Redshift 数据共享,但想使用创建和管理亚马逊 Redshift 表。 Amazon Glue Data Catalog首先,您可以使用 glue:CreateCatalog
API 创建 Amazon Glue
托管目录,也可以将目录类型设置为 Red Amazon Lake Formation shift,也可以通过将目录类型设置Catalog source
为 Managed
Red shift 来创建托管目录。此步骤执行以下操作:
在数据目录中创建目录
将目录注册为 Lake Formation 数据位置
创建一个 Amazon Redshift 托管的无服务器工作组
使用数据共享对象链接 Amazon Redshift 无服务器工作组和数据目录
创建托管目录并设置权限(控制台)
-
打开 Lake Formation 控制台,网址为https://console.aws.amazon.com/lakeformation/
。 在导航窗格中,选择数据目录下的目录。
选择 “创建目录” 选项。
在 “设置目录” 详细信息页面上,输入以下信息:
-
名称-托管目录的唯一名称。名称不能更改,必须使用小写字母。该名称最多可包含 255 个字符。account。
-
类型-选择
Managed catalog
作为目录类型。 -
存储-选择
Redshift
存储。 -
描述-输入根据数据源创建的目录的描述。
-
您可以使用在亚马逊上的 EMR 上运行的 Apache Spark 应用程序来访问中的 EC2 亚马逊 Redshift 数据库。 Amazon Glue Data Catalog
要让 Apache Spark 能够读取和写入亚马逊 Redshift 托管存储 Amazon Glue ,请创建一个托管的 Amazon Redshift 集群,该集群包含在不影响 Amazon Redshift 数据仓库工作负载的情况下执行读写操作所需的计算和存储资源。您还需要为一个 IAM 角色提供向 Amazon S3 存储桶传输数据和从中传输数据所需的权限。有关数据传输角色所需的权限,请参阅一在中管理 Amazon Redshift 命名空间的先决条件 Amazon Glue Data Catalog节中的步骤 5。
-
默认情况下,Amazon Redshift 集群中的数据使用 Amazon 托管密钥进行加密。Lake Formation 提供了一个选项来创建用于加密的自定义 KMS 密钥。如果您使用的是客户管理的密钥,则必须为密钥添加特定的密钥策略。
-
如果您使用客户管理的密钥对 Amazon Redshift 托管存储中的数据进行加密,请选择自定义加密设置。要使用自定义密钥,您必须在 KMS 密钥中添加其他自定义托管密钥策略。有关更多信息,请参阅 在中管理 Amazon Redshift 命名空间的先决条件 Amazon Glue Data Catalog。
-
加密选项-如果要使用自定义密钥加密目录,请选择 “自定义加密设置” 选项。要使用自定义密钥,您必须在 KMS 密钥中添加其他自定义托管密钥策略。
选择 “下一步” 向其他委托人授予权限。
在授予权限页面上,选择添加权限。
-
在添加权限屏幕上,选择委托人和要授予的权限类型。
-
在主体部分中,选择主体类型,然后指定要授予权限的主体。
-
IAM 用户和角色-从 IAM 用户和角色列表中选择一个或多个用户或角色。
-
SAML 用户和群组 — 对于 SAML 以及 Amazon QuickSight 用户和群组,请为通过 SAML 联合的用户或群组或亚马逊用户或群组输入一个或多个 ARNs Ama QuickSight zon 资源名称 (ARNs)。在每个 ARN 后按 Enter。
有关如何构造的信息 ARNs,请参阅 Amazon CLI 授予和撤消 Amazon CLI 命令。
-
-
在权限部分中,选择权限和可授予的权限。
在目录权限下,选择一个或多个要授予的权限。
选择 Super user 可授予对目录中所有资源的无限制管理权限。
在 “可授予权限” 下,选择授予接受者可以向其 Amazon 账户中的其他委托人授予的权限。当您从外部账户向 IAM 主体授予权限时,不支持此选项。
-
-
选择 “下一步” 以查看信息并创建目录。目录列表显示新的托管目录。
创建联合目录 (CLI)
-
以下示例说明如何创建联合目录。
aws glue create-catalog --cli-input-json file://input.json { "Name":
"CatalogName"
, "CatalogInput": { "Description":"Redshift published Catalog"
, "CreateDatabaseDefaultPermissions" : [], "CreateTableDefaultPermissions": [], "CatalogProperties": { "DataLakeAccessProperties" : { "DataLakeAccess" : "true", "DataTransferRole" :"DTR arn"
, "KMSKey":"kms key arn"
, // Optional "CatalogType": "aws:redshift" } } } }Glue 获取目录回复
aws glue get-catalog \ --catalog-id
account-id
:catalog-name
\ --regionus-east-1
Response: { "Catalog": { "Name": "CatalogName", "Description": "Glue Catalog for Redshift z-etl use case", "CreateDatabaseDefaultPermissions" : [], "CreateTableDefaultPermissions": [], "CatalogProperties": { "DataLakeAccessProperties" : { "DataLakeAccess": "true", "DataTransferRole": "DTR arn", "KMSKey": "kms key arn", "ManagedWorkgroupName": "MWG name", "ManagedWorkgroupStatus": "MWG status", "RedshiftDatabaseName": "RS db name", "NamespaceArn": "namespace key arn", "CatalogType": "aws:redshift" } } }