Amazon Athena TPC Benchmark DS(TPC-DS) 커넥터 - Amazon Athena

Amazon Athena TPC Benchmark DS(TPC-DS) 커넥터

Amazon Athena TPC-DS 커넥터를 통해 Amazon Athena는 Athena Federation의 벤치마킹 및 기능 테스트에 사용하기 위해 무작위로 생성된 TPC 벤치마크 DS 데이터 소스와 통신할 수 있습니다. Athena TPC-DS 커넥터는 네 가지 확장 요소 중 하나로 TPC-DS 호환 데이터베이스를 생성합니다. Amazon S3 기반 데이터 레이크 성능 테스트의 대안으로 이 커넥터를 사용하지 않는 것이 좋습니다.

필수 조건

파라미터

이 섹션의 Lambda 환경 변수를 사용하여 TPC-DS 커넥터를 구성합니다.

  • spill_bucket – Lambda 함수 제한을 초과하는 데이터에 대한 Amazon S3 버킷을 지정합니다.

  • spill_prefix – (선택 사항) 기본값은 athena-federation-spill이라는 지정된 spill_bucket의 하위 폴더입니다. 미리 정해진 일 수 또는 시간보다 오래된 유출을 삭제하려면 이 위치에서 Amazon S3 스토리지 수명 주기를 구성하는 것이 좋습니다.

  • spill_put_request_headers – (선택 사항) 유출에 사용되는 Amazon S3 putObject 요청에 대한 요청 헤더 및 값의 JSON 인코딩 맵입니다(예: {"x-amz-server-side-encryption" : "AES256"}). 다른 가능한 헤더를 알아보려면 Amazon Simple Storage Service API Reference(Amazon Simple Storage Service API 참조)의 PutObject를 참조하세요.

  • kms_key_id – (선택 사항) 기본적으로 Amazon S3로 유출된 모든 데이터는 AES-GCM 인증 암호화 모드와 임의로 생성된 키를 사용하여 암호화됩니다. Lambda 함수가 a7e63k4b-8loc-40db-a2a1-4d0en2cd8331과 같이 KMS에서 생성된 더 강력한 암호화 키를 사용하도록 하려면 KMS 키 ID를 지정합니다.

  • disable_spill_encryption – (선택 사항) True로 설정하면 유출 암호화가 비활성화됩니다. S3로 유출되는 데이터가 AES-GCM을 사용하여 암호화되도록 기본값은 False입니다(임의로 생성된 키 또는 KMS를 사용하여 키 생성). 유출 암호화를 비활성화하면 특히 유출 위치가 서버 측 암호화를 사용하는 경우 성능이 향상될 수 있습니다.

데이터베이스 및 테이블 테스트

Athena TPC-DS 커넥터는 4개의 스케일 팩터 tpcds1, tpcds10, tpcds100, tpcds250 또는 tpcds1000 중 하나로 TPC-DS 호환 데이터베이스를 생성합니다.

테이블 요약

테스트 데이터 테이블 및 열의 전체 목록을 보려면 SHOW TABLES 또는 DESCRIBE TABLE 쿼리를 실행합니다. 편의를 위해 다음 표 요약이 제공됩니다.

  1. call_center

  2. catalog_page

  3. catalog_returns

  4. catalog_sales

  5. customer

  6. customer_address

  7. customer_demographics

  8. date_dim

  9. dbgen_version

  10. household_demographics

  11. income_band

  12. Inventory

  13. item

  14. promotion

  15. reason

  16. ship_mode

  17. store

  18. store_returns

  19. store_sales

  20. time_dim

  21. warehouse

  22. web_page

  23. web_returns

  24. web_sales

  25. web_site

이렇게 생성된 스키마 및 데이터와 호환되는 TPC-DS 쿼리를 알아보려면 GitHub의 athena-tpcds/src/main/resources/queries/ 디렉터리를 참조하세요.

쿼리 예

다음 SELECT 쿼리 예제는 특정 군(country)의 고객 인구 통계에 대해 tpcds 카탈로그를 쿼리합니다.

SELECT cd_gender, cd_marital_status, cd_education_status, count(*) cnt1, cd_purchase_estimate, count(*) cnt2, cd_credit_rating, count(*) cnt3, cd_dep_count, count(*) cnt4, cd_dep_employed_count, count(*) cnt5, cd_dep_college_count, count(*) cnt6 FROM "lambda:tpcds".tpcds1.customer c, "lambda:tpcds".tpcds1.customer_address ca, "lambda:tpcds".tpcds1.customer_demographics WHERE c.c_current_addr_sk = ca.ca_address_sk AND ca_county IN ('Rush County', 'Toole County', 'Jefferson County', 'Dona Ana County', 'La Porte County') AND cd_demo_sk = c.c_current_cdemo_sk AND exists(SELECT * FROM "lambda:tpcds".tpcds1.store_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = ss_customer_sk AND ss_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3) AND (exists(SELECT * FROM "lambda:tpcds".tpcds1.web_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = ws_bill_customer_sk AND ws_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3) OR exists(SELECT * FROM "lambda:tpcds".tpcds1.catalog_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = cs_ship_customer_sk AND cs_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3)) GROUP BY cd_gender, cd_marital_status, cd_education_status, cd_purchase_estimate, cd_credit_rating, cd_dep_count, cd_dep_employed_count, cd_dep_college_count ORDER BY cd_gender, cd_marital_status, cd_education_status, cd_purchase_estimate, cd_credit_rating, cd_dep_count, cd_dep_employed_count, cd_dep_college_count LIMIT 100

필수 권한

이 커넥터에 필요한 IAM 정책에 대한 자세한 내용을 알아보려면 athena-tpcds.yaml 파일의 Policies 섹션을 검토하세요. 다음 목록에 필요한 권한이 요약되어 있습니다.

  • Amazon S3 쓰기 액세스 - 대규모 쿼리의 결과 유출을 위해서는 커넥터에 Amazon S3 위치에 대한 쓰기 액세스 권한이 필요합니다.

  • Athena GetQueryExecution - 커넥터는 업스트림 Athena 쿼리가 종료된 경우 이 권한을 사용하여 빠른 실패를 수행합니다.

성능

Athena TPC-DS 커넥터는 선택한 스케일 팩터를 기준으로 쿼리 병렬화를 시도합니다. 조건자 푸시다운은 Lambda 함수 내에서 수행됩니다.

라이선스 정보

Amazon Athena TPC-DS 커넥터 프로젝트는 Apache-2.0 라이선스에 따라 사용이 허가됩니다.

추가적인 리소스

이 커넥터에 대한 추가 정보를 알아보려면 GitHub.com의 해당 사이트를 참조하세요.