

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon Athena를 Amazon Quick Sight와 함께 사용할 때의 연결 문제
<a name="troubleshoot-athena"></a>

아래에서 Amazon Quick Sight와 함께 Amazon Athena를 사용할 때 발생할 수 있는 문제 해결에 대한 정보를 찾을 수 있습니다.

Athena와 관련된 다른 문제를 해결하기 전에, Athena에 연결할 수 있는지 확인하세요. Athena 연결 문제 해결에 대한 자세한 내용은 [Amazon Athena에 연결할 수 없는 경우](troubleshoot-connect-athena.md) 단원을 참조하십시오.

연결할 수 있지만 다른 문제가 있는 경우 Amazon Quick Sight에 쿼리를 추가하기 전에 Athena 콘솔([https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home))에서 쿼리를 실행하는 것이 유용할 수 있습니다. 추가 문제 해결 정보는 Athena 사용 설명서의 [문제 해결](https://docs.aws.amazon.com/athena/latest/ug/troubleshooting.html)을 참조하십시오.

**Topics**
+ [Amazon Quick Sight에서 Athena를 사용할 때 열을 찾을 수 없음](troubleshoot-athena-column-not-found.md)
+ [Amazon Quick Sight에서 Athena를 사용할 때 잘못된 데이터](troubleshoot-athena-invalid-data.md)
+ [Amazon Quick Sight에서 Athena 사용 시 쿼리 제한 시간](troubleshoot-athena-query-timeout.md)
+ [Amazon Quick Sight에서 Athena를 사용할 때 스테이징 버킷이 더 이상 존재하지 않음](troubleshoot-athena-missing-bucket.md)
+ [Amazon Quick Sight에서 Athena AWS Glue 와 함께를 사용할 때 테이블이 호환되지 않음](troubleshoot-athena-glue-table-not-upgraded.md)
+ [Amazon Quick Sight에서 Athena를 사용할 때 테이블을 찾을 수 없음](troubleshoot-athena-table-not-found.md)
+ [Quick Sight에서 Athena 사용 시 작업 그룹 및 출력 오류](troubleshoot-athena-workgroup.md)

# Amazon Quick Sight에서 Athena를 사용할 때 열을 찾을 수 없음
<a name="troubleshoot-athena-column-not-found"></a>

분석에 있는 열이 Athena 데이터 소스에서 누락된 경우에는 "`column not found`" 오류가 발생할 수 있습니다.

Amazon Quick Sight에서 분석을 엽니다. **시각화** 탭에서 **데이터 세트 선택**, **분석 데이터 세트 편집**을 선택합니다.

**이 분석의 데이터 세트** 화면에서 데이터 세트 근처의 **편집**을 선택하여 데이터 세트를 새로 고칩니다. Amazon Quick Sight는 2분 동안 스키마를 캐싱합니다. 따라서 최근 내용이 표시되는 데 2분이 걸릴 수 있습니다.

열이 첫 번째 위치에 왜 없는지 알아보기 위해 Athena 콘솔([https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home))로 이동한 후 쿼리 기록을 확인하여 테이블을 편집한 쿼리를 찾을 수 있습니다.

미리 보기에서 사용자 지정 SQL 쿼리를 편집 중일 때 이 오류가 발생한 경우, 쿼리에서 열의 이름을 확인하고, 다른 구문 오류를 확인합니다. 예를 들면, 열 이름을 나중에 문자열에 사용할 수 있는 작은 따옴표로 묶지 않았는지 확인합니다.

그래도 문제가 지속되면 테이블, 열, 쿼리가 Athena 요구 사항을 준수하는지 확인하세요. 자세한 내용은 Athena 사용 설명서의 [테이블, 데이터베이스 및 열 이름](https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html)과 [문제 해결](https://docs.aws.amazon.com/athena/latest/ug/troubleshooting.html)을 참조하세요.

# Amazon Quick Sight에서 Athena를 사용할 때 잘못된 데이터
<a name="troubleshoot-athena-invalid-data"></a>

계산된 필드에서 연산자나 함수를 사용할 때 잘못된 데이터 오류가 발생할 수 있습니다. 이 문제를 해결하려면, 테이블의 데이터가 함수에 제공한 형식과 일치하는지 확인합니다.

예를 들어, 함수 `parseDate(expression, [‘format’], [‘time_zone’])`을 **parseDate(date\$1column, ‘MM/dd/yyyy’)**로 사용하고 있다고 가정합니다. 이 경우, `date_column`의 모든 값은 `'MM/dd/yyyy'` 형식(`’05/12/2016’`)을 준수해야 합니다. 값이 하나라도 이 형식(**‘2016/12/05’**)이 아니면 오류가 발생할 수 있습니다.

# Amazon Quick Sight에서 Athena 사용 시 쿼리 제한 시간
<a name="troubleshoot-athena-query-timeout"></a>

쿼리 시간이 초과될 경우 다음 옵션을 사용하여 문제를 해결해 볼 수 있습니다.

분석을 수행하는 동안 오류가 발생한 경우 시각적 객체를 생성하기 위한 Amazon Quick Sight 제한 시간은 2분입니다. 사용자 지정 SQL 쿼리를 사용 중인 경우, 쿼리를 간소화하여 실행 시간을 최적화할 수 있습니다.

직접 쿼리 모드(SPICE 사용하지 않음)에서는 SPICE에 데이터 가져오기를 시도할 수 있습니다. 하지만 쿼리가 30분 제한 시간을 초과할 경우, 데이터를 SPICE에 가져오는 동안 또 다른 시간 초과가 발생할 수 있습니다. Athena 한도에 대한 최신 정보는AWS 일반 참조의 [Amazon Athena 한도](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#amazon-athena-limits)를 참조하세요.

# Amazon Quick Sight에서 Athena를 사용할 때 스테이징 버킷이 더 이상 존재하지 않음
<a name="troubleshoot-athena-missing-bucket"></a>

이 섹션은 "**이 쿼리 결과에 대한 스테이징 버킷이 기본 데이터 원본에 더 이상 존재하지 않습니다**" 오류를 해결하는 데 도움이 됩니다.

 Athena를 사용하여 데이터 세트를 생성하면 Amazon Quick Sight가 Amazon S3 버킷을 생성합니다. 기본적으로 이 버킷의 이름은 "`aws-athena-query-results-<REGION>-<ACCOUNTID>`"와 유사합니다. 이 버킷을 제거하면, 다음 Athena 쿼리에 실패하고 스테이징 버킷이 더 이상 존재하지 않는다는 메시지가 표시될 수 있습니다.

 이 오류를 해결하려면, 올바른 AWS 리전에서 같은 이름으로 새 버킷을 생성하세요.

# Amazon Quick Sight에서 Athena AWS Glue 와 함께를 사용할 때 테이블이 호환되지 않음
<a name="troubleshoot-athena-glue-table-not-upgraded"></a>

Amazon Quick Sight와 함께 Athena에서 AWS Glue 테이블을 사용할 때 오류가 발생하는 경우 일부 메타데이터가 누락되었기 때문일 수 있습니다. 다음 단계에 따라 Athena 커넥터가 작동하는 데 Amazon Quick Sight에 필요한 `TableType` 속성이 테이블에 없는지 확인합니다. 일반적으로 이러한 테이블의 메타데이터는 AWS Glue 데이터 카탈로그로 마이그레이션되지 않았습니다. 자세한 내용은 AWS Glue 개발자 안내서의 [AWS Glue 단계별 데이터 카탈로그 업그레이드](https://docs.aws.amazon.com/athena/latest/ug/glue-upgrade.html)를 참조하세요.

현재 AWS Glue 데이터 카탈로그로 마이그레이션하지 않으려면 두 가지 옵션이 있습니다. AWS Glue Management Console을 통해 각 AWS Glue 테이블을 다시 생성할 수 있습니다. 또는 다음 절차에 나열된 AWS CLI 스크립트를 사용하여 `TableType` 속성이 누락된 테이블을 식별하고 업데이트할 수 있습니다.

CLI를 사용하여 이 작업을 수행하기를 선호하는 경우, 다음 절차를 사용하면 스크립트를 쉽게 디자인할 수 있습니다.

**CLI를 사용하여 스크립트 설계**

1. CLI를 사용하여 `TableType` 속성이 없는 AWS Glue 테이블을 알아봅니다.

   ```
   aws glue get-tables --database-name <your_datebase_name>;
   ```

   예를 들어, CLI에서 다음 명령을 실행할 수 있습니다.

   ```
   aws glue get-table --database-name "test_database" --name "table_missing_table_type"
   ```

   다음은 출력 샘플입니다. 테이블의 `"table_missing_table_type"`에 `TableType` 속성이 선언되지 않은 것을 알 수 있습니다.

   ```
   {
   		"TableList": [
   			{
   				"Retention": 0,
   				"UpdateTime": 1522368588.0,
   				"PartitionKeys": [
   					{
   						"Name": "year",
   						"Type": "string"
   					},
   					{
   						"Name": "month",
   						"Type": "string"
   					},
   					{
   						"Name": "day",
   						"Type": "string"
   					}
   				],
   				"LastAccessTime": 1513804142.0,
   				"Owner": "owner",
   				"Name": "table_missing_table_type",
   				"Parameters": {
   					"delimiter": ",",
   					"compressionType": "none",
   					"skip.header.line.count": "1",
   					"sizeKey": "75",
   					"averageRecordSize": "7",
   					"classification": "csv",
   					"objectCount": "1",
   					"typeOfData": "file",
   					"CrawlerSchemaDeserializerVersion": "1.0",
   					"CrawlerSchemaSerializerVersion": "1.0",
   					"UPDATED_BY_CRAWLER": "crawl_date_table",
   					"recordCount": "9",
   					"columnsOrdered": "true"
   				},
   				"StorageDescriptor": {
   					"OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
   					"SortColumns": [],
   					"StoredAsSubDirectories": false,
   					"Columns": [
   						{
   							"Name": "col1",
   							"Type": "string"
   						},
   						{
   							"Name": "col2",
   							"Type": "bigint"
   						}
   					],
   					"Location": "s3://myAthenatest/test_dataset/",
   					"NumberOfBuckets": -1,
   					"Parameters": {
   						"delimiter": ",",
   						"compressionType": "none",
   						"skip.header.line.count": "1",
   						"columnsOrdered": "true",
   						"sizeKey": "75",
   						"averageRecordSize": "7",
   						"classification": "csv",
   						"objectCount": "1",
   						"typeOfData": "file",
   						"CrawlerSchemaDeserializerVersion": "1.0",
   						"CrawlerSchemaSerializerVersion": "1.0",
   						"UPDATED_BY_CRAWLER": "crawl_date_table",
   						"recordCount": "9"
   					},
   					"Compressed": false,
   					"BucketColumns": [],
   					"InputFormat": "org.apache.hadoop.mapred.TextInputFormat",
   					"SerdeInfo": {
   						"Parameters": {
   						"field.delim": ","
   						},
   						"SerializationLibrary": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
   					}
   				}
   			}
   		]
   	}
   ```

1. 다음 예제와 같이 편집기에서 테이블 정의를 편집하여 `"TableType": "EXTERNAL_TABLE"`을 테이블 정의에 추가합니다.

   ```
   {
   	"Table": {
   		"Retention": 0,
   		"TableType": "EXTERNAL_TABLE",
   		"PartitionKeys": [
   			{
   				"Name": "year",
   				"Type": "string"
   			},
   			{
   				"Name": "month",
   				"Type": "string"
   			},
   			{
   				"Name": "day",
   				"Type": "string"
   			}
   		],
   		"UpdateTime": 1522368588.0,
   		"Name": "table_missing_table_type",
   		"StorageDescriptor": {
   			"BucketColumns": [],
   			"SortColumns": [],
   			"StoredAsSubDirectories": false,
   			"OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
   			"SerdeInfo": {
   				"SerializationLibrary": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
   				"Parameters": {
   					"field.delim": ","
   				}
   			},
   			"Parameters": {
   				"classification": "csv",
   				"CrawlerSchemaSerializerVersion": "1.0",
   				"UPDATED_BY_CRAWLER": "crawl_date_table",
   				"columnsOrdered": "true",
   				"averageRecordSize": "7",
   				"objectCount": "1",
   				"sizeKey": "75",
   				"delimiter": ",",
   				"compressionType": "none",
   				"recordCount": "9",
   				"CrawlerSchemaDeserializerVersion": "1.0",
   				"typeOfData": "file",
   				"skip.header.line.count": "1"
   			},
   			"Columns": [
   				{
   					"Name": "col1",
   					"Type": "string"
   				},
   				{
   					"Name": "col2",
   					"Type": "bigint"
   				}
   			],
   			"Compressed": false,
   			"InputFormat": "org.apache.hadoop.mapred.TextInputFormat",
   			"NumberOfBuckets": -1,
   			"Location": "s3://myAthenatest/test_date_part/"
   		},
   		"Owner": "owner",
   		"Parameters": {
   			"classification": "csv",
   			"CrawlerSchemaSerializerVersion": "1.0",
   			"UPDATED_BY_CRAWLER": "crawl_date_table",
   			"columnsOrdered": "true",
   			"averageRecordSize": "7",
   			"objectCount": "1",
   			"sizeKey": "75",
   			"delimiter": ",",
   			"compressionType": "none",
   			"recordCount": "9",
   			"CrawlerSchemaDeserializerVersion": "1.0",
   			"typeOfData": "file",
   			"skip.header.line.count": "1"
   		},
   		"LastAccessTime": 1513804142.0
   	}
   	}
   ```

1. 다음 스크립트를 조정하여 `TableType` 속성이 포함되도록 테이블 입력을 업데이트할 수 있습니다.

   ```
   aws glue update-table --database-name <your_datebase_name> --table-input <updated_table_input>
   ```

   다음은 그 한 예입니다.

   ```
   aws glue update-table --database-name test_database --table-input '
   	{
   			"Retention": 0,
   			"TableType": "EXTERNAL_TABLE",
   			"PartitionKeys": [
   				{
   					"Name": "year",
   					"Type": "string"
   				},
   				{
   					"Name": "month",
   					"Type": "string"
   				},
   				{
   					"Name": "day",
   					"Type": "string"
   				}
   			],
   			"Name": "table_missing_table_type",
   			"StorageDescriptor": {
   				"BucketColumns": [],
   				"SortColumns": [],
   				"StoredAsSubDirectories": false,
   				"OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
   				"SerdeInfo": {
   					"SerializationLibrary": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
   					"Parameters": {
   						"field.delim": ","
   					}
   				},
   				"Parameters": {
   					"classification": "csv",
   					"CrawlerSchemaSerializerVersion": "1.0",
   					"UPDATED_BY_CRAWLER": "crawl_date_table",
   					"columnsOrdered": "true",
   					"averageRecordSize": "7",
   					"objectCount": "1",
   					"sizeKey": "75",
   					"delimiter": ",",
   					"compressionType": "none",
   					"recordCount": "9",
   					"CrawlerSchemaDeserializerVersion": "1.0",
   					"typeOfData": "file",
   					"skip.header.line.count": "1"
   				},
   				"Columns": [
   					{
   						"Name": "col1",
   						"Type": "string"
   					},
   					{
   						"Name": "col2",
   						"Type": "bigint"
   					}
   				],
   				"Compressed": false,
   				"InputFormat": "org.apache.hadoop.mapred.TextInputFormat",
   				"NumberOfBuckets": -1,
   				"Location": "s3://myAthenatest/test_date_part/"
   			},
   			"Owner": "owner",
   			"Parameters": {
   				"classification": "csv",
   				"CrawlerSchemaSerializerVersion": "1.0",
   				"UPDATED_BY_CRAWLER": "crawl_date_table",
   				"columnsOrdered": "true",
   				"averageRecordSize": "7",
   				"objectCount": "1",
   				"sizeKey": "75",
   				"delimiter": ",",
   				"compressionType": "none",
   				"recordCount": "9",
   				"CrawlerSchemaDeserializerVersion": "1.0",
   				"typeOfData": "file",
   				"skip.header.line.count": "1"
   			},
   			"LastAccessTime": 1513804142.0
   		}'
   ```

# Amazon Quick Sight에서 Athena를 사용할 때 테이블을 찾을 수 없음
<a name="troubleshoot-athena-table-not-found"></a>

분석에 있는 테이블이 Athena 데이터 소스에서 누락된 경우에는 "`table not found`" 오류가 발생할 수 있습니다.

Athena 콘솔([https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home))에서 해당 스키마 아래에 있는 테이블을 확인합니다. Athena에서 테이블을 다시 생성한 다음 해당 테이블의 Amazon Quick Sight에서 새 데이터 세트를 생성할 수 있습니다. 테이블이 첫 번째 위치에 왜 없는지 알아보기 위해 Athena 콘솔을 사용하여 쿼리 기록을 확인할 수 있습니다. 이렇게 하면 테이블을 삭제했던 쿼리를 찾을 수 있습니다.

미리 보기에서 사용자 지정 SQL 쿼리를 편집 중일 때 이 오류가 발생한 경우 쿼리에서 테이블의 이름을 확인하고 다른 구문 오류를 확인합니다. Amazon Quick Sight는 쿼리에서 스키마를 추론할 수 없습니다. 스키마를 쿼리에 지정해야 합니다.

다음 명령문을 예로 들어 보겠습니다.

```
select from my_schema.my_table
```

다음 명령문은 스키마가 누락되어 있어 실패합니다.

```
select from my_table
```

그래도 문제가 지속되면 테이블, 열, 쿼리가 Athena 요구 사항을 준수하는지 확인하세요. 자세한 내용은 Athena 사용 설명서의 [테이블, 데이터베이스 및 열 이름](https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html)과 [문제 해결](https://docs.aws.amazon.com/athena/latest/ug/troubleshooting.html)을 참조하세요.

# Quick Sight에서 Athena 사용 시 작업 그룹 및 출력 오류
<a name="troubleshoot-athena-workgroup"></a>

작업 그룹이 제대로 설정되었는지 확인하려면 다음 설정을 확인하십시오.
+ 데이터 소스에 연결된 Athena 작업 그룹이 존재해야 합니다.

  이 문제를 해결하려면, Athena 데이터 원본 설정으로 돌아가 다른 작업 그룹을 선택하면 됩니다. 자세한 내용은 Athena 사용 설명서에서 [작업 그룹 설정](https://docs.aws.amazon.com/athena/latest/ug/workgroups-procedure.html)을 참조하세요.

  또 다른 해결 방법은 AWS 계정 관리자가 Athena 콘솔에서 작업 그룹을 다시 생성하도록 하는 것입니다.
+ **데이터 소스에 연결된 Athena 작업 그룹을 활성화해야 합니다.**

   AWS 계정 관리자는 Athena 콘솔에서 작업 그룹을 활성화해야 합니다. 다음 다이렉트 링크 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)를 사용하여 Athena 콘솔을 엽니다. 그런 다음 **Workgroup(작업 그룹)** 패널에서 적절한 작업 그룹을 선택하고 해당 설정을 보십시오. **작업 그룹 활성화**를 선택하세요.
+ **Athena 작업 그룹에 연결된 Amazon S3 출력 위치에 대한 액세스 권한이 있어야 합니다.**

  Amazon Quick Sight에 S3 출력 위치에 액세스할 수 있는 권한을 부여하기 위해 Amazon Quick Sight 관리자는 ** QuickSight 관리** 화면에서 **보안 및 권한을** 편집할 수 있습니다.
+ **Athena 작업 그룹에 S3 출력 위치가 연결되어 있어야 합니다.**

   AWS 계정 관리자는 S3 버킷을 Athena 콘솔의 작업 그룹과 연결해야 합니다. 다음 다이렉트 링크 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)를 사용하여 Athena 콘솔을 엽니다. 그런 다음 **Workgroup(작업 그룹)** 패널에서 적절한 작업 그룹을 선택하고 해당 설정을 보십시오. **쿼리 결과 위치**를 설정하세요.