Athena 테이블의 행에 대한 Amazon S3 소스 파일을 보려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 11월 6일

Amazon Athena에서 테이블을 쿼리하고 있습니다. 출력에 있는 각 행의 소스인 Amazon Simple Storage Service(Amazon S3) 파일 또는 특정 파일에 해당하는 행을 찾으려면 어떻게 해야 합니까?

간략한 설명

  • Athena 테이블의 특정 행에 의해 반환되는 데이터가 포함된 Amazon S3 파일을 찾으려면 SELECT $path 쿼리를 실행합니다.
  • 특정 Amazon S3 파일과 연결되어 있는 Athena 테이블 행을 확인하려면 WHERE $ path 조건을 사용하여 SELECT 쿼리를 실행합니다.

이들 쿼리는 예기치 않은 데이터를 조사하고 원본 데이터에 대한 정보가 필요한 쿼리를 작성하는 데 유용합니다.

해결 방법

다음 쿼리를 실행하기 전에 다음 사항이 있는지 확인해야 합니다.

  • Athena 테이블. 테이블이 없는 경우 CREATE TABLE 문을 실행합니다.
  • Athena 쿼리를 실행할 권한이 있는 AWS Identity and Access Management(IAM) 사용자 또는 역할입니다.

Athena 테이블의 행과 연결된 S3 파일을 찾으려면 다음을 수행합니다.

1.    테이블에 대해 SELECT 쿼리를 실행하여 원하는 데이터를 반환합니다.

SELECT * FROM "my_database"."my_table" WHERE year=2019;

2.    데이터의 Amazon S3 소스 파일을 찾으려면 다음과 비슷한 쿼리를 실행합니다.

SELECT "$path" FROM "my_database"."my_table" WHERE year=2019;

쿼리는 데이터의 Amazon S3 경로를 반환합니다.

s3://awsexamplebucket/datasets_mytable/year=2019/data_file1.json

특정 Amazon S3 파일에서 시작된 Athena 테이블 행을 반환하려면 다음을 수행합니다.

1.    행을 검색하려는 Amazon S3 객체의 이름과 위치를 확인합니다. 객체 이름과 위치를 모르는 경우 ls 명령을 실행하여 특정 S3 버킷 또는 접두사에 해당하는 객체를 나열합니다. 다음 예제에서는 파티션 경로를 s3://awsexamplebucket/my_table/my_partition/으로 바꿉니다.

aws s3 ls s3://awsexamplebucket/my_table/my_partition/

2.    Athena에서 테이블에 대해 SELECT 쿼리를 실행하여 Amazon S3 파일과 연결된 데이터를 반환합니다.

SELECT *,"$path" FROM "my_database"."my_table" WHERE "$path" LIKE 's3://awsexamplebucket/my_table/my_partition/file-01.csv'

이 쿼리는 Amazon S3 경로와 일치하는 데이터를 반환합니다.

id    name    year    $path
3     John    1999    's3://awsexamplebucket/my_table/my_partition/file-01.csv'
4     Jane    2000    's3://awsexamplebucket/my_table/my_partition/file-01.csv'

이 쿼리는 일부 와일드카드 기능도 지원합니다. 예를 들어 파일 이름의 일부를 포함하는 모든 데이터를 반환하려면 다음과 같은 쿼리를 실행합니다.

SELECT *,"$path" FROM "my_database"."my_table" WHERE "$path" LIKE '%-02%'

이 쿼리는 파일 이름에 -02가 포함된 모든 행을 반환합니다.

id    name    year    $path
13    Mia     2009    's3://awsexamplebucket/my_table/my_partition/file-02.csv'
14    Mary    2010    's3://awsexamplebucket/my_table/my_partition/file-02.csv'
15    Max     2011    's3://awsexamplebucket/my_table/my_partition/file-02.csv'
16    Merriam 2012    's3://awsexamplebucket/my_table/my_partition/file-02.csv'

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?