Azure Cosmos DB 연결
AWS Glue for Spark를 이용하여 Azure Cosmos DB의 기존 컨테이너에서 읽고 쓸 수 있습니다. 이 때 AWS Glue 4.0 이상에서 NoSQL API를 이용합니다. SQL 쿼리를 사용하여 Azure Cosmos DB에서 읽을 내용을 정의할 수 있습니다. AWS Glue 연결을 통해 AWS Secrets Manager에 저장된 Azure Cosmos DB 키를 사용하여 Azure Cosmos DB에 연결합니다.
NoSQL용 Azure Cosmos DB에 대한 자세한 내용은 Azure 설명서
Azure Cosmos DB 연결 구성
AWS Glue에서 Azure Cosmos DB에 연결하려면 Azure Cosmos DB 키를 만들어 AWS Secrets Manager 암호에 저장한 다음 해당 암호를 Azure Cosmos DB AWS Glue 연결에 연결해야 합니다.
사전 조건:
Azure에서는 AWS Glue
cosmosKey
에서 사용할 Azure Cosmos DB 키를 식별하거나 생성해야 합니다. 자세한 내용은 Azure 설명서의 Azure Cosmos DB의 데이터에 대한 보안 액세스를 참조하십시오.
Azure Cosmos DB에 대한 연결 구성 방법:
AWS Secrets Manager에서 Azure Cosmos DB 키를 사용하여 보안 암호를 생성합니다. Secrets Manager에서 보안 암호를 생성하려면 AWS Secrets Manager 설명서의 Create an AWS Secrets Manager secret에서 제공하는 자습서를 따릅니다. 보안 암호를 생성한 후에는 다음 단계를 위해 보안 암호 이름,
secretName
을 유지합니다.-
키/값 페어를 선택하면 값
cosmosKey
가 포함된 키spark.cosmos.accountKey
에 대한 페어를 생성합니다.
-
AWS Glue 콘솔에서 AWS Glue 연결 추가의 단계에 따라 연결을 생성합니다. 연결을 생성한 후에는 AWS Glue에서 이용하기 위해 연결 이름
connectionName
을 유지합니다.연결 유형을 선택할 때는 Azure Cosmos DB를 선택합니다.
AWS 보안 암호를 선택할 때
secretName
을 입력합니다.
AWS Glue Azure Cosmos DB 연결을 생성한 후에는 AWS Glue 작업을 실행하기 전에 다음 단계를 수행해야 합니다.
AWS Glue 작업과 연결된 IAM 역할에
secretName
을 읽을 수 있는 권한을 부여합니다.AWS Glue 작업 구성에서 추가 네트워크 연결로
connectionName
을 제공합니다.
NoSQL 컨테이너용 Azure Cosmos DB에서 읽기
사전 조건:
-
읽으려는 NoSQL 컨테이너용 Azure Cosmos 데이터베이스. 컨테이너의 식별 정보가 필요합니다.
NoSQL용 Azure Cosmos 컨테이너는 해당 데이터베이스 및 컨테이너로 식별됩니다. NoSQL API용 Azure Cosmos에 연결할 때 데이터베이스,
cosmosDBName
, 및 컨테이너너,cosmosContainerName
, 이름을 제공해야 합니다. -
인증 및 네트워크 위치 정보를 제공하도록 구성된 AWS Glue Azure Cosmos DB 연결입니다. 이 정보를 얻으려면 앞 절차인 Azure Cosmos DB에 대한 연결을 구성하는 방법의 단계를 완료하십시오. AWS Glue 연결의 이름인
connectionName
이 필요합니다.
예:
azurecosmos_read = glueContext.create_dynamic_frame.from_options( connection_type="azurecosmos", connection_options={ "connectionName":
connectionName
, "spark.cosmos.database":cosmosDBName
, "spark.cosmos.container":cosmosContainerName
, } )
SELECT SQL 쿼리에 반환되는 결과를 필터링하는 쿼리를 제공할 수도 있습니다. query
을 구성해야 합니다.
예:
azurecosmos_read_query = glueContext.create_dynamic_frame.from_options( connection_type="azurecosmos", connection_options={ "connectionName": "
connectionName
", "spark.cosmos.database":cosmosDBName
, "spark.cosmos.container":cosmosContainerName
, "spark.cosmos.read.customQuery": "query
" } )
NoSQL 컨테이너용 Azure Cosmos DB에 쓰기
이 예제에서는 기존 DynamicFrame, dynamicFrame
의 정보를 Azure Cosmos DB에 씁니다. 컨테이너에 이미 정보가 있는 경우 AWS Glue는 DynamicFrame의 데이터를 추가합니다. 컨테이너의 정보가 작성한 정보와 다른 스키마를 사용하는 경우 오류가 발생합니다.
사전 조건:
-
쓰려는 Azure Cosmos DB 테이블. 컨테이너의 식별 정보가 필요합니다. 연결 방법을 호출하기 전에 컨테이너를 만들어야 합니다.
NoSQL용 Azure Cosmos 컨테이너는 해당 데이터베이스 및 컨테이너로 식별됩니다. NoSQL API용 Azure Cosmos에 연결할 때 데이터베이스,
cosmosDBName
, 및 컨테이너너,cosmosContainerName
, 이름을 제공해야 합니다. -
인증 및 네트워크 위치 정보를 제공하도록 구성된 AWS Glue Azure Cosmos DB 연결입니다. 이 정보를 얻으려면 앞 절차인 Azure Cosmos DB에 대한 연결을 구성하는 방법의 단계를 완료하십시오. AWS Glue 연결의 이름인
connectionName
이 필요합니다.
예:
azurecosmos_write = glueContext.write_dynamic_frame.from_options( frame=
dynamicFrame
, connection_type="azurecosmos", connection_options={ "connectionName":connectionName
, "spark.cosmos.database":cosmosDBName
, "spark.cosmos.container":cosmosContainerName
)
Azure Cosmos DB 연결 옵션 참조
-
connectionName
— 필수입니다. 읽기 및 쓰기에 사용됩니다. 연결 방법에 인증 및 네트워크 위치 정보를 제공하도록 구성된 AWS Glue Azure Cosmos DB 연결의 이름입니다. -
spark.cosmos.database
— 필수입니다. 읽기 및 쓰기에 사용됩니다. 유효한 값: 데이터베이스 이름. NoSQL용 Azure Cosmos DB 데이터베이스 이름입니다. -
spark.cosmos.container
— 필수입니다. 읽기 및 쓰기에 사용됩니다. 유효한 값: 컨테이너 이름. NoSQL용 Azure Cosmos DB 컨테이너 이름입니다. -
spark.cosmos.read.customQuery
— 읽기에 사용됩니다. 유효한 값: SQL 쿼리를 선택합니다. 읽을 문서를 선택하기 위한 사용자 지정 쿼리.