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

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

第12步: 查询DataLake中的数据,使用 Amazon Redshift Spectrum

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

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

有关 Amazon Redshift Spectrum,请参阅 使用AmazonRedshiftSpectrum查询外部数据Amazon Redshift Database Developer Guide.

要设置要运行的权限 Amazon Redshift 查询

  1. 访问 https://console.amazonaws.cn/iam/,打开 IAM 控制台。登录为 IAM 创建的管理员用户 创建 IAM 管理员用户 (用户名 Administrator)或作为 IAM 用户使用 AdministratorAccess AWS管理策略。

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

    如果这是您首次选择策略,则会显示 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" ], "Resource": "*" } ] }
  6. 完成后,选择审核对策略进行审核。策略验证程序将报告任何语法错误。

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

  8. 在 IAM 控制台的导航窗格中,选择 Roles (角色),然后选择 Create role (创建角色)

  9. 对于 Select type of trusted entity (选择受信任实体的类型),选择 AWS service (AWS 服务)

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

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

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

  13. 选择 下一步: 标签.

  14. 选择 下一步: 回顾.

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

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

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

授予 Select 上要查询的 Lake Formation 数据库

  1. 通过以下网址打开 Lake Formation 控制台:https://console.amazonaws.cn/lakeformation/。以数据湖管理员身份登录。

  2. 在导航窗格中,位于 权限,选择 数据权限,然后选择 授予.

  3. 提供以下信息:

    • 对于 IAM用户和角色,选择 IAM 所创建的角色, RedshiftLakeFormationRole。当您运行 Amazon Redshift 查询编辑器,它使用此 IAM 数据的权限角色。

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

      表列表会填充。

    • 对于 ,在数据源中选择一个表以查询。

    • 选择 选择 表格权限。

  4. 选择 授予.

要设置 Amazon Redshift Spectrum 并运行查询(新的 Amazon Redshift 控制台)

注意

以下说明适用于新的 Amazon Redshift 控制台。

  1. 访问 https://console.amazonaws.cn/redshift,打开 Amazon Redshift 控制台。以用户身份登录 Administrator.

  2. 选择 Create Cluster (创建集群)

  3. 创建群集 页面,下方 直流2,选择 dc2.大.

  4. 向下滚动,并在 群集详细信息,输入或接受这些参数:

    集群标识符 redshift-lakeformation-demo
    数据库端口 5439
    主用户名 awsuser
    主用户密码 (选择密码)
  5. 展开 群集权限、和 可用的IAM角色,选择 RedshiftLakeFormationRole。然后选择 添加IAM角色.

  6. 选择 Create Cluster (创建集群)

    群集 页面加载。

  7. 等待群集状态变为 可用. 定期选择刷新图标。

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

    1. 打开 IAM 控制台位于 https://console.amazonaws.cn/iam/,并以 Administrator 用户。

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

      • AmazonRedshiftQueryEditor

      • AmazonRedshiftReadOnlyAccess

  9. 注销 Amazon Redshift 控制台并作为用户重新登录 datalake_user.

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

    注意

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

  11. 新查询1 文本框,输入并运行以下语句以映射数据库 lakeformation_tutorial 英寸 Lake Formation 到 Amazon Redshift 框架名称 redshift_jdbc:

    重要

    Replace <account-id> 使用有效的AWS帐号,以及 <region> 使用有效的AWS区域名称(例如, 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>';
  12. 在框架列表中,位于 选择架构,选择 红色偏移_jdbc.

    表列表会填充。查询编辑器仅显示您被授予的表 Lake Formation 数据权限。

  13. 在表名称旁的弹出菜单中,选择 预览数据.

    Amazon Redshift 返回前10行。

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

要设置 Amazon Redshift Spectrum 并运行查询(原始 Amazon Redshift 控制台)

注意

以下说明适用于原始 Amazon Redshift 控制台。

  1. 访问 https://console.amazonaws.cn/redshift/,打开 Amazon Redshift 控制台。以用户身份登录 Administrator.

  2. 选择 快速启动群集.

  3. 快速上市 页面,输入或接受这些参数:

    集群标识符 redshift-lakeformation-demo
    数据库名称 dev
    数据库端口 5439
    主用户名 awsuser
    主用户密码 (选择并确认密码)
    可用的IAM角色 RedshiftLakeFormationRole

    有关更多信息,请参阅 使用控制台管理群集Amazon Redshift Cluster Management Guide.

  4. 选择 启动群集.

  5. 等待群集状态变为 available.

    要查看群集状态,请在导航窗格中选择 群集 并检查 群集状态 列。定期选择刷新图标。

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

    1. 打开 IAM 控制台位于 https://console.amazonaws.cn/iam/,并以 Administrator 用户。

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

      • AmazonRedshiftReadOnlyAccess

      • AmazonRedshiftQueryEditor

  7. 注销 Amazon Redshift 控制台并作为用户重新登录 datalake_user.

  8. 打开查询编辑器并连接到群集。如果提示输入凭据,请选择群集名称 redshift-lakeformation-demo,然后输入数据库名称 dev,用户名 awsuser和您创建的密码。然后选择 连接.

    注意

    如果系统未提示您输入凭据,并且查询编辑器中已选择另一个群集,请选择群集名称以打开凭据对话框。

  9. 新查询1 文本框,输入并运行以下语句以映射数据库 lakeformation_tutorial 英寸 Lake Formation 到 Amazon Redshift 框架名称 redshift_jdbc:

    重要

    Replace <account-id> 使用有效的AWS帐号,以及 <region> 使用有效的AWS区域名称(例如, 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>';
  10. 架构 列表中,选择 redshift_jdbc.

    表列表会填充。查询编辑器仅显示您被授予的表 Lake Formation 数据权限。

  11. 选择其中一个表旁边的眼睛图标。

    Amazon Redshift 返回前10行。

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