일부 Athena 데이터 소스 커넥터는 Spark DSV2 커넥터로 사용할 수 있습니다. Spark DSV2 커넥터 이름에는 -dsv2
접미사(예: athena-dynamodb-dsv2
)가 있습니다.
다음은 현재 사용 가능한 DSV2 커넥터, 해당 Spark .format()
클래스 이름, 해당 Amazon Athena 페더레이션된 쿼리 설명서 링크입니다.
DSV2 커넥터 | Spark .format() 클래스 이름 | 설명서 |
---|---|---|
athena-cloudwatch-dsv2 | com.amazonaws.athena.connectors.dsv2.cloudwatch.CloudwatchTableProvider |
CloudWatch |
athena-cloudwatch-metrics-dsv2 | com.amazonaws.athena.connectors.dsv2.cloudwatch.metrics.CloudwatchMetricsTableProvider |
CloudWatch 지표 |
athena-aws-cmdb-dsv2 | com.amazonaws.athena.connectors.dsv2.aws.cmdb.AwsCmdbTableProvider |
CMDB |
athena-dynamodb-dsv2 | com.amazonaws.athena.connectors.dsv2.dynamodb.DDBTableProvider |
DynamoDB |
DSV2 커넥터용 .jar
파일을 다운로드하려면 Amazon Athena Query Federation DSV2<version>
, Assets 섹션을 참조하세요.
Spark에 대해 jar 지정
Spark에서 Athena DSV2 커넥터를 사용하려면 사용하는 Spark 환경에 커넥터용 .jar
파일을 제출합니다. 다음 섹션에서는 구체적인 사례를 설명합니다.
Athena for Spark
Amazon Athena for Apache Spark에 사용자 지정 .jar
파일 및 사용자 지정 구성을 추가하는 방법에 대한 자세한 내용은 Spark 속성을 사용하여 사용자 지정 구성 지정 섹션을 참조하세요.
일반 Spark
커넥터 .jar
파일을 Spark로 전달하려면 다음 예제와 같이 spark-submit
명령을 사용하고 --jars
옵션에 .jar
파일을 지정합니다.
spark-submit \ --deploy-mode cluster \ --jars https://github.com/awslabs/aws-athena-query-federation-dsv2/releases/download/
some_version
/athena-dynamodb-dsv2-some_version
.jar
Amazon EMR Spark
Amazon EMR에서 --jars
파라미터와 함께 spark-submit
명령을 실행하려면 Amazon EMR Spark 클러스터에 단계를 추가해야 합니다. Amazon EMR에서 spark-submit
을 사용하는 방법에 대한 자세한 내용은 Amazon EMR 릴리스 안내서의 Add a Spark step을 참조하세요.
AWS Glue ETL Spark
AWS Glue ETL의 경우 .jar
파일의 GitHub.com URL을 aws glue start-job-run
명령의 --extra-jars
인수로 전달할 수 있습니다. AWS Glue 설명서에는 Amazon S3 경로를 사용하며 --extra-jars
파라미터를 설명하지만, 파라미터는 HTTPS URL을 사용할 수도 있습니다. 자세한 내용은 AWS Glue 개발자 안내서의 Job parameter reference를 참조하세요.
Spark에서 커넥터 쿼리
Apache Spark에서 Athena의 기존 페더레이션된 쿼리와 동일한 쿼리를 제출하려면 spark.sql()
함수를 사용합니다. 예를 들어 다음과 같은 Athena 쿼리를 Apache Spark에서 사용하는 경우를 가정합니다.
SELECT somecola, somecolb, somecolc
FROM ddb_datasource.some_schema_or_glue_database.some_ddb_or_glue_table
WHERE somecola > 1
Amazon Athena DynamoDB DSV2 커넥터를 사용하여 Spark에서 동일한 쿼리를 수행하려면 다음 코드를 사용합니다.
dynamoDf = (spark.read
.option("athena.connectors.schema", "some_schema_or_glue_database")
.option("athena.connectors.table", "some_ddb_or_glue_table")
.format("com.amazonaws.athena.connectors.dsv2.dynamodb.DDBTableProvider")
.load())
dynamoDf.createOrReplaceTempView("ddb_spark_table")
spark.sql('''
SELECT somecola, somecolb, somecolc
FROM ddb_spark_table
WHERE somecola > 1
''')
파라미터 지정
Athena 데이터 소스 커넥터의 DSV2 버전은 해당 Athena 데이터 소스 커넥터와 동일한 파라미터를 사용합니다. 파라미터 정보는 해당 Athena 데이터 소스 커넥터의 설명서를 참조하세요.
PySpark 코드에서 다음 구문을 사용하여 파라미터를 구성합니다.
spark.read.option("athena.connectors.conf.parameter
", "value
")
예를 들어 다음 코드는 Amazon Athena DynamoDB 커넥터 disable_projection_and_casing
파라미터를 always
로 설정합니다.
dynamoDf = (spark.read
.option("athena.connectors.schema", "some_schema_or_glue_database")
.option("athena.connectors.table", "some_ddb_or_glue_table")
.option("athena.connectors.conf.disable_projection_and_casing", "always")
.format("com.amazonaws.athena.connectors.dsv2.dynamodb.DDBTableProvider")
.load())