4단계: DSBulk 설정 구성 - Amazon Keyspaces(Apache Cassandra용)

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

4단계: DSBulk 설정 구성

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

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

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

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

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

    4. consistency - 일관성 수준을 LOCAL QUORUM으로 설정합니다. 다른 쓰기 일관성 수준은 지원되지 않습니다. 자세한 내용은 Amazon Keyspaces에서 지원되는 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. DSBulk load 명령의 파라미터를 검토합니다.

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

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

      executor.maxPerSecond = WCUs * .90

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

      참고

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

    2. DSBulk load 명령에 대해 이러한 추가 파라미터를 구성합니다.

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

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

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