Etapa 4: definir as configurações do DSBulk - Amazon Keyspaces (para Apache Cassandra)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Etapa 4: definir as configurações do DSBulk

Esta seção descreve as etapas necessárias para configurar o DSBulk para upload de dados para o Amazon Keyspaces. Você configura o DSBulk usando um arquivo de configuração. Você especifica o arquivo de configuração diretamente da linha de comando.

  1. Crie um arquivo de configuração DSBulk para a migração para o Amazon Keyspaces. Neste exemplo, usamos o nome de arquivo dsbulk_keyspaces.conf. Especifique as configurações a seguir no arquivo de configuração DSBulk.

    1. PlainTextAuthProvider – Crie o provedor de autenticação com a classe PlainTextAuthProvider. ServiceUserName e ServicePassword devem corresponder ao nome de usuário e à senha que você obteve ao gerar as credenciais específicas do serviço seguindo as etapas em Criação de credenciais para acessar o Amazon Keyspaces programaticamente.

    2. local-datacenter— Defina o valor do local-datacenter ao Região da AWS qual você está se conectando. Por exemplo, se o aplicativo estiver se conectando a cassandra.us-east-2.amazonaws.com, defina o datacenter local como us-east-2. Para todos os disponíveis Regiões da AWS, consulteEndpoints de serviço para Amazon Keyspaces. Para evitar réplicas, defina slow-replica-avoidance como false.

    3. SSLEngineFactory – Para configurar o SSL/TLS, inicialize o SSLEngineFactory adicionando uma seção no arquivo de configuração com uma única linha que especifica a classe com class = DefaultSslEngineFactory. Forneça o caminho para cassandra_truststore.jks e a senha que você criou anteriormente.

    4. consistency – Defina o nível de consistência como LOCAL QUORUM. Outros níveis de consistência de gravação não são suportados; para obter mais informações, consulte Níveis de consistência compatíveis do Apache Cassandra no Amazon Keyspaces.

    5. O número de conexões por grupo é configurável no driver Java. Para este exemplo, defina advanced.connection.pool.local.size como 3.

    Veja a seguir o arquivo de configuração de exemplo completo.

    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. Revise os parâmetros do comando load do DSBulk.

    1. executor.maxPerSecond – O número máximo de linhas que o comando load tenta processar simultaneamente por segundo. Se não for definida, essa configuração é desativada com -1.

      Defina executor.maxPerSecond com base no número de WCUs que você provisionou na tabela de destino pretendida. O executor.maxPerSecond do comando load não é um limite – é uma média de destino. Isso significa que ele pode (e geralmente acontece) ultrapassar o número que você definiu. Para permitir picos e garantir que haja capacidade suficiente para lidar com as solicitações de carregamento de dados, defina executor.maxPerSecond como 90% da capacidade de gravação da tabela.

      executor.maxPerSecond = WCUs * .90

      Neste tutorial, definimos executor.maxPerSecond como 5.

      nota

      Se você estiver usando o DSBulk 1.6.0 ou superior, você pode usar dsbulk.engine.maxConcurrentQueries em vez disso.

    2. Configure esses parâmetros adicionais para o comando load do DSBulk.

      • batch-mode – Esse parâmetro instrui o sistema a agrupar as operações por chave de partição. Recomendamos desativar o modo em lote, pois isso pode resultar em cenários e causas de teclas de atalhoWriteThrottleEvents.

      • driver.advanced.retry-policy-max-retries – Isso determina quantas vezes tentar novamente uma consulta com falha. Se não estiver definido, o padrão é 10. Você pode ajustar esse valor conforme necessário.

      • driver.basic.request.timeout – O tempo em minutos em que o sistema espera o retorno de uma consulta. Se não estiver definido, o padrão é "5 minutos". Você pode ajustar esse valor conforme necessário.