AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Amazon Redshift에서 Data API 쿼리 오류를 식별하려면 어떻게 해야 합니까?
Amazon Redshift Data API 쿼리가 실패한 이유를 확인하려고 합니다.
해결 방법
Amazon Redshift Data API는 비동기식입니다. 완료될 때까지 기다린 다음 장기 실행 쿼리를 실행할 필요가 없습니다.
쿼리가 실패하면 쿼리 상태가 즉시 표시되지 않습니다. DescribeStatement API 작업을 사용하여 단일 또는 다중 쿼리의 실패 원인을 확인합니다.
단일 쿼리
문 ID 확인
Amazon Redshift 클러스터에 대해 단일 쿼리를 실행하려면 먼저 문 ID를 가져옵니다.
문 ID를 가져오려면 ExecuteStatement API 작업을 실행합니다. 다음 예시 명령은 AWS Secrets Manager를 통해 인증하고 클러스터에 대해 SQL 문을 실행합니다.
aws redshift-data execute-statement --region us-east-1 --secret arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn --cluster-identifier redshift-cluster-1 --sql "select * from test_table;" --database dev
출력 예시:
{ "ClusterIdentifier": "redshift-cluster-1", "CreatedAt": "2022-09-16T12:22:31.894000+05:30", "Database": "dev", "Id": "458c568d-717b-4f36-90bd-e642bfb06cbf", "SecretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn" }
출력의 Id 섹션에는 문 ID가 표시됩니다.
상태 검사
쿼리 상태를 확인하려면 DescribeStatement를 사용하고 문 ID를 입력합니다.
aws redshift-data describe-statement --id 458c568d-717b-4f36-90bd-e642bfb06cbf
출력 예시:
{ "ClusterIdentifier": "redshift-cluster-1", "CreatedAt": "2022-09-16T12:22:31.894000+05:30", "Duration": -1, "Error": "ERROR: relation "test_table" does not exist", "HasResultSet": false, "Id": "458c568d-717b-4f36-90bd-e642bfb06cbf", "QueryString": "select * from test_table;", "RedshiftPid": 1074727629, "RedshiftQueryId": -1, "ResultRows": -1,< "ResultSize": -1, "SecretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn", "Status": "FAILED", "UpdatedAt": "2022-09-16T12:22:32.365000+05:30" }
출력의 Error 섹션에는 오류가 표시됩니다. "ERROR: relation "test_table" does not exist".
다중 쿼리
문 ID 확인
Amazon Redshift 클러스터에 대해 다중 쿼리를 실행하려면 먼저 문 ID를 가져옵니다.
명령문 ID를 가져오려면 BatchExecuteStatement API 작업을 사용합니다. 다음 예시를 참조하십시오.
aws redshift-data batch-execute-statement --region us-east-1 --secret-arn arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn --cluster-identifier redshift-cluster-1 --database dev --sqls "select * from test_table;" "select * from another_table;"
출력 예시:
{ "ClusterIdentifier": "redshift-cluster-1", "CreatedAt": "2022-09-16T12:37:16.707000+05:30", "Database": "dev", "Id": "08b4b917-9faf-498a-964f-e82a5959d1cb", "SecretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn" }
출력의 Id 섹션에는 문 ID가 표시됩니다.
상태 검사
쿼리 상태를 확인하려면 DescribeStatement를 사용하고 문 ID를 입력합니다.
aws redshift-data describe-statement --id 08b4b917-9faf-498a-964f-e82a5959d1cb
출력 예시:
{ "ClusterIdentifier ": "redshift-cluster-1 ", "CreatedAt ": "2022-09-16T12:37:16.707000+05:30 ", "Duration ": 0, "Error ": "Query #1 failed with ERROR: relation \ "test_table\" does not exist ", "HasResultSet ": false, "Id ": "08b4b917-9faf-498a-964f-e82a5959d1cb ", "RedshiftPid ": 1074705048, "RedshiftQueryId ": 0, "ResultRows ":-1, "ResultSize ": -1, "SecretArn ": "arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn ", "Status ": "FAILED ", "SubStatements ": [ { "CreatedAt ": "2022-09-16T12:37:16.905000+05:30 ", "Duration ": -1, "Error ": "ERROR: relation \ "test_table\" does not exist ", "HasResultSet ": false, "Id ": "08b4b917-9faf-498a-964f-e82a5959d1cb:1", "QueryString ": "select * from test_table; ", "RedshiftQueryId ": -1, "ResultRows ": -1, "ResultSize ": -1, "Status ": "FAILED ", "UpdatedAt ": "2022-09-16T12:37:17.263000+05:30 " }, { "CreatedAt ": "2022-09-16T12:37:16.905000+05:30", "Duration ": -1, "Error ": "Connection or an prior query failed. ", "HasResultSet ": false, "Id ": "08b4b917-9faf-498a-964f-e82a5959d1cb:2 ", "QueryString ": "select * from another_table;", "RedshiftQueryId ": 0, "ResultRows ": -1, "ResultSize": -1, "Status ": "ABORTED ", "UpdatedAt ": "2022-09-16T12:37:17.263000+05:30 " } ], "UpdatedAt ": "2022-09-16T12:37:17.288000+05:30 " }
출력에는 다중 문 쿼리 내에 있는 각 개별 SQL 문의 상태가 표시됩니다. 출력의 Error 섹션에는 각 문의 오류가 표시됩니다.
Data API 관련 문제를 해결하려면 Amazon Redshift Data API 문제 해결을 참조하십시오.
참고: ExecuteStatement 또는 BatchExecuteStatement API 작업의 실행자와 동일한 AWS Identity and Access Management(IAM) 역할 또는 IAM 권한을 보유한 사용자는 DescribeStatement를 사용하여 동일한 문에 대해 작업을 수행할 수 있습니다. 다른 사용자가 동일한 SQL 문을 사용하려면 해당 사용자는 SQL 문을 실행한 사용자의 IAM 역할을 맡아야 합니다.
자세한 내용은 Amazon Redshift Data API 호출 시 고려 사항을 참조하십시오.
Data API 이벤트 모니터링
Amazon EventBridge는 Data API 이벤트를 모니터링합니다. 이 정보를 AWS Lambda 함수로 보내면 함수가 Amazon Simple Notification Service(Amazon SNS)에 연결되어 알림을 전송합니다.
자세한 내용은 AWS Lambda와 Amazon Redshift Data API를 사용한 이벤트 기반 애플리케이션 빌드를 참조하십시오.
- 언어
- 한국어
