Teradata Vantage 연결 - AWS Glue

Teradata Vantage 연결

AWS Glue for Spark를 이용하여 AWS Glue 4.0 이상 버전에서 Teradata Vantage의 테이블에서 읽고 쓸 수 있습니다. SQL 쿼리를 사용하여 Teradata에서 읽을 내용을 정의할 수 있습니다. AWS Glue 연결을 통해 AWS Secrets Manager에 저장된 사용자 이름 및 암호 보안 인증 정보를 사용하여 Teradata에 연결할 수 있습니다.

Teradata에 대한 자세한 내용은 Teradata 설명서를 참조하십시오.

Teradata 연결 구성

AWS Glue에서 Teradata에 연결하려면 Teradata 보안 인증 정보를 생성하여 AWS Secrets Manager 암호에 저장한 다음 해당 암호를 AWS Glue Teradata 연결에 연결해야 합니다. Teradata 인스턴스가 Amazon VPC에 있는 경우 AWS Glue Teradata 연결에 네트워킹 옵션도 제공해야 합니다.

AWS Glue에서 Teradata에 연결하려면 몇 가지 전제 조건이 필요할 수 있습니다.

  • Amazon VPC를 통해 Teradata 환경에 액세스하는 경우, AWS Glue 작업이 Teradata 환경과 통신할 수 있도록 Amazon VPC를 구성하십시오. 퍼블릭 인터넷을 통해 Teradata 환경에 액세스하는 것은 권장하지 않습니다.

    Amazon VPC에서 AWS Glue가 작업을 실행하는 동안 사용할 VPC, 서브넷보안 그룹을 식별하거나 생성합니다. 또한 Amazon VPC가 Teradata 인스턴스와 이 위치 간의 네트워크 트래픽을 허용하도록 구성되어 있는지 확인해야 합니다. 작업을 수행하려면 Teradata 클라이언트 포트와 TCP 연결을 설정해야 합니다. Teradata 포트에 대한 자세한 내용은 Teradata 설명서를 참조하십시오.

    네트워크 레이아웃에 따라 보안 VPC 연결에는 Amazon VPC 및 기타 네트워킹 서비스를 변경해야 할 수 있습니다. AWS 연결에 대한 자세한 내용은 Teradata 설명서의 AWS연결 옵션을 참조하십시오.

AWS Glue Teradata 연결을 구성하는 방법:
  1. Teradata 구성에서 AWS Glue가 teradataUserteradataPassword와 연결할 사용자 및 암호를 식별하거나 생성합니다. 자세한 내용은 Teradata 설명서의 Vantage 보안 개요를 참조하십시오.

  2. AWS Secrets Manager에서 Teradata 보안 인증 정보를 사용하여 보안 암호를 생성합니다. Secrets Manager에서 보안 암호를 생성하려면 AWS Secrets Manager 설명서의 Create an AWS Secrets Manager secret에서 제공하는 자습서를 따릅니다. 보안 암호를 생성한 후에는 다음 단계를 위해 보안 암호 이름, secretName을 유지합니다.

    • 키/값 페어를 선택하면 값 teradataUsername이 포함된 키 user에 대한 페어를 생성합니다.

    • 키/값 페어를 선택하면 값 teradataPassword가 포함된 키 password에 대한 페어를 생성합니다.

  3. AWS Glue 콘솔에서 AWS Glue 연결 추가의 단계에 따라 연결을 생성합니다. 연결을 생성한 후에는 다음 단계를 위해 연결 이름, connectionName을 유지합니다.

    • 연결 유형을 선택할 때 Teradata를 선택합니다.

    • JDBC URL을 제공할 때는 인스턴스의 URL을 제공하십시오. 또한 JDBC URL에 쉼표로 구분된 특정 연결 매개변수를 하드코딩할 수 있습니다. URL의 형식: jdbc:teradata://teradataHostname/ParameterName=ParameterValue,ParameterName=ParameterValue

      지원되는 URL 파라미터는 다음과 같습니다.

      • DATABASE - 기본으로 액세스하는 호스트의 데이터베이스 이름입니다.

      • DBS_PORT - 비표준 포트에서 실행할 때 사용되는 데이터베이스 포트입니다.

    • 보안 인증 정보 유형을 선택할 때에는 AWS Secrets Manager을 선택한 다음 AWS보안 암호secretName으로 설정합니다.

  4. 다음과 같은 상황에서는 추가 구성이 필요할 수도 있습니다.

    • Amazon VPC에서 AWS에 호스팅된 Teradata 인스턴스의 경우

      • Teradata 보안 보안 인증 정보를 정의하는 AWS Glue 연결에 Amazon VPC 연결 정보를 제공해야 합니다. 연결을 만들거나 업데이트할 때 네트워크 옵션에서 VPC, 서브넷보안 그룹을 설정합니다.

AWS Glue Teradata 연결을 생성한 후에는 연결 방법을 호출하기 전에 다음 단계를 수행해야 합니다.

  • AWS Glue 작업과 연결된 IAM 역할에 secretName을 읽을 수 있는 권한을 부여합니다.

  • AWS Glue 작업 구성에서 추가 네트워크 연결connectionName을 제공합니다.

Teradata에서 읽는 중

사전 조건:

  • 읽으려는 Teradata 테이블. 테이블 이름, tableName이 필요합니다.

  • 인증 정보를 제공하도록 구성된 AWS Glue Teradata 연결입니다. 인증 정보를 구성하려면 Teradata에 대한 연결을 구성하는 방법의 단계를 완료하십시오. AWS Glue 연결의 이름인 connectionName이 필요합니다.

예:

teradata_read_table = glueContext.create_dynamic_frame.from_options( connection_type="teradata", connection_options={ "connectionName": "connectionName", "dbtable": "tableName" } )

SELECT SQL 쿼리에 반환되는 결과를 필터링하는 쿼리를 제공할 수도 있습니다. query을 구성해야 합니다.

예:

teradata_read_query = glueContext.create_dynamic_frame.from_options( connection_type="teradata", connection_options={ "connectionName": "connectionName", "query": "query" } )

Teradata 테이블에 쓰기

전제 조건: 쓰고 싶은 Teradata 테이블, tableName. 연결 방법을 호출하기 전에 테이블을 생성해야 합니다.

예:

teradata_write = glueContext.write_dynamic_frame.from_options( connection_type="teradata", connection_options={ "connectionName": "connectionName", "dbtable": "tableName" } )

Teradata 연결 옵션 참조

  • connectionName — 필수입니다. 읽기 및 쓰기에 사용됩니다. 연결 방법에 인증 및 네트워킹 정보를 제공하도록 구성된 AWS Glue Teradata 연결의 이름입니다.

  • dbtable - 쓰기 시 필수, query가 제공되지 않는 한 읽기 전용. 읽기 및 쓰기에 사용됩니다. 연결 방법이 상호 작용할 테이블의 이름.

  • query — 읽기에 사용됩니다. Teradata에서 읽을 때 검색해야 하는 내용을 정의하는 SELECT SQL 쿼리입니다.