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á.
Otimizar uma carga em massa do Amazon Neptune
Use as seguintes estratégias para reduzir ao mínimo o tempo de carregamento de uma carga em massa do Neptune:
-
Limpe os dados:
Converta os dados em um formato de dados compatível antes de carregá-los.
Remova todas as duplicações ou erros conhecidos.
Reduza o número de predicados exclusivos (como propriedades de bordas e vértices) o máximo possível.
-
Otimize os arquivos:
Se você carregar arquivos grandes, como arquivos CSV, de um bucket do Amazon S3, o carregador gerenciará a simultaneidade para você, analisando-os em partes que poderão ser carregadas paralelamente. Usar um número muito grande de arquivos pequenos pode retardar esse processo.
Se você carregar vários arquivos de uma pasta do Amazon S3, o carregador carregará automaticamente os arquivos de vértice primeiro e depois os arquivos de borda.
A compactação dos arquivos reduz o tempo de transferência. O carregador é compatível com a compactação
gzip
dos arquivos de origem.
-
Confira as configurações do carregador:
-
Se você não precisar realizar nenhuma outra operação durante o carregamento, use o parâmetro OVERSUBSCRIBE parallelism. Essa configuração de parâmetro faz com que o carregador em massa use todos os recursos de CPU disponíveis ao ser executado. Geralmente, são necessários de 60% a 70% de capacidade da CPU para manter a operação funcionando tão rápido quanto permitem as restrições de E/S.
nota
Quando
parallelism
é definido comoOVERSUBSCRIBE
ouHIGH
(a configuração padrão), há o risco de, ao carregar dados do openCypher, que os threads encontrem uma condição de corrida e um deadlock, gerando um erroLOAD_DATA_DEADLOCK
. Nesse caso, definaparallelism
como uma configuração mais baixa e repita o carregamento. Se o trabalho de carregamento incluir várias solicitações de carregamento, use o parâmetro
queueRequest
. A configuração dequeueRequest
comoTRUE
permite que o Neptune coloque suas solicitações na fila para que você não precise esperar que uma termine antes de emitir outra.Se suas solicitações de carregamento estiverem sendo colocadas na fila, você poderá configurar níveis de dependência usando o parâmetro
dependencies
, para que a falha de um trabalho cause falhas nos trabalhos dependentes. Isso pode evitar inconsistências nos dados carregados.-
Se um trabalho de carregamento envolver a atualização de valores carregados anteriormente, defina o parâmetro
updateSingleCardinalityProperties
comoTRUE
. Caso contrário, o carregador tratará uma tentativa de atualizar um valor de cardinalidade único existente como um erro. No caso de dados do Gremlin, a cardinalidade também é especificada nos cabeçalhos de coluna de propriedades (consulte Cabeçalhos de coluna de propriedade).nota
O parâmetro
updateSingleCardinalityProperties
não está disponível para dados do Resource Description Framework (RDF). É possível usar o parâmetro
failOnError
para determinar se as operações de carregamento em massa devem falhar ou continuar quando um erro for encontrado. Além disso, você pode usar o parâmetromode
para garantir que uma tarefa de carregamento seja retomada a partir do ponto em que uma tarefa anterior falhou, em vez de recarregar dados que já haviam sido carregados.
-
-
Aumentar a escala verticalmente: defina a instância de gravador do cluster de banco de dados como o tamanho máximo antes do carregamento em massa. Observe que, se você fizer isso, também deverá aumentar a escala verticalmente de todas as instâncias de réplica de leitura no cluster de banco de dados ou removê-las até terminar de carregar os dados.
Quando o carregamento em massa estiver concluído, não se esqueça de reduzir a escala verticalmente da instância de gravador novamente.
Importante
Se você tiver um ciclo de reinicializações repetidas de réplica de leitura em virtude do atraso na replicação durante o carregamento em massa, é provável que as réplicas não consigam acompanhar o gravador no cluster de banco de dados. Escale os leitores para serem maiores do que o gravador ou remova-os temporariamente durante o carregamento em massa e, depois, recrie-os após a conclusão.
Consulte Parâmetros de solicitação para obter mais detalhes sobre como definir os parâmetros de solicitação do carregador.