4단계: CSV 파일의 데이터를 대상 테이블로 업로드하도록 DSBulk 설정을 구성합니다. - Amazon Keyspaces(Apache Cassandra용)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

4단계: CSV 파일의 데이터를 대상 테이블로 업로드하도록 DSBulk 설정을 구성합니다.

이 섹션에서는 Amazon DSBulk Keyspaces에 데이터를 업로드하도록 구성하는 데 필요한 단계를 간략하게 설명합니다. 구성 파일을 DSBulk 사용하여 구성합니다. 구성 파일은 명령줄에서 직접 지정합니다.

  1. Amazon Keyspaces로 마이그레이션하기 위한 DSBulk 구성 파일을 생성합니다. 이 예에서는 파일 이름을 사용합니다. dsbulk_keyspaces.conf DSBulk구성 파일에 다음 설정을 지정합니다.

    1. PlainTextAuthProvider - PlainTextAuthProvider 클래스를 사용하여 인증 제공자를 생성합니다. ServiceUserNameServicePasswordAmazon Keyspaces에 프로그래밍 방식으로 액세스하기 위한 자격 증명 생성 의 단계에 따라 서비스별 보안 인증을 생성할 때 얻은 사용자 이름 및 암호와 일치해야 합니다.

    2. local-datacenter— 의 값을 local-datacenter 로 설정합니다. AWS 리전 연결 중인 대상. 예를 들어 애플리케이션이 cassandra.us-east-2.amazonaws.com에 연결 중인 경우 로컬 데이터 센터를 us-east-2로 설정합니다. 모두 사용 가능 AWS 리전, 을 참조하십시오Amazon Keyspaces의 서비스 엔드포인트. 복제본을 피하려면 slow-replica-avoidancefalse로 설정합니다.

    3. SSLEngineFactory— SSL TLS /를 구성하려면 구성 파일에 클래스를 지정하는 한 줄로 섹션을 SSLEngineFactory 추가하여 를 초기화합니다. class = DefaultSslEngineFactory cassandra_truststore.jks의 경로와 이전에 만든 암호를 입력합니다.

    4. consistency - 일관성 수준을 LOCAL QUORUM으로 설정합니다. 다른 쓰기 일관성 수준은 지원되지 않습니다. 자세한 내용은 지원되는 Apache Cassandra 읽기 및 쓰기 일관성 수준 및 관련 비용 섹션을 참조하세요.

    5. Java 드라이버에서 풀당 연결 수를 구성할 수 있습니다. 이 예제에서는 advanced.connection.pool.local.size를 3으로 설정합니다.

    다음은 전체 샘플 구성 파일입니다.

    datastax-java-driver { basic.contact-points = [ "cassandra.us-east-2.amazonaws.com:9142"] advanced.auth-provider { class = PlainTextAuthProvider username = "ServiceUserName" password = "ServicePassword" } basic.load-balancing-policy { local-datacenter = "us-east-2" slow-replica-avoidance = false } basic.request { consistency = LOCAL_QUORUM default-idempotence = true } advanced.ssl-engine-factory { class = DefaultSslEngineFactory truststore-path = "./cassandra_truststore.jks" truststore-password = "my_password" hostname-validation = false } advanced.connection.pool.local.size = 3 }
  2. DSBulkload명령의 매개 변수를 검토하십시오.

    1. executor.maxPerSecond - load 명령이 초당 동시에 처리하려고 시도하는 최대 행 수입니다. 설정하지 않으면 이 설정이 -1로 비활성화됩니다.

      대상 테이블에 WCUs 프로비저닝한 개수를 executor.maxPerSecond 기준으로 설정합니다. load 명령의 executor.maxPerSecond는 제한이 아니라 대상 평균입니다. 즉, 설정한 수치를 초과할 수 있으며 종종 그럴 수도 있습니다. 버스트를 허용하고 데이터 로드 요청을 처리할 수 있는 충분한 용량을 확보하려면 executor.maxPerSecond를 테이블 쓰기 용량의 90% 설정합니다.

      executor.maxPerSecond = WCUs * .90

      이 자습서에서는 executor.maxPerSecond를 5로 설정했습니다.

      참고

      DSBulk1.6.0 이상을 사용하는 경우 대신 사용할 수 있습니다. dsbulk.engine.maxConcurrentQueries

    2. 명령에 대해 다음과 같은 추가 매개변수를 구성합니다. DSBulk load

      • batch-mode - 이 파라미터는 파티션 키별로 작업을 그룹화하도록 시스템에 지시합니다. 배치 모드를 비활성화하면 핫 키 시나리오와 원인이 발생할 수 있으므로 비활성화하는 것이 좋습니다WriteThrottleEvents.

      • driver.advanced.retry-policy-max-retries - 실패한 쿼리를 재시도할 횟수를 결정합니다. 설정하지 않은 경우 기본값은 10입니다. 필요에 따라 이 값을 조정할 수 있습니다.

      • driver.basic.request.timeout - 시스템에서 쿼리가 반환되기를 기다리는 시간(분)입니다. 설정하지 않은 경우 기본값은 "5분"입니다. 필요에 따라 이 값을 조정할 수 있습니다.