使用 AWS CloudShell 查看计划查询的结果 - Amazon Redshift

使用 AWS CloudShell 查看计划查询的结果

您可以使用 AWS CloudShell 查找有关计划查询的详细信息。您必须具有适当的权限才能运行 AWS CLI 命令,如以下过程所示。

查看计划查询的结果
  1. 在 AWS 控制台上,打开 AWS CloudShell 命令提示符。有关 AWS CloudShell 的更多信息,请参阅《AWS CloudShell User Guide》中的What is AWS CloudShell

  2. 代入计划查询的 IAM 角色。要代入该角色,请在查询编辑器 v2 中找到与计划查询关联的 IAM 角色,然后在 AWS CloudShell 中通过 AWS CLI 命令使用它。例如,对于角色 scheduler,输入 AWS STS 命令以代入计划查询所用的角色。

    aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/scheduler" --role-session-name "scheduler-test"

    返回的凭证与以下内容类似。

    "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY...", "Expiration": "2023-08-18T18:19:44+00:00" }, "AssumedRoleUser": { "AssumedRoleId": "AROA35B2NH6WBTP7ONL4E:scheduler-test", "Arn": "arn:aws:sts::123456789012:assumed-role/scheduler/scheduler-test" } }
  3. 使用代入 IAM 角色时显示的凭证在 AWS CLI 中创建环境变量。您必须在这些令牌到期之前使用它们。例如,您可以在 AWS CloudShell 中输入以下内容。

    export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY...
  4. 要查看失败查询的错误,请运行 AWS CLI 命令以描述语句。SQL 语句的 ID 来自查询编辑器 v2 中计划查询的计划历史记录部分显示的 ID

    aws redshift-data describe-statement --id 130d2620-05d2-439c-b7cf-815d9767f513

    在本例中,计划的 SQL select * from users limit 100 会导致一个 SQL 错误,即 users 表不存在。

    { "CreatedAt": "2023-08-18T17:39:15.563000+00:00", "Duration": -1, "Error": "ERROR: relation \"users\" does not exist", "HasResultSet": false, "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "QueryString": "select * from users limit 100\n—RequestID=a1b2c3d4-5678-90ab-cdef-EXAMPLE22222; TraceID=1-633c5642-4039308d03f3a0ba53dbdf6f", "RedshiftPid": 1073766651, "RedshiftQueryId": 0, "ResultRows": -1, "ResultSize": -1, "Status": "FAILED", "UpdatedAt": "2023-08-18T17:39:16.116000+00:00", "WorkgroupName": "default" }