在 Amazon Glue Data Catalog 中创建视图(预览版)
以下是预览版 Data Catalog for Amazon Redshift 中的预发行文档视图。文档和特征都可能会更改。我们建议您只在测试集群中使用此功能,而不要在生产环境中使用。有关预览条款和条件,请参阅 Amazon 服务条款 |
您可以在预览版中创建 Amazon Redshift 集群,以便测试 Amazon Redshift 的新功能。您无法在生产环境中使用这些功能,也无法将预览版集群移动到生产集群或另一个跟踪上的集群。有关预览条款和条件,请参阅 Amazon 服务条款
在预览版中创建集群
登录 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Redshift 控制台:https://console.aws.amazon.com/redshiftv2/
。 在导航菜单上,选择预置集群控制面板,然后选择集群。列出您的账户在当前 Amazon Web Services 区域 区域中的集群。列表中的各个列中显示了每个集群的一部分属性。
集群列表页面上会显示一个横幅,其中介绍了预览版。选择创建预览版集群按钮以打开创建集群页面。
输入集群的属性。选择包含要测试的功能的预览版跟踪。我们建议输入的集群名称指明要对该集群进行预览版跟踪。为您的集群选择选项,包括标记为 -preview 的选项,用于要测试的功能。有关创建集群的一般信息,请参阅《Amazon Redshift 管理指南》中的创建集群。
选择创建集群以在预览模式下创建集群。
注意
preview_2023
跟踪是最新可用的预览版跟踪。此版本仅支持创建具有 RA3 节点类型的集群。不支持节点类型 DC2 以及任何更早的节点类型。当您的预览集群可用时,使用 SQL 客户端加载和查询数据。
Data Catalog 视图预览功能仅在以下区域中可用。
美国东部(俄亥俄州)(us-east-2)
美国东部(弗吉尼亚州北部)(us-east-1)
美国西部(北加利福尼亚)(us-west-1)
亚太地区(东京)(ap-northeast-1)
欧洲地区(爱尔兰)(eu-west-1)
欧洲地区(斯德哥尔摩)(eu-north-1)
您也可以创建预览工作组来测试 Data Catalog 视图。您无法在生产中使用这些功能,也无法将您的工作组移至其他工作组。有关预览条款和条件,请参阅 Amazon 服务条款
通过在 Amazon Glue Data Catalog 中创建视图,您可以创建单一的通用视图架构和元数据对象,以便在 Amazon Athena 和 Amazon EMR Spark 等引擎中使用。这样做可以让您在数据湖和数据仓库中使用相同的视图来适应您的使用案例。Data Catalog 中的视图是特殊的,因为它们被归类为定义者视图,其中访问权限由创建视图的用户定义,而不是由查询视图的用户定义。以下是一些在 Data Catalog 中创建视图的使用案例和好处:
-
创建一个视图,根据用户所需的权限来限制数据访问。例如,您可以使用 Data Catalog 中的视图来防止不在 HR 部门工作的员工查看个人身份信息 (PII)。
-
确保用户无法访问不完整的记录。通过对 Data Catalog 中的视图应用某些筛选器,可以确保 Data Catalog 中视图内的数据记录始终完整。
-
Data Catalog 视图还具有安全优势,即确保用于创建视图的查询定义必须完整才能创建视图。这种安全性优势意味着 Data Catalog 中的视图不容易受到恶意玩家的 SQL 命令的影响。
-
Data Catalog 中的视图支持与普通视图相同的优点,例如允许用户访问视图,而不向用户提供底层表。
要在 Data Catalog 中创建视图,必须有 Spectrum 外部表、包含在 Lake Formation 管理的数据共享中的对象或 Apache Iceberg 表。
Data Catalog 视图定义存储于 Amazon Glue Data Catalog。可以使用 Amazon Lake Formation 通过资源授权、列授权或基于标签的访问控制来授予访问权限。有关在 Lake Formation 中授予和撤销访问权限的更多信息,请参阅授予和撤销对 Data Catalog 资源的权限。
先决条件
在 Data Catalog 中创建视图之前,请确保已完成以下先决条件:
确保您的 IAM 角色具有以下信任策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
您还需要以下传递角色策略。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1", "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] } } } ] }
最后,您还需要以下权限。
Glue:GetDatabase
Glue:GetDatabases
Glue:CreateTable
Glue:GetTable
Glue:UpdateTable
Glue:DeleteTable
Glue:GetTables
Glue:SearchTables
Glue:BatchGetPartition
Glue:GetPartitions
Glue:GetPartition
Glue:GetTableVersion
Glue:GetTableVersions
端到端示例
首先基于 Data Catalog 数据库创建外部架构。
CREATE EXTERNAL SCHEMA IF NOT EXISTS external_schema FROM DATA CATALOG DATABASE 'external_data_catalog_db' IAM_ROLE 'arn:aws:iam::123456789012:role/sample-role';
现在您可以创建 Data Catalog 视图。
CREATE EXTERNAL PROTECTED VIEW external_schema.remote_view AS SELECT * FROM external_schema.remote_table;
然后,您可以开始查询视图。
SELECT * FROM external_schema.remote_view;
有关与 Data Catalog 中的视图相关的 SQL 命令的更多信息,请参阅 CREATE EXTERNAL VIEW、ALTER EXTERNAL VIEW 和 DROP EXTERNAL VIEW。
注意事项和限制
以下是适用于在 Data Catalog 中创建的视图的注意事项和限制。
无法创建基于其他视图的 Data Catalog 视图。
在 Data Catalog 视图中只能有 10 个基表。
视图的定义者必须对基表拥有完全
SELECT GRANTABLE
权限。视图只能包含 Lake Formation 对象和内置对象。不允许在视图中使用以下对象。
系统表
用户定义的函数 (UDF)
不在 Lake Formation 管理的数据共享中的 Redshift 表、视图、实体化视图和后期绑定视图。
视图不能包含嵌套的 Redshift Spectrum 表。
只能使用双点符号来查询视图。不支持从外部安装的数据库查询 Lake Formationviews。
Redshift 视图中引用的 Lake Formation 表的 ARN 长度必须少于 127 个字符。
视图基础对象的 Amazon Glue 表示形式必须与视图位于相同 Amazon Web Services 账户和区域中。