步骤 12:使用 Amazon Redshift Spectrum 查询数据湖中的数据 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

步骤 12:使用 Amazon Redshift Spectrum 查询数据湖中的数据

您可以设置 Amazon Redshift Spectrum 以查询导入到 Amazon Simple Storage Service (Amazon S3) 数据湖中的数据。首先,创建Amazon Identity and Access Management(IAM) 角色,用于启动 Amazon Redshift 群集和查询 Amazon S3 数据。然后,将此角色授予Select对要查询的表的权限。然后,授予用户使用 Amazon Redshift 查询编辑器的权限。最后,创建 Amazon Redshift 集群并运行查询。

您以管理员身份创建集群,然后以数据分析师身份查询集群。

有关 Amazon Redshift Spectrum 的更多信息,请参阅使用 Amazon Redshift Spectrum 查询外部数据中的Amazon Redshift 数据库开发人员指南.

设置运行 Amazon Redshift 查询的权限

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/。以您在中创建的 IAM 管理员用户身份登录创建 IAM 管理员用户(用户名Administrator) 或者作为 IAM 用户AdministratorAccess Amazon托管策略。

  2. 在导航窗格中,选择 Policies (策略)

    如果这是您首次选择 Policies,则会显示 Welcome to Managed Policies 页面。选择开始使用

  3. 选择 Create policy (创建策略)

  4. 请选择 JSON 选项卡。

  5. 粘贴到下面的 JSON 策略文档中。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags", "lakeformation:GetWorkUnits", "lakeformation:StartQueryPlanning", "lakeformation:GetWorkUnitResults", "lakeformation:GetQueryState", "lakeformation:GetQueryStatistics" ], "Resource": "*" } ] }
  6. 完成后,选择审核对策略进行审核。策略验证程序将报告任何语法错误。

  7. 在存储库的查看策略页面中,输入名称如同RedshiftLakeFormationPolicy对于您要创建的策略。输入描述(可选)。查看策略摘要以查看您的策略授予的权限。然后,选择创建策略以保存您的工作。

  8. 在 IAM 控制台的导航窗格中,选择 Roles,然后选择 Create role

  9. 适用于选择信任的实体,选择Amazon服务.

  10. 选择 Amazon Redshift 服务来代入此角色。

  11. 为您的服务选择 Redshift Customizable (Redshift 可自定义)。接下来,选择 Next (下一步):Permissions (下一步:权限)

  12. 搜索您创建的权限策略,RedshiftLakeFormationPolicy,选中列表中策略名称旁边的复选框。

  13. 选择 Next:。标签

  14. 选择 Next:。审核

  15. 对于角色名称,输入名称 RedshiftLakeFormationRole

  16. (可选)对于 Role description (角色描述),输入新角色的描述。

  17. 检查该角色,然后选择创建角色

授予Select要在 Lake Formation 数据库中查询的表的权限

  1. 通过 https://console.aws.amazon.com/lakeformation/ 中打开 Lake Formation 控制台。以数据湖管理员身份登录。

  2. 在导航窗格中的下Permissions (权限),选择数据权限选择,然后选择Grant.

  3. 提供以下信息:

    • 适用于IAM 用户和角色,选择您创建的 IAM 角色,RedshiftLakeFormationRole. 运行 Amazon Redshift 查询编辑器时,它使用此 IAM 角色来获取数据权限。

    • 对于 Database (数据库),请选择 lakeformation_tutorial

      表格列表填充完毕。

    • 适用于中,选择数据源中要查询的表。

    • 选择Select表权限。

  4. 选择 Grant(授权)。

设置 Amazon Redshift Spectrum 并运行查询

  1. 打开 Amazon Redshift 控制台https://console.amazonaws.cn/redshift. 作为用户登录Administrator.

  2. 选择创建集群

  3. 在存储库的创建集群页面,输入redshift-lakeformation-demo(对于 )​集群标识​符.

  4. 对于节点类型,选择dc2.large.

  5. 向下滚动和下方数据库配置中,输入或接受以下参数:

    • 管理员用户名称awsuser

    • 管理员用户密码(Choose a password)

  6. Expand群集权限,以及IAM 角色可用,选择redshift Lake 编队角色. 然后选择 Add IAM role (添加 IAM 角色)

  7. 如果必须使用与默认值 5439 不同的端口,请在其他配置,关闭使用默认值选项。展开部分数据库配置,然后输入一个新的数据库端口数字。

  8. 选择创建集群

    这些区域有:集群页面加载。

  9. 等到群集状态变为Available. 定期选择刷新图标。

  10. 授予数据分析师对集群运行查询的权限。为此,请完成以下步骤。

    1. 在处打开 IAM 控制台https://console.aws.amazon.com/iam/,然后以Administrator用户。

    2. 在导航窗格中,选择用户,将下面的托管策略附加到用户datalake_user.

      • AmazonRedshiftQueryEditor

      • AmazonRedshiftReadOnlyAccess

  11. 注销 Amazon Redshift 控制台并以用户身份重新登录datalake_user.

  12. 在左侧垂直工具栏中,选择编辑器图标以打开查询编辑器并连接到集群。如果连接到数据库出现对话框,选择群集名称redshift-lakeformation-demo,然后输入数据库名称dev,用户名称awsuser,以及您创建的密码。然后,选择 Connect to database (连接到数据库)

    注意

    如果没有提示您输入连接参数并且已在查询编辑器中选择了另一个群集,请选择更改连接打开连接到数据库对话框。

  13. 新查询 1文本框中,输入并运行以下语句来映射数据库lakeformation_tutorial在 Lake Formation 中改为 Amazon Redshift 模式名称redshift_jdbc

    重要

    Replace<account-id>具有有效的Amazon账号,以及<region>具有有效的Amazon地区名称(例如,us-east-1)。

    create external schema if not exists redshift_jdbc from DATA CATALOG database 'lakeformation_tutorial' iam_role 'arn:aws:iam::<account-id>:role/RedshiftLakeFormationRole' region '<region>';
  14. 在下面的模式列表中选择架构,选择redshift t_jdbc.

    表格列表填充完毕。查询编辑器只显示您被授予 Lake Formation 数据权限的表。

  15. 在表名旁边的弹出式菜单中,选择预览数据.

    Amazon Redshift 返回前 10 行。

    现在,您可以对您有权限的表和列运行查询。