Referência do Oracle NoSQL Database Migrator
Saiba mais sobre parâmetros de modelo de configuração de origem, sumidouro e transformação disponíveis para o Oracle NoSQL Database Migrator.
Este artigo tem os seguintes tópicos:
Parâmetros
O NoSQL Database Migrator requer um arquivo de configuração no qual você define todos os parâmetros para executar a atividade de migração. Alguns parâmetros são comuns em várias fontes e sumidouros. Este tópico fornece uma lista desses parâmetros comuns. Para obter a lista de outros parâmetros que são exclusivos de origens ou sumidouros individuais, consulte as seções do modelo de configuração correspondente.
Parâmetros de Configuração Comuns
A seguir estão os parâmetros de configuração comuns. Consulte as seções do modelo de configuração individual para obter exemplos.
-
Finalidade: Especifica o nome do bucket do OCI Object Storage, que contém os objetos de origem/pia.
Certifique-se de que o bucket necessário já exista na instância do OCI Object Storage e tenha permissões de leitura/gravação.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Finalidade: Especifica o tamanho máximo de uma
chunkde dados da tabela a serem armazenados no coletor. O valor está em MB. Durante a migração, uma tabela é dividida emchunkSizechunks e cada chunk é gravado como um arquivo separado no coletor. Um novo arquivo é criado quando os dados de origem que estão sendo migrados excedem o valorchunkSize.Se não for especificado, o padrão será 32 MB. O valor válido é um número inteiro entre 1 e 1024.
Para obter detalhes sobre como melhorar a velocidade de migração usando o parâmetro
chunkSize, consulte Melhores Práticas. -
Tipo de Dados: inteiro
-
Obrigatório (S/N): N
-
Finalidade: Especifica o caminho absoluto para um arquivo que contém credenciais do OCI. O NoSQL Database Migrator usa esse arquivo para estabelecer conexão com o serviço do OCI, como Oracle NoSQL Database Cloud Service, OCI Object Storage etc.
O valor padrão é
$HOME/.oci/configConsulte Configuração de Exemplo ou um exemplo do arquivo de credenciais.
Observação: você só pode selecionar uma das opções de autenticação. Portanto, especifique apenas um desses parâmetros -
credentials, useDelegationToken, useSessionToken ou useOKEWorkloadIdentity no modelo de configuração. -
Tipo de Dados: string
-
Obrigatório (S/N): N
-
Finalidade: Especifica o nome do perfil de configuração a ser usado para estabelecer conexão com o serviço do OCI, como Oracle NoSQL Database Cloud Service, OCI Object Storage etc. As credenciais de conta de usuário são chamadas de perfil.
Se você não especificar esse valor, o NoSQL Database Migrator usará o perfil
DEFAULT.Observação: esse parâmetro só será válido se o parâmetro credentials for especificado.
-
Tipo de Dados: string
-
Obrigatório (S/N): N
-
Finalidade: Especifica um dos seguintes:
-
O URL do ponto final do Serviço ou o ID da Região do serviço OCI Object Storage. Para obter a lista de pontos finais do serviço OCI Object Storage, consulte Pontos Finais do Serviço Object Storage
-
O URL do ponto final do Serviço ou o ID da Região do Oracle NoSQL Database Cloud Service. Você pode especificar o URL completo ou o ID da Região sozinho. Para obter a lista de regiões de dados suportadas para o Oracle NoSQL Database Cloud Service, consulte Regiões de Dados e URLs de Serviço Associados no documento do Oracle NoSQL Database Cloud Service.
-
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Finalidade: Especifica o formato de origem/pia.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Finalidade: Especifica o namespace do serviço OCI Object Storage. Esse parâmetro é opcional. Se você não especificar esse parâmetro, o utilitário Migrator usará o namespace designado à tenancy.
Por exemplo, o parâmetro de namespace é útil quando você deseja usar um sistema operacional do OCI de uma tenancy diferente da sua. Nesses casos, o namespace da tenancy do OCI OS é diferente do namespace da sua tenancy. Durante a migração, o utilitário Migrator usa como padrão o namespace da sua tenancy, a menos que especificado de outra forma. Portanto, para direcionar o utilitário Migrator para selecionar o namespace da tenancy do SO do OCI, especifique o nome da tenancy do SO do OCI no parâmetro de namespace.
-
Tipo de Dados: string
-
Obrigatório (S/N): N
-
Finalidade: O prefixo atua como um contêiner ou diretório lógico para armazenar dados no bucket do OCI Object Storage.
-
Modelo de configuração de origem: Se o parâmetro
prefixestiver especificado, todos os objetos do diretório nomeado no parâmetroprefixserão migrados. Além disso, todos os objetos presentes no bucket são migrados. -
Modelo de configuração do dissipador: Se o parâmetro
prefixfor especificado, um diretório com o prefixo fornecido será criado no bucket e os objetos serão migrados para esse diretório. Além disso, o nome da tabela da origem é usado como prefixo. Se já existir algum objeto com o mesmo nome no bucket, ele será substituído.
Para obter mais informações sobre prefixos, consulte Nomenclatura de Objetos Usando Prefixos e Hierarquias.
-
-
Tipo de Dados: string
-
Obrigatório (S/N): N
-
Finalidade: Especifica o tempo de espera para a conclusão de cada operação de leitura/gravação de/para o armazenamento. Isso é fornecido em milissegundos. O valor padrão é 5.000. O valor pode ser qualquer valor inteiro positivo.
-
Tipo de Dados: inteiro
-
Obrigatório (S/N): N
-
Finalidade: Especifica o caminho absoluto para o arquivo de log-in de segurança que contém suas credenciais de armazenamento se sua loja for um armazenamento seguro. Para obter mais informações sobre o arquivo de log-in de segurança, consulte Performing a Secure Oracle NoSQL Database Installation.
Você pode usar autenticação baseada em arquivo de senha ou autenticação baseada em wallet. No entanto, a autenticação baseada na wallet só é suportada na Enterprise Edition (EE) do Oracle NoSQL Database. Para obter mais informações sobre autenticação baseada em wallet, consulte Segurança de Origem e Dissipador.
A edição Community Edition(CE) suporta somente autenticação baseada em arquivo de senha.
-
Tipo de Dados: string
-
Obrigatório (S/N): S, para uma loja segura
-
Finalidade: Identifica o tipo de origem/pia.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Finalidade: Especifica se a ferramenta NoSQL Database Migrator usa ou não uma autenticação de token de delegação para estabelecer conexão com os serviços do OCI. Use a autenticação do token de delegação para executar o utilitário Migrator no Cloud Shell. O token de delegação é criado automaticamente para o usuário quando o Cloud Shell é chamado.
O valor padrão é
false.Observe o seguinte:
-
A autenticação com token de delegação só é suportada quando a ferramenta NoSQL Database Migrator está em execução em um Cloud Shell.
-
Você só pode selecionar uma das opções de autenticação. Portanto, especifique apenas um desses parâmetros - credentials, useInstancePrincipal,
useDelegationToken, useSessionToken ou useOKEWorkloadIdentity no modelo de configuração. -
O Cloud Shell suporta migração apenas entre as seguintes origens e sumidouros:
Tipo Origem válida Dissipador válido Oracle NoSQL Database Cloud Service ( nosqldb_cloud)S S Arquivo (arquivo JSON no diretório home) S S OCI Object Storage (arquivo JSON) ( object_storage_oci)S S OCI Object Storage (arquivo Parquet) ( object_storage_oci)N S
-
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Finalidade: Especifica se a ferramenta NoSQL Database Migrator usa ou não a autenticação do controlador de instâncias para estabelecer conexão com o serviço do OCI, como Oracle NoSQL Database Cloud Service, OCI Object Storage etc. Para obter mais informações sobre o método de autenticação do Controlador de Instâncias, consulte Origem e Segurança do Sink.
O valor padrão é
false.Observação:
-
A autenticação com Controladores de Instâncias só é suportada quando a ferramenta NoSQL Database Migrator está em execução em uma instância de computação do OCI, por exemplo, a ferramenta NoSQL Database Migrator em execução em uma VM hospedada no OCI.
-
Você só pode selecionar uma das opções de autenticação. Portanto, especifique apenas um desses parâmetros - credentials,
useInstancePrincipal, useDelegationToken, useSessionToken ou useOKEWorkloadIdentity no modelo de configuração.
-
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Finalidade: Especifica se a ferramenta Migrator do NoSQL Database usa ou não a Autenticação de Identidade da Carga de Trabalho (WIA) para acessar o OCI Object Storage e o Oracle NoSQL Database Cloud Service de um pod do Oracle Kubernetes Engine (OKE).
O valor padrão é
false. -
Tipo de Dados: booliano
-
Obrigatório (S/N): N
Para obter um exemplo de caso de uso, consulte Migrar do OCI Object Storage para o Oracle NoSQL Database Cloud Service Usando a Autenticação do OKE.
Observação: você só pode selecionar uma das opções de autenticação. Portanto, especifique apenas um desses parâmetros - credentials, useInstancePrincipal, useDelegationToken, useSessionToken ou useOKEWorkloadIdentity no modelo de configuração.
-
Finalidade: Especifica se a ferramenta NoSQL Database Migrator usa ou não uma autenticação de token de sessão para estabelecer conexão com serviços do OCI, como OCI Object Storage (SO do OCI) e Oracle NoSQL Database Cloud Service. O valor padrão é
false. -
Tipo de Dados: booliano
-
Obrigatório (S/N): N
Para usar a autenticação baseada em token de sessão, você deve gerar um token de sessão usando os comandos CLI (Interface de Linha de Comando) do OCI.. Para obter um exemplo de caso de uso, consulte Migrar do Oracle NoSQL Database para o OCI Object Storage Usando a Autenticação de Token de Sessão.
Observação:
-
Ao usar a autenticação de token de sessão, você deve especificar o caminho para o arquivo de configuração do OCI no parâmetro de credenciais e o perfil usado ao gerar o token de sessão no parâmetro credentialProfile. Se você não definir o parâmetro de credenciais no modelo de configuração, o utilitário Migrator procurará o arquivo de credenciais no caminho
$HOME/.oci. Se você não definir o parâmetro credenciaisProfile no modelo de configuração, o utilitário Migrator usará o nome de perfil padrão (DEFAULT) do arquivo de configuração do OCI.Se o utilitário Migrator não conseguir localizar o arquivo de credenciais, a migração falhará com uma mensagem de erro que transmite a não existência do arquivo de credenciais do OCI.
-
Você só pode selecionar uma das opções de autenticação. Portanto, especifique apenas um desses parâmetros - credentials, useInstancePrincipal, useDelegationToken,
useSessionTokenou useOKEWorkloadIdentity no modelo de configuração.
Modelos de Configuração de Origem
Saiba mais sobre os formatos de arquivo de configuração de origem para cada origem válida e a finalidade de cada parâmetro de configuração.
Para o modelo de arquivo de configuração, consulte Arquivo de Configuração em Terminologia usada com o NoSQL Data Migrator.
Para obter detalhes sobre formatos de sumidouro válidos para cada uma das origens, consulte Modelos de Configuração do sumidouro.
Tópicos
Os tópicos a seguir descrevem os modelos de configuração de origem referenciados pelo Oracle NoSQL Database Migrator para copiar os dados da origem fornecida para um sumário válido.
-
Arquivo ou diretório especificado que contém os dados JSON.
-
Arquivo JSON no Bucket do OCI Object Storage
Arquivo JSON especificado no bucket do OCI Object Storage.
-
Arquivo JSON Formatado no MongoDB
Arquivo ou diretório especificado que contém os dados JSON formatados pelo MongoDB.
-
Arquivo JSON Formatado no MongoDB no bucket do OCI Object Storage
O MongoDB exportou o arquivo JSON armazenado no bucket do OCI Object Storage.
-
Arquivo JSON Formatado pelo DynamoDB armazenado no AWS S3
O DynamoDB exportou o arquivo JSON armazenado no armazenamento do AWS S3.
-
Arquivo JSON Formatado no DynamoDB
O DynamoDB especificou o arquivo JSON exportado de um sistema de arquivos.
-
Tabela especificada no Oracle NoSQL Database.
-
Oracle NoSQL Database Cloud Service
Tabela especificada no Oracle NoSQL Database Cloud Service.
-
Arquivo ou diretório especificado que contém os dados CSV.
-
Arquivo CSV no Bucket do OCI Object Storage
Arquivo CSV especificado no bucket do OCI Object Storage.
Origem do arquivo JSON
O formato do arquivo de configuração para o arquivo JSON como origem do NoSQL Database Migrator é mostrado abaixo.
Você pode migrar um arquivo de origem JSON especificando o caminho do arquivo ou um diretório no modelo de configuração de origem.
Um arquivo de origem JSON de amostra é o seguinte:
{"id":6,"val_json":{"array":["q","r","s"],"date":"2023-02-04T02:38:
57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-03-04T02:38:57.520Z","numfield":30,"strfield":"foo54"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":56,"strfield":"bar23"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
{"id":3,"val_json":{"array":["g","h","i"],"date":"2023-02-02T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-02T02:38:57.520Z","numfield":28,"strfield":"foo3"},{"datefield":"2023-02-02T02:38:57.520Z","numfield":38,"strfield":"bar"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
Modelo de Configuração de Origem
"source": {
"type": "file",
"format": "json",
"dataPath": "<path/to/JSON/[file|dir]>",
"schemaInfo": {
"schemaPath": "<path/to/schema/file>"
}
},
Parâmetros de Origem
Parâmetros de Configuração Comuns
Parâmetros de Configuração Exclusivos
-
Finalidade: Especifica o caminho absoluto para um arquivo ou diretório que contém os dados JSON para migração.
Certifique-se de que esses dados correspondam ao esquema de tabela NoSQL definido no sumidouro. Se você especificar um diretório, o NoSQL Database Migrator identificará todos os arquivos com a extensão
.jsonnesse diretório para a migração. Subdiretórios não são suportados. -
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
-
Especificando um arquivo JSON
"dataPath" : "/home/user/sample.json" -
Especificando um diretório
"dataPath" : "/home/user"
-
-
Finalidade: Especifica o esquema dos dados de origem que estão sendo migrados. Este esquema é passado para o coletor NoSQL.
-
Tipo de Dados: Objeto
-
Obrigatório (S/N): N
-
Finalidade: Especifica o caminho absoluto para o arquivo de definição de esquema que contém instruções DDL para a tabela NoSQL que está sendo migrada.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
"schemaInfo": { "schemaPath": "<path to the schema file>" }
Arquivo JSON no Bucket do OCI Object Storage
O formato do arquivo de configuração para o arquivo JSON no bucket do OCI Object Storage como origem do NoSQL Database Migrator é mostrado abaixo.
Você pode migrar um arquivo JSON no bucket do OCI Object Storage especificando o nome do bucket no modelo de configuração de origem.
Um arquivo de origem JSON de amostra no bucket do OCI Object Storage é o seguinte:
{"id":6,"val_json":{"array":["q","r","s"],"date":"2023-02-04T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-04T02:38:57.520Z","numfield":30,"strfield":"foo54"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":56,"strfield":"bar23"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
{"id":3,"val_json":{"array":["g","h","i"],"date":"2023-02-04T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-04T02:38:57.520Z","numfield":28,"strfield":"foo3"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":38,"strfield":"bar"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
Observação: Os tipos de sumidouro válidos para o tipo de origem do OCI Object Storage são nosqldb e nosqldb_cloud.
Modelo de Configuração de Origem
"source" : {
"type" : "object_storage_oci",
"format" : "json",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"schemaInfo" : {
"schemaObject" : "<object name>"
},
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Parâmetros de Origem
Parâmetros de Configuração Comuns
-
Usar
"type" : "object_storage_oci" -
Usar
"format" : "json" -
Exemplo:
-
ID da Região:
"endpoint" : "us-ashburn-1" -
Formato do URL:
"endpoint" : "https://objectstorage.us-ashburn- 1.oraclecloud.com"
-
-
Exemplo:
"namespace" : "my-namespace" -
Exemplo:
"bucket" : "my-bucket" -
Exemplo:
-
"prefix" : "my_table/Data/000000.json"(migra somente000000.json) -
"prefix" : "my_table/Data"(migra todos os objetos com o prefixomy_table/Data)
-
-
Exemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Exemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemplo:
"useInstancePrincipal" : true -
Exemplo:
"useDelegationToken" : trueObservação: A autenticação com token de delegação só é suportada quando o NoSQL Database Migrator está em execução em um Cloud Shell.
-
useOKEIdentidade da Carga de Trabalho
Exemplo:
"useOKEWorkloadIdentity" : true -
Exemplo:
"useSessionToken" : true
Parâmetros de Configuração Exclusivos
-
Finalidade: Especifica o esquema dos dados de origem que estão sendo migrados. Este esquema é passado para o coletor NoSQL.
-
Tipo de Dados: Objeto
-
Obrigatório (S/N): N
-
Finalidade: Especifica o nome do objeto no bucket em que as definições de esquema da tabela NoSQL para os dados que estão sendo migrados são armazenadas.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" },
Arquivo JSON Formatado no MongoDB
O formato do arquivo de configuração do Arquivo JSON formatado pelo MongoDB como origem do NoSQL Database Migrator é mostrado abaixo.
Você pode migrar dados JSON exportados pelo MongoDB especificando o arquivo ou diretório no modelo de configuração de origem.
O MongoDB suporta dois tipos de extensões para o formato JSON de arquivos, Modo canônico e Modo relaxado. Você pode fornecer o arquivo JSON formatado em MongoDB que é gerado usando a ferramenta mongoexport no modo Canônico ou Relaxado. Ambos os modos são suportados pelo NoSQL Database Migrator para migração.
Para obter mais informações sobre o arquivo JSON estendido do MongoDB (v2), consulte mongoexport_formats.
Para obter mais informações sobre a geração de arquivo JSON formatado em MongoDB, consulte mongoexport para obter mais informações.
Um exemplo de arquivo JSON do Modo relaxado formatado pelo MongoDB é o seguinte:
{"_id":0,"name":"Aimee Zank","scores":[{"score":
1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}
Modelo de Configuração de Origem
"source": {
"type": "file",
"format": "mongodb_json",
"dataPath": "</path/to/json/[file|dir]>",
"schemaInfo": {
"schemaPath": "</path/to/schema/file>"
}
}
Parâmetros de Origem
Parâmetros de Configuração Comuns
Parâmetros de Configuração Exclusivos
-
Finalidade: Especifica o caminho absoluto para um arquivo ou diretório que contém os dados JSON exportados pelo MongoDB para migração.
Você pode fornecer o arquivo JSON formatado em MongoDB que é gerado usando a ferramenta mongoexport.
Se você especificar um diretório, o NoSQL Database Migrator identificará todos os arquivos com a extensão
.jsonnesse diretório para a migração. Subdiretórios não são suportados. Certifique-se de que esses dados correspondam ao esquema de tabela NoSQL definido no sumidouro. -
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
-
Especificando um arquivo JSON formatado pelo MongoDB
"dataPath" : "/home/user/sample.json" -
Especificando um diretório
"dataPath" : "/home/user"
-
-
Finalidade: Especifica o esquema dos dados de origem que estão sendo migrados. Este esquema é passado para o sumidouro válido.
-
Tipo de Dados: Objeto
-
Obrigatório (S/N): N
-
Finalidade: Especifica o caminho absoluto para o arquivo de definição de esquema que contém instruções DDL para a tabela NoSQL que está sendo migrada.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
"schemaInfo" : { "schemaPath" : "/home/user/mytable/Schema/schema.ddl" }
Arquivo JSON Formatado no MongoDB no bucket do OCI Object Storage
O formato do arquivo de configuração para o arquivo JSON Formatado no MongoDB no bucket do OCI Object Storage como origem do NoSQL Database Migrator é mostrado abaixo.
Você pode migrar os dados JSON exportados pelo MongoDB no bucket do OCI Object Storage especificando o nome do bucket no modelo de configuração de origem.
Extraia os dados do MongoDB usando o utilitário mongoexport e faça upload deles no bucket do OCI Object Storage. Consulte mongoexport para obter mais informações. O MongoDB suporta dois tipos de extensões para o formato JSON de arquivos, Modo canônico e Modo relaxado. Ambos os formatos são suportados no bucket do OCI Object Storage.
Um exemplo de Arquivo JSON do Modo Relaxado formatado pelo MongoDB é o seguinte:
{"_id":0,"name":"Aimee Zank","scores":[{"score":1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}
Observação: Os tipos de sumidouro válidos para o tipo de origem do OCI Object Storage são nosqldb e nosqldb_cloud.
Modelo de Configuração de Origem
"source" : {
"type" : "object_storage_oci",
"format" : "mongodb_json",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"schemaInfo" : {
"schemaObject" : "<object name>"
},
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Parâmetros de Origem
Parâmetros de Configuração Comuns
-
Usar
"type" : "object_storage_oci" -
Usar
"format" : "mongodb_json" -
Exemplo:
-
ID da Região:
"endpoint" : "us-ashburn-1" -
Formato do URL:
"endpoint" : "https://objectstorage.us-ashburn- 1.oraclecloud.com"
-
-
Exemplo:
"namespace" : "my-namespace" -
Exemplo:
"bucket" : "my-bucket" -
Exemplo:
-
"prefix" : "mongo_export/Data/table.json"(migra somentetable.json) -
"prefix" : "mongo_export/Data"(migra todos os objetos com o prefixomongo_export/Data)
Observação: se você não fornecer nenhum valor, todos os objetos presentes no bucket serão migrados.
-
-
Exemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
Exemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemplo:
"useInstancePrincipal" : true -
Exemplo:
"useDelegationToken" : trueObservação: A autenticação com token de delegação só é suportada quando o NoSQL Database Migrator está em execução em um Cloud Shell.
-
useOKEIdentidade da Carga de Trabalho
Exemplo:
"useOKEWorkloadIdentity" : true -
Exemplo:
"useSessionToken" : true
Parâmetros de Configuração Exclusivos
-
Finalidade: Especifica o esquema dos dados de origem que estão sendo migrados. Este esquema é passado para o coletor NoSQL.
-
Tipo de Dados: Objeto
-
Obrigatório (S/N): N
-
Finalidade: Especifica o nome do objeto no bucket em que as definições de esquema da tabela NoSQL para os dados que estão sendo migrados são armazenadas.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" }
Arquivo JSON Formatado pelo DynamoDB armazenado no AWS S3
O formato do arquivo de configuração do Arquivo JSON formatado pelo DynamoDB no AWS S3 como origem do NoSQL Database Migrator é mostrado abaixo.
Você pode migrar um arquivo que contenha os dados JSON exportados do DynamoDB do armazenamento do AWS S3 especificando o caminho no modelo de configuração de origem.
Um exemplo de Arquivo JSON formatado por DynamoDB é o seguinte:
{"Item":{"Id":{"N":"101"},"Phones":{"L":[{"L":[{"S":"555-222"},{"S":"123-567"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"570004"},"Street":{"S":"21 main"},"DoorNum":{"N":"201"},"City":{"S":"London"}}},"FirstName":{"S":"Fred"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"Smith"},"FavColors":{"SS":["Red","Green"]},"Age":{"N":"22"},"ttl": {"N": "1734616800"}}}
{"Item":{"Id":{"N":"102"},"Phones":{"L":[{"L":[{"S":"222-222"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"560014"},"Street":{"S":"32 main"},"DoorNum":{"N":"1024"},"City":{"S":"Wales"}}},"FirstName":{"S":"John"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"White"},"FavColors":{"SS":["Blue"]},"Age":{"N":"48"},"ttl": {"N": "1734616800"}}}
Você deve exportar a tabela DynamoDB para o armazenamento do AWS S3 conforme especificado em Exportando dados da tabela DynamoDB para o Amazon S3.
Os tipos de sumidouro válidos para JSON formatado em DynamoDB armazenados no AWS S3 são nosqldb e nosqldb_cloud.
Modelo de Configuração de Origem
"source" : {
"type" : "aws_s3",
"format" : "dynamodb_json",
"ttlAttributeName" : "<DynamoDB exported TTL attribute name>",
"s3URL" : "<S3 object url>",
"credentials" : "</path/to/aws/credentials/file>",
"credentialsProfile" : "<profile name in aws credentials file>"
}
Parâmetros de Origem
Parâmetros de Configuração Comuns
-
Usar
"type" : "aws_s3" -
Usar
"format" : "dynamodb_json"Observação: Se o valor do parâmetro de tipo for
aws_s3, o formato deverá serdynamodb_json.
Parâmetros de Configuração Exclusivos
-
Finalidade: Especifica o URL de uma tabela do DynamoDB exportada armazenada no AWS S3. Você pode obter esse URL no console do AWS S3. O formato de URL válido é
https://<bucket-name>.<s3_endpoint>/<prefix>. O NoSQL Database Migrator procurará arquivosjson.gzno prefixo durante a importação.Observação: Você deve exportar a tabela DynamoDB conforme especificado em Exportando dados da tabela DynamoDB para o Amazon S3.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
https://my-bucket.s3.ap-south-1.amazonaws.com/AWSDynamoDB/01649660790057-14f642be
-
Finalidade: Especifica o caminho absoluto para um arquivo que contém as credenciais da AWS. Se não for especificado, o padrão será
$HOME/.aws/credentials. Para obter mais detalhes sobre o arquivo de credenciais, consulte Configurações e definições do arquivo de credenciais. -
Tipo de Dados: string
-
Obrigatório (S/N): N
-
Exemplo:
"credentials" : "/home/user/.aws/credentials""credentials" : "/home/user/security/credentialsObservação: O NoSQL Database Migrator não registra nenhuma das informações de credenciais. Proteja adequadamente o arquivo de credenciais contra acesso não autorizado.
- Finalidade: Nome do perfil no arquivo de credenciais da AWS a ser usado para estabelecer conexão com o AWS S
- As credenciais de conta de usuário são chamadas de perfil. Se você não especificar esse valor, o NoSQL Database Migrator usará o perfil
default. Para obter mais detalhes sobre o arquivo de credenciais, consulte Configurações e definições do arquivo de credenciais.
- As credenciais de conta de usuário são chamadas de perfil. Se você não especificar esse valor, o NoSQL Database Migrator usará o perfil
-
Tipo de Dados: string
-
Obrigatório (S/N): N
-
Exemplo:
"credentialsProfile" : "default""credentialsProfile" : "test"
-
Finalidade: Especifica o nome do atributo TTL presente nos dados exportados da tabela DynamoDB. Você só incluirá esse parâmetro se os dados da tabela DynamoDB tiverem um atributo TTL e quiser definir o valor TTL nos dados importados durante a importação para o NoSQL Database.
Observação: Para importar com os metadados TTL, defina o parâmetro de configuração includeTTL como verdadeiro no modelo de configuração do sumidouro (
nosqldbenosqldb_cloud). -
Tipo de Dados: string
-
Obrigatório (S/N): N
-
Exemplo:
"ttlAttributeName" : "ttl"
Arquivo JSON Formatado no DynamoDB
O formato do arquivo de configuração do Arquivo JSON formatado pelo DynamoDB como origem do NoSQL Database Migrator é mostrado abaixo.
Você pode migrar um arquivo ou diretório contendo os dados JSON exportados do DynamoDB de um sistema de arquivos especificando o caminho no modelo de configuração de origem.
Um exemplo de Arquivo JSON formatado por DynamoDB é o seguinte:
{"Item":{"Id":{"N":"101"},"Phones":{"L":[{"L":[{"S":"555-222"},{"S":"123-567"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"570004"},"Street":{"S":"21 main"},"DoorNum":{"N":"201"},"City":{"S":"London"}}},"FirstName":{"S":"Fred"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"Smith"},"FavColors":{"SS":["Red","Green"]},"Age":{"N":"22"},"ttl": {"N": "1734616800"}}}
{"Item":{"Id":{"N":"102"},"Phones":{"L":[{"L":[{"S":"222-222"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"560014"},"Street":{"S":"32 main"},"DoorNum":{"N":"1024"},"City":{"S":"Wales"}}},"FirstName":{"S":"John"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"White"},"FavColors":{"SS":["Blue"]},"Age":{"N":"48"},"ttl": {"N": "1734616800"}}}
Você deve copiar os dados da tabela do DynamoDB exportados do armazenamento do AWS S3 para um sistema de arquivos montado local.
Os tipos de sumariação válidos para o arquivo JSON do DynamoDB são nosqldb e nosqldb_cloud.
Modelo de Configuração de Origem
"source" : {
"type" : "file",
"format" : "dynamodb_json",
"ttlAttributeName" : <DynamoDB exported TTL attribute name>,
"dataPath" : "<path/to/[file|dir]/containing/exported/DDB/tabledata>"
}
Parâmetros de Origem
Parâmetros de Configuração Comuns
Parâmetro de Configuração Exclusivo
-
Finalidade: Especifica o caminho absoluto para um arquivo ou diretório que contém os dados exportados da tabela DynamoDB. Você deve copiar dados exportados da tabela DynamoDB do AWS S3 para um sistema de arquivos montado local. Certifique-se de que esses dados correspondam ao esquema de tabela NoSQL definido no sumidouro. Se você especificar um diretório, o NoSQL Database Migrator identificará todos os arquivos com a extensão
.json.gznesse diretório e o subdiretóriodata. -
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
-
Especificando um arquivo
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3/data/zclclwucjy6v5mkefvckxzhfvq.json.gz" -
Especificando um diretório
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3"
-
-
Finalidade: Especifica o nome do atributo TTL presente nos dados exportados da tabela DynamoDB. Você só incluirá esse parâmetro se os dados da tabela DynamoDB tiverem um atributo TTL e quiser definir o valor TTL nos dados importados durante a importação para o NoSQL Database.
Observação: Para importar com os metadados TTL, defina o parâmetro de configuração includeTTL como verdadeiro no modelo de configuração do sumidouro (
nosqldbenosqldb_cloud). -
Tipo de Dados: string
-
Obrigatório (S/N): N
-
Exemplo:
"ttlAttributeName" : "ttl"
Oracle NoSQL Database
O formato do arquivo de configuração do Oracle NoSQL Database como origem do NoSQL Database Migrator é mostrado abaixo.
Você pode migrar uma tabela do Oracle NoSQL Database especificando o nome da tabela no modelo de configuração de origem.
Um exemplo de tabela do Oracle NoSQL Database é o seguinte:
{"id":20,"firstName":"Jane","lastName":"Smith","otherNames":[{"first":"Jane","last":"teacher"}],"age":25,"income":55000,"address":{"city":"San Jose","number":201,"phones":[{"area":608,"kind":"work","number":6538955},{"area":931,"kind":"home","number":9533341},{"area":931,"kind":"mobile","number":9533382}],"state":"CA","street":"Atlantic Ave","zip":95005},"connections":[40,75,63],"expenses":null}
{"id":10,"firstName":"John","lastName":"Smith","otherNames":[{"first":"Johny","last":"chef"}],"age":22,"income":45000,"address":{"city":"Santa Cruz","number":101,"phones":[{"area":408,"kind":"work","number":4538955},{"area":831,"kind":"home","number":7533341},{"area":831,"kind":"mobile","number":7533382}],"state":"CA","street":"Pacific Ave","zip":95008},"connections":[30,55,43],"expenses":null}
{"id":30,"firstName":"Adam","lastName":"Smith","otherNames":[{"first":"Adam","last":"handyman"}],"age":45,"income":75000,"address":{"city":"Houston","number":301,"phones":[{"area":618,"kind":"work","number":6618955},{"area":951,"kind":"home","number":9613341},{"area":981,"kind":"mobile","number":9613382}],"state":"TX","street":"Indian Ave","zip":95075},"connections":[60,45,73],"expenses":null}
Modelo de Configuração de Origem
"source" : {
"type": "nosqldb",
"storeName" : "<store name>",
"helperHosts" : ["hostname1:port1","hostname2:port2,..."],
"table" : "<fully qualified table name>",
"queryFilter" : "<query predicate>",
"includeTTL": <true|false>,
"security" : "</path/to/store/security/file>",
"requestTimeoutMs" : 5000
}
Parâmetros de Origem
Parâmetro de Configuração Comum
-
Usar
"type" : "nosqldb" -
Exemplo:
"security" : "/home/user/client.credentials"Exemplo de conteúdo de arquivo de segurança para autenticação baseada em arquivo de senha:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.pwdfile.file=/home/nosql/login.passwd oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv 1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)Exemplo de conteúdo de arquivo de segurança para autenticação baseada em wallet:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.wallet.dir=/home/nosql/login.wallet oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL) -
Exemplo:
"requestTimeoutMs" : 5000
Parâmetros de Configuração Exclusivos
-
Finalidade: Nome do armazenamento do Oracle NoSQL Database.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
"storeName" : "kvstore"
-
Finalidade: Uma lista de pares de portas de host e de registro no formato
hostname:port. Delimite cada item na lista usando uma vírgula. Você deve especificar pelo menos um host auxiliar. -
Tipo de Dados: array de strings
-
Obrigatório (S/N): Y
-
Exemplo:
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Finalidade: Nome de tabela totalmente qualificado do qual migrar os dados.
Formato:
[namespace_name:]<table_name>Se a tabela estiver no namespace DEFAULT, você poderá omitir o
namespace_name. A tabela deve existir na loja. -
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
-
Com o namespace DEFAULT
"table" :"mytable" -
Com um namespace não padrão
"table" : "mynamespace:mytable" -
Para especificar uma tabela filha
"table" : "mytable.child"
-
-
Finalidade: Especifica se devem ou não incluir metadados TTL para linhas de tabela ao exportar tabelas do Oracle NoSQL Database. Se definido como verdadeiro, os dados TTL das linhas também serão incluídos nos dados fornecidos pela origem. O TTL está presente no objeto JSON
_metadataassociado a cada linha. O tempo de expiração de cada linha é exportado como o número de milissegundos desde a época UNIX (1º de janeiro de 1970).Se você não especificar esse parâmetro, ele assumirá como padrão
false.Somente as linhas com um valor de expiração positivo para TTL são incluídas como parte das linhas exportadas. Se uma linha não expirar, o que significa TTL=0, seus metadados TTL não serão incluídos explicitamente. Por exemplo, se ROW1 expirar em 19-10-2021 00:00:00 e ROW2 não expirar, os dados exportados terão a seguinte aparência:
//ROW1 { "id" : 1, "name" : "abc", "_metadata" : { "expiration" : 1634601600000 } } //ROW2 { "id" : 2, "name" : "xyz" } -
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"includeTTL" : true
-
Finalidade: Especifica o predicado de consulta que o utilitário Migrator usa para exportar somente as linhas que correspondem à condição fornecida.
O utilitário Migrator incorpora esse predicado à cláusula WHERE da consulta SQL. Esta consulta é aplicada na tabela de origem para filtrar dados de acordo com a condição especificada. Para especificar a tabela de origem, use o parâmetro
tableno seu modelo de configuração de origem.Por exemplo, para exportar somente as linhas com o valor 10 do
id, defina o parâmetroqueryFiltercomo"id=10". O utilitário Migrator gera a seguinte consulta:select $row from <table> $row where id=10Nesta consulta, o utilitário Migrator usa o alias de tabela
$rowpara processar linhas individuais.Observe o seguinte:
-
Não é possível usar o
queryFilterpara selecionar uma coluna específica. Você pode fornecer transformações para filtrar as colunas. -
Se você não fornecer um valor para o parâmetro
queryFilter, o utilitário Migrator exportará todas as linhas da tabela usando a seguinte consulta:select $row from $row
-
-
Tipo de Dados: String JSON
-
Obrigatório (S/N): N
-
Exemplo:
"queryFilter" : "$row.address.city='Houston'"Consulte a tabela Predicados de Consulta de Amostra abaixo para obter exemplos adicionais.
Expressões Suportadas:
O utilitário Migrator suporta as seguintes expressões no predicado de consulta. Para obter exemplos e sintaxes detalhados, consulte o SQL Reference Guide.
Field step expressions
Map-filter step expressions
Array-filter step expressions
Array-slice step expressions
Arithmetic operators
Value comparison operators
Sequence comparison operators
Logical operators AND, OR and NOT
IS NULL and IS NOT NULL operators
IN operator
Regular expression
EXISTS operator
IS OF TYPE operator
CONCAT operator
CAST expression
Row functions
A tabela a seguir fornece exemplos de predicados de consulta válidos para diferentes expressões e dados exportados resultantes.
Observação:
-
Recomenda-se usar aspas simples (') em vez de aspas duplas (") ao fornecer um literal de string no predicado de consulta. Se você quiser usar aspas duplas ("), então você deve escapar.
Por exemplo: Use o predicado de consulta
"name='John'"para selecionar linhas da tabela fornecida em que o valor no camponameé a string 'John' . -
Inclua o alias de tabela
$rownas expressões quando:-
Usando funções de linha, como
modification_time(), expiration_time(), creation_time(), e assim por diante. Para obter detalhes, consulte Funções em Linhas. -
Acessando campos específicos em uma coluna JSON.
-
Tabela - Predicados de Consulta de Amostra
| Consulta/predicação | Dados exportados |
|---|---|
| "id=10" | Linhas da tabela fornecida com id=10. |
| "name='John'" | Linhas da tabela fornecida com o nome = 'John'. |
| "idade>30 e gênero='masculino'" | Linhas da tabela fornecida com age maior que 30 e gender = 'masculino'. |
| "$row.address.state = 'CA'" | Linhas da tabela fornecida com o campo state na coluna JSON address = 'CA'. Aqui, você usa uma expressão de etapa de campo no predicado para acessar o valor de campo obrigatório em um campo JSON. |
| "$row.expenses.keys($value > 1000) = 'food'" | Linhas da tabela fornecida em que a categoria expenses = 'food' e o valor expenses são maiores que 1000. Aqui, você usa uma expressão de etapa de filtro de mapa para selecionar os nomes de campo (chaves) ou os valores de campo dos campos de mapa/registro. |
| "$row.expenses.keys($value > $.clothes) = 'comida' | Linhas da tabela fornecida em que a categoria expenses = 'food' e o valor de expenses são maiores que o gasto em clothes. |
| "[$row.address.phones[$element.area = 650].kind] = 'trabalho' | Linhas da tabela fornecida em que o código de área do telefone no array = 650 e o tipo = 'trabalho'. Aqui, você usa a expressão de etapa do filtro de matriz, pois o campo address é um array JSON. |
| "[conexões[$element > 100 e $pos < 10]] > 100" | Linhas da tabela fornecida com no máximo 10 conexões e número de conexões > 100. Aqui, você usa uma expressão de etapa do filtro de matriz, pois o campo connections é um array. |
| "$row.income IS NULL" | Linhas da tabela fornecida que não têm uma renda conhecida. Para obter mais detalhes, consulte Operadores IS NULL e IS NOT NULL. |
| "a em (1, 5, 4)" | Linhas da tabela em que a é 1, 5 ou 4. Para obter mais detalhes, consulte Operador de IN. |
| "(a, b) em ((1, 'a'), (5, 'g'), (4, 't'))" | Linhas da tabela fornecida em que (a é 1 e b é 'a') OR (a é 5 e b é 'g') OR (a é 4 e b é 't'). |
| "regex_like(name, 'j.*')" | Linhas da tabela fornecida cujo nome começa com j. Para obter mais detalhes, consulte Expressões Regulares. |
| "EXISTE $row.person.address.zipcode" | Linhas da tabela fornecida em que a coluna json person tem zipcode no endereço. Para obter mais detalhes, consulte Operador Existe. |
| "$row.address é do tipo (string)" | Linhas da tabela fornecida em que a coluna address é do tipo string. Para obter mais detalhes, consulte Operador Is-Of-Type. |
| "lastLogin > CAST('2022-10-01' AS TIMESTAMP)" | Linhas da tabela fornecida com o último login após 1º de outubro de 2022. Para obter mais detalhes, consulte Expressões de Conjuração. |
| "$row.connections[ ]=qualquer 1" | Linhas da tabela fornecida cuja coluna do array connections tem o elemento 1. Para obter mais detalhes, consulte Operadores de Comparação de Sequência. |
| "modification_time($row) >= 2022-10-01'' | Linhas da tabela fornecida que são modificadas em 1º de outubro de 2022 ou após essa data. Para obter mais detalhes, consulte Funções em Linhas. |
| "expiration_time_millis($row) > 0" | Linhas da tabela fornecida que não expiraram. Para obter mais detalhes, consulte Funções em Linhas. |
Oracle NoSQL Database Cloud Service
O formato do arquivo de configuração do Oracle NoSQL Database Cloud Service como origem do NoSQL Database Migrator é mostrado abaixo.
Você pode migrar uma tabela do Oracle NoSQL Database Cloud Service especificando o nome ou o OCID do compartimento no qual a tabela reside no modelo de configuração de origem.
Uma amostra da tabela do Oracle NoSQL Database Cloud Service é a seguinte:
{"id":20,"firstName":"Jane","lastName":"Smith","otherNames":[{"first":"Jane","last":"teacher"}],"age":25,"income":55000,"address":{"city":"San Jose","number":201,"phones":[{"area":608,"kind":"work","number":6538955},{"area":931,"kind":"home","number":9533341},{"area":931,"kind":"mobile","number":9533382}],"state":"CA","street":"Atlantic Ave","zip":95005},"connections":[40,75,63],"expenses":null}
{"id":10,"firstName":"John","lastName":"Smith","otherNames":[{"first":"Johny","last":"chef"}],"age":22,"income":45000,"address":{"city":"Santa Cruz","number":101,"phones":[{"area":408,"kind":"work","number":4538955},{"area":831,"kind":"home","number":7533341},{"area":831,"kind":"mobile","number":7533382}],"state":"CA","street":"Pacific Ave","zip":95008},"connections":[30,55,43],"expenses":null}
{"id":30,"firstName":"Adam","lastName":"Smith","otherNames":[{"first":"Adam","last":"handyman"}],"age":45,"income":75000,"address":{"city":"Houston","number":301,"phones":[{"area":618,"kind":"work","number":6618955},{"area":951,"kind":"home","number":9613341},{"area":981,"kind":"mobile","number":9613382}],"state":"TX","street":"Indian Ave","zip":95075},"connections":[60,45,73],"expenses":null}
Modelo de Configuração de Origem
"source" : {
"type" : "nosqldb_cloud",
"endpoint" : "<Oracle NoSQL Cloud Service endpoint URL or region ID>",
"table" : "<table name>",
"queryFilter" : "<query predicate>",
"compartment" : "<OCI compartment name or id>",
"credentials" : "<path/to/oci/credential/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>,
"readUnitsPercent" : <table readunits percent>,
"includeTTL": <true|false>,
"requestTimeoutMs" : <timeout in milli seconds>
}
Parâmetros de Origem
Parâmetros de Configuração Comuns
-
Usar
"type" : "nosqldb_cloud" -
Exemplo:
-
ID da Região:
"endpoint" : "us-ashburn-1" -
Formato do URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Exemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Exemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemplo:
"useInstancePrincipal" : true -
Exemplo:
"useDelegationToken" : trueObservação: A autenticação com token de delegação só é suportada quando o NoSQL Database Migrator está em execução em um Cloud Shell.
-
useOKEIdentidade da Carga de Trabalho
Exemplo:
"useOKEWorkloadIdentity" : true -
Exemplo:
"useSessionToken" : true -
Exemplo:
"requestTimeoutMs" : 5000
Parâmetros de Configuração Exclusivos
-
Finalidade: Nome da tabela da qual os dados serão migrados.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
-
Para especificar uma tabela
"table" : "myTable" -
Para especificar uma tabela filha
"table" : "mytable.child"
-
-
Finalidade: Especifica o nome ou o OCID do compartimento no qual a tabela reside.
Se você não fornecer nenhum valor, o padrão será o compartimento root.
Você pode encontrar o OCID do seu compartimento na janela Explorador de Compartimentos, em Governança, na Console do OCI Cloud.
-
Tipo de Dados: string
-
Obrigatório (S/N): S, se a tabela não estiver no compartimento raiz da tenancy OU quando o parâmetro useInstancePrincipal estiver definido como verdadeiro.
Observação: Se o parâmetro useInstancePrincipal estiver definido como verdadeiro, o compartimento deverá especificar o OCID do compartimento e não o nome.
-
Exemplo:
-
Nome do compartimento
"compartment" : "mycompartment" -
Nome do compartimento qualificado com seu compartimento pai
"compartment" : "parent.childcompartment" -
Não foi fornecido nenhum valor. O padrão é o compartimento raiz.
"compartment": "" -
OCID do Compartimento
"compartment" : "ocid 1.tenancy.oc1...4ksd"
-
-
Finalidade: Porcentagem de unidades de leitura de tabela a serem usadas durante a migração da tabela NoSQL.
O valor padrão é 90. O intervalo válido é qualquer número inteiro entre 1 e 100. O tempo necessário para migrar dados é diretamente proporcional a esse atributo. É melhor aumentar o throughput de leitura da tabela para a atividade de migração. Você pode reduzir o throughput de leitura após a conclusão do processo de migração.
Para saber os limites diários sobre alterações de throughput, consulte Limites do Cloud no documento do Oracle NoSQL Database Cloud Service.
Para saber como usar esse atributo para melhorar a velocidade de migração de dados, consulte Diagnosticando e Solucionando Problemas do Oracle NoSQL Database Migrator
-
Tipo de Dados: inteiro
-
Obrigatório (S/N): N
-
Exemplo:
"readUnitsPercent" : 90
-
Finalidade: Especifica se devem ou não incluir metadados TTL para linhas de tabela ao exportar tabelas do Oracle NoSQL Database Cloud Service. Se definido como verdadeiro, os dados TTL das linhas também serão incluídos nos dados fornecidos pela origem. O TTL está presente no objeto JSON
_metadataassociado a cada linha. O tempo de expiração de cada linha é exportado como o número de milissegundos desde a época UNIX (1º de janeiro de 1970).Se você não especificar esse parâmetro, ele assumirá como padrão
false.Somente as linhas com um valor de expiração positivo para TTL são incluídas como parte das linhas exportadas. Se uma linha não expirar, o que significa TTL=0, seus metadados TTL não serão incluídos explicitamente. Por exemplo, se ROW1 expirar em 19-10-2021 00:00:00 e ROW2 não expirar, os dados exportados terão a seguinte aparência:
//ROW1 { "id" : 1, "name" : "abc", "_metadata" : { "expiration" : 1634601600000 } } //ROW2 { "id" : 2, "name" : "xyz" } -
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"includeTTL" : true
-
Finalidade: Especifica o predicado de consulta que o utilitário Migrator usa para exportar somente as linhas que correspondem à condição fornecida.
O utilitário Migrator incorpora esse predicado à cláusula WHERE da consulta SQL. Esta consulta é aplicada na tabela de origem para filtrar dados de acordo com a condição especificada. Para especificar a tabela de origem, use o parâmetro
tableno seu modelo de configuração de origem.Por exemplo, para exportar somente as linhas com o valor 10 do
id, defina o parâmetroqueryFiltercomo"id=10". O utilitário Migrator gera a seguinte consulta:select $row from <table> $row where id=10Na consulta acima, o utilitário Migrator usa o alias de tabela
$rowpara processar linhas individuais.Observe o seguinte:
-
Não é possível usar o
queryFilterpara selecionar uma coluna específica. Você pode fornecer transformações para filtrar as colunas. -
Se você não fornecer um valor para o parâmetro
queryFilter, o utilitário Migrator exportará todas as linhas da tabela usando a seguinte consulta:select $row from $row`
-
-
Tipo de Dados: String JSON
-
Obrigatório (S/N): N
-
Exemplo:
"queryFilter" : "$row.address.city='Houston'"Consulte a tabela Predicados de Consulta de Amostra abaixo para obter exemplos adicionais.
Expressões Suportadas:
O utilitário Migrator suporta as seguintes expressões no predicado de consulta. Para obter exemplos e sintaxes detalhados, consulte o SQL Reference Guide.
Field step expressions
Map-filter step expressions
Array-filter step expressions
Array-slice step expressions
Arithmetic operators
Value comparison operators
Sequence comparison operators
Logical operators AND, OR and NOT
IS NULL and IS NOT NULL operators
IN operator
Regular expression
EXISTS operator
IS OF TYPE operator
CONCAT operator
CAST expression
Row functions
A tabela a seguir fornece exemplos de predicados de consulta válidos para diferentes expressões e dados exportados resultantes.
Observação:
-
Recomenda-se usar aspas simples (') em vez de aspas duplas (") ao fornecer um literal de string no predicado de consulta. Se você quiser usar aspas duplas ("), então você deve escapar.
Por exemplo: Use o predicado de consulta
"name='John'"para selecionar linhas da tabela fornecida em que o valor no camponameé a string 'John' . -
Inclua o alias de tabela
$rownas expressões quando:- Usando funções de linha, como
modification_time(), expiration_time(), creation_time(), e assim por diante. Para obter detalhes, consulte Funções em Linhas. - Acessando campos específicos em uma coluna JSON.
- Usando funções de linha, como
Tabela - Predicados de Consulta de Amostra
| Consulta/predicação | Dados exportados |
|---|---|
| "id=10" | Linhas da tabela fornecida com id = 10. |
| "name='John'" | Linhas da tabela fornecida com o nome = 'John'. |
| "idade>30 e gênero='masculino'" | Linhas da tabela fornecida com age maior que 30 e gender = 'masculino'. |
| "$row.address.state = 'CA'" | Linhas da tabela fornecida com o campo state na coluna JSON address = 'CA'. Aqui, você usa uma expressão de etapa de campo no predicado para acessar o valor de campo obrigatório em um campo JSON. |
| "$row.expenses.keys($value > 1000) = 'food'" | Linhas da tabela fornecida em que a categoria expenses = 'food' e o valor expenses são maiores que 1000. Aqui, você usa uma expressão de etapa de filtro de mapa para selecionar os nomes de campo (chaves) ou os valores de campo dos campos de mapa/registro. |
| "$row.expenses.keys($value > $.clothes) = 'comida' | Linhas da tabela fornecida em que a categoria expenses = 'food' e o valor de expenses são maiores que o gasto em clothes. |
| "[$row.address.phones[$element.area = 650].kind] = 'trabalho' | Linhas da tabela fornecida em que o código de área do telefone no array = 650 e o tipo = 'trabalho'. Aqui, você usa a expressão de etapa do filtro de matriz, pois o campo address é um array JSON. |
| "[conexões[$element > 100 e $pos < 10]] > 100" | Linhas da tabela fornecida com no máximo 10 conexões e número de conexões > 100. Aqui, você usa uma expressão de etapa do filtro de matriz, pois o campo connections é um array. |
| "$row.income IS NULL" | Linhas da tabela fornecida que não têm uma renda conhecida. Para obter mais detalhes, consulte Operadores IS NULL e IS NOT NULL. |
| "a em (1, 5, 4)" | Linhas da tabela em que a é 1, 5 ou 4. Para obter mais detalhes, consulte Operador de IN. |
| "(a, b) em ((1, 'a'), (5, 'g'), (4, 't'))" | Linhas da tabela fornecida em que (a é 1 e b é 'a') OR (a é 5 e b é 'g') OR (a é 4 e b é 't'). |
| "regex_like(name, 'j.*')" | Linhas da tabela fornecida cujo nome começa com j. Para obter mais detalhes, consulte Expressões Regulares. |
| "EXISTE $row.person.address.zipcode" | Linhas da tabela fornecida em que a coluna json person tem zipcode no endereço. Para obter mais detalhes, consulte Operador Existe. |
| "$row.address é do tipo (string)" | Linhas da tabela fornecida em que a coluna address é do tipo string. Para obter mais detalhes, consulte Operador Is-Of-Type. |
| "lastLogin > CAST('2022-10-01' AS TIMESTAMP)" | Linhas da tabela fornecida com o último login após 1º de outubro de 2022. Para obter mais detalhes, consulte Expressões de Conjuração. |
| "$row.connections[ ]=qualquer 1" | Linhas da tabela fornecida cuja coluna do array connections tem o elemento 1. Para obter mais detalhes, consulte Operadores de Comparação de Sequência. |
| "modification_time($row) >= 2022-10-01'' | Linhas da tabela fornecida que são modificadas em 1º de outubro de 2022 ou após essa data. Para obter mais detalhes, consulte Funções em Linhas. |
| "expiration_time_millis($row) > 0" | Linhas da tabela fornecida que não expiraram. Para obter mais detalhes, consulte Funções em Linhas. |
Origem do arquivo CSV
O formato do arquivo de configuração para o arquivo CSV como uma origem do NoSQL Database Migrator é mostrado abaixo. O arquivo CSV deve estar em conformidade com o formato RFC4180.
É possível migrar um arquivo CSV ou um diretório que contenha os dados CSV especificando o nome do arquivo ou o diretório no modelo de configuração de origem.
Um arquivo CSV de amostra é o seguinte:
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"
Modelo de Configuração de Origem
"source" : {
"type" : "file",
"format" : "csv",
"dataPath": "</path/to/a/csv/[file|dir]>",
"hasHeader" : <true | false>,
"columns" : ["column1", "column2", ....],
"csvOptions": {
"encoding": "<character set encoding>",
"trim": "<true | false>"
}
}
Parâmetros de Origem
Parâmetros de Configuração Comuns
Parâmetros de Configuração Exclusivos
-
Finalidade: Especifica o caminho absoluto para um arquivo ou diretório que contém os dados CSV para migração. Se você especificar um diretório, o NoSQL Database Migrator importará todos os arquivos com a extensão
.csvou.CSVnesse diretório. Todos os arquivos CSV são copiados em uma única tabela, mas não em uma ordem específica.Arquivos CSV devem estar em conformidade com o padrão
RFC4180. Certifique-se de que os dados em cada arquivo CSV correspondam ao esquema de tabela do NoSQL Database definido na tabela do coletor. Subdiretórios não são suportados. -
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
-
Especificando um arquivo CSV
"dataPath" : "/home/user/sample.csv" -
Especificando um diretório
"dataPath" : "/home/user"
-
Observação: Os arquivos CSV devem conter apenas valores escalares. Não há suporte para a importação de arquivos CSV que contenham tipos complexos, como MAP, RECORD, ARRAY e JSON. A ferramenta NoSQL Database Migrator não verifica a exatidão dos dados no arquivo CSV de entrada. A ferramenta NoSQL Database Migrator suporta a importação de dados CSV que estão em conformidade com o formato RFC4180. Arquivos CSV contendo dados que não estão em conformidade com o padrão RFC4180 podem não ser copiados corretamente ou podem resultar em um erro. Se os dados de entrada estiverem corrompidos, a ferramenta NoSQL Database Migrator não analisará os registros CSV. Se forem encontrados erros durante a migração, a ferramenta NoSQL Database Migrator registrará as informações sobre os registros de entrada com falha para fins informativos e de depuração. Para obter mais detalhes, consulte Logging Migrator Progress no Using Oracle NoSQL Data Migrator.
-
Finalidade: Especifica se o arquivo CSV tem um cabeçalho ou não. Se for definido como
true, a primeira linha será ignorada. Se estiver definido comofalse, a primeira linha será considerada um registro CSV. O valor padrão éfalse. -
Tipo de Dados: Booliano
-
Obrigatório (S/N): N
-
Exemplo:
"hasHeader" : "false"
-
Finalidade: Especifica a lista de nomes de coluna da tabela do Banco de Dados NoSQL. A ordem dos nomes das colunas indica o mapeamento dos campos do arquivo CSV com as colunas correspondentes da tabela do Banco de Dados NoSQL. Se a ordem das colunas do arquivo CSV de entrada não corresponder às colunas da tabela do NoSQL Database existentes ou recém-criadas, você poderá mapear a ordem usando esse parâmetro. Além disso, ao importar para uma tabela que tenha uma Coluna de Identidade, você pode ignorar o nome da coluna de Identidade no parâmetro
columns.Observação:
-
Se a tabela Banco de Dados NoSQL tiver colunas adicionais que não estão disponíveis no arquivo CSV, os valores das colunas ausentes serão atualizados com o valor padrão conforme definido na tabela Banco de Dados NoSQL. Se um valor padrão não for fornecido, um valor Nulo será inserido durante a migração. Para obter mais informações sobre valores padrão, consulte a seção Definições de Tipo de Dados no Guia de Referência de SQL.
-
Se o arquivo CSV tiver colunas adicionais não definidas na tabela Banco de Dados NoSQL, as informações adicionais da coluna serão ignoradas.
-
Se qualquer valor no registro CSV estiver vazio, ele será definido como o valor padrão das colunas correspondentes na tabela do Banco de Dados NoSQL. Se um valor padrão não for fornecido, um valor Nulo será inserido durante a migração.
-
-
Tipo de Dados: Matriz de Strings
-
Obrigatório (S/N): N
-
Exemplo:
"columns" : ["table_column_1", "table_column_2"]
-
Finalidade: Especifica as opções de formatação de um arquivo CSV. Forneça o formato de codificação do conjunto de caracteres do arquivo CSV e escolha se deseja reduzir ou não os espaços em branco.
-
Tipo de Dados: Objeto
-
Obrigatório (S/N): N
-
Finalidade: Especifica o conjunto de caracteres para decodificar o arquivo CSV. O valor-padrão é
UTF-8. Os conjuntos de caracteres suportados sãoUS-ASCII, ISO-8859-1, UTF-8,eUTF-16. -
Tipo de Dados: String
-
Obrigatório (S/N): N
-
Exemplo:
"encoding" : "UTF-8"
-
Finalidade: Especifica se os espaços em branco à esquerda e à direita de um valor de campo CSV devem ser cortados. O valor padrão é
false. -
Tipo de Dados: Booliano
-
Obrigatório (S/N): N
-
Exemplo:
"trim" : "true"
Arquivo CSV no Bucket do OCI Object Storage
O formato do arquivo de configuração para o arquivo CSV no bucket do OCI Object Storage como origem do NoSQL Database Migrator é mostrado abaixo. O arquivo CSV deve estar em conformidade com o formato RFC4180.
Você pode migrar um arquivo CSV no bucket do OCI Object Storage especificando o nome do bucket no modelo de configuração de origem.
Um arquivo CSV de amostra no bucket do OCI Object Storage é o seguinte:
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"
Observação: Os tipos de sumidouro válidos para o tipo de origem do OCI Object Storage são nosqldb e nosqldb_cloud.
Modelo de Configuração de Origem
"source" : {
"type" : "object_storage_oci",
"format" : "csv",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>,
"hasHeader" : <true | false>,
"columns" : ["column1", "column2", ....],
"csvOptions" : {
"encoding" : "<character set encoding>",
"trim" : <true | false>
}
}
Parâmetros de Origem
Parâmetros de Configuração Comuns
-
Usar
"type" : "object_storage_oci" -
Usar
"format" : "csv" -
Exemplo de endpoint:
-
ID da Região:
"endpoint" : "us-ashburn-1" -
Formato do URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Exemplo:
"namespace" : "my-namespace" -
Exemplo:
"bucket" : "my-bucket"Observação:
-
O NoSQL Database Migrator importa todos os arquivos com a extensão .
csvou.CSVpor objeto e os copia em uma única tabela na mesma ordem. -
Os arquivos CSV devem conter apenas valores escalares. Não há suporte para a importação de arquivos CSV que contenham tipos complexos, como MAP, RECORD, ARRAY e JSON. A ferramenta NoSQL Database Migrator não verifica a exatidão dos dados no arquivo CSV de entrada. A ferramenta NoSQL Database Migrator suporta a importação de dados CSV que estão em conformidade com o formato
RFC4180. Arquivos CSV contendo dados que não estão em conformidade com o padrãoRFC4180podem não ser copiados corretamente ou podem resultar em um erro. Se os dados de entrada estiverem corrompidos, a ferramenta NoSQL Database Migrator não analisará os registros CSV. Se forem encontrados erros durante a migração, a ferramenta NoSQL Database Migrator registrará as informações sobre os registros de entrada com falha para fins informativos e de depuração. Para obter mais detalhes, consulte Logging Migrator Progress no Using Oracle NoSQL Data Migrator.
-
-
Exemplo:
-
"prefix" : "my_table/Data/000000.csv"(migra somente000000.csv) -
"prefix" : "my_table/Data"(migra todos os objetos com o prefixomy_table/Data)
-
-
Exemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Exemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemplo:
"useInstancePrincipal" : true -
Exemplo:
"useDelegationToken" : trueObservação: A autenticação com token de delegação só é suportada quando o NoSQL Database Migrator está em execução em um Cloud Shell.
-
useOKEIdentidade da Carga de Trabalho
Exemplo:
"useOKEWorkloadIdentity" : true -
Exemplo:
"useSessionToken" : true
Parâmetros de Configuração Exclusivos
-
Finalidade: Especifica se o arquivo CSV tem um cabeçalho ou não. Se for definido como
true, a primeira linha será ignorada. Se estiver definido comofalse, a primeira linha será considerada um registro CSV. O valor padrão éfalse. -
Tipo de Dados: Booliano
-
Obrigatório (S/N): N
-
Exemplo:
"hasHeader" : "false"
-
Finalidade: Especifica a lista de nomes de coluna da tabela do Banco de Dados NoSQL. A ordem dos nomes das colunas indica o mapeamento dos campos do arquivo CSV com as colunas correspondentes da tabela do Banco de Dados NoSQL. Se a ordem das colunas do arquivo CSV de entrada não corresponder às colunas da tabela do NoSQL Database existentes ou recém-criadas, você poderá mapear a ordem usando esse parâmetro. Além disso, ao importar para uma tabela que tenha uma Coluna de Identidade, você pode ignorar o nome da coluna de Identidade no parâmetro
columns.Observação:
-
Se a tabela Banco de Dados NoSQL tiver colunas adicionais que não estão disponíveis no arquivo CSV, os valores das colunas ausentes serão atualizados com o valor padrão conforme definido na tabela Banco de Dados NoSQL. Se um valor padrão não for fornecido, um valor Nulo será inserido durante a migração. Para obter mais informações sobre valores padrão, consulte a seção Definições de Tipo de Dados no Guia de Referência de SQL.
-
Se o arquivo CSV tiver colunas adicionais não definidas na tabela Banco de Dados NoSQL, as informações adicionais da coluna serão ignoradas.
-
Se qualquer valor no registro CSV estiver vazio, ele será definido como o valor padrão das colunas correspondentes na tabela do Banco de Dados NoSQL. Se um valor padrão não for fornecido, um valor Nulo será inserido durante a migração.
-
-
Tipo de Dados: Matriz de Strings
-
Obrigatório (S/N): N
-
Exemplo:
"columns" : ["table_column_1", "table_column_2"]
-
Finalidade: Especifica as opções de formatação de um arquivo CSV. Forneça o formato de codificação do conjunto de caracteres do arquivo CSV e escolha se deseja reduzir ou não os espaços em branco.
-
Tipo de Dados: Objeto
-
Obrigatório (S/N): N
-
Finalidade: Especifica o conjunto de caracteres para decodificar o arquivo CSV. O valor-padrão é
UTF-8. Os conjuntos de caracteres suportados sãoUS-ASCII, ISO-8859-1, UTF-8,eUTF-16. -
Tipo de Dados: String
-
Obrigatório (S/N): N
-
Exemplo:
"encoding" : "UTF-8"
-
Finalidade: Especifica se os espaços em branco à esquerda e à direita de um valor de campo CSV devem ser cortados. O valor padrão é
false. -
Tipo de Dados: Booliano
-
Obrigatório (S/N): N
-
Exemplo:
"trim" : "true"
Modelos de Configuração de Receptor
Saiba mais sobre os formatos de arquivo de configuração do sumidouro para cada sumidouro válido e a finalidade de cada parâmetro de configuração.
Para o modelo de arquivo de configuração, consulte Arquivo de Configuração em Terminologia usada com o NoSQL Data Migrator.
Para obter detalhes sobre formatos de origem válidos para cada um dos sumidouros, consulte Modelos de Configuração de Origem.
Tópicos
Os tópicos a seguir descrevem os modelos de configuração do coletor referidos pelo Oracle NoSQL Database Migrator para copiar os dados de uma origem válida para o coletor fornecido.
-
Arquivo JSON especificado.
-
Arquivo parquet no diretório especificado.
-
Arquivo JSON no Bucket do OCI Object Storage
Arquivo JSON no bucket do OCI Object Storage especificado.
-
Arquivo Parquet no Bucket do OCI Object Storage
Arquivo parquet no bucket do OCI Object Storage especificado.
-
Tabela especificada no Oracle NoSQL Database.
-
Oracle NoSQL Database Cloud Service
Tabela especificada no Oracle NoSQL Database Cloud Service.
Dissipador de Arquivos JSON
O formato do arquivo de configuração do Arquivo JSON como um coletor do NoSQL Database Migrator é mostrado abaixo.
Modelo de Configuração do Dissipador
"sink" : {
"type" : "file",
"format" : "json",
"dataPath": "</path/to/a/directory>",
"schemaPath" : "<path/to/a/file>",
"pretty" : <true|false>,
"useMultiFiles" : <true|false>,
"chunkSize" : <size in MB>
}
Parâmetros do dissipador
Parâmetros de Configuração Comuns
-
Usar
"type" : "file" -
Usar
"format" : "json" -
Exemplo:
"chunkSize" : 40Observação: esse parâmetro é aplicável SOMENTE quando o parâmetro useMultiFiles é definido como verdadeiro.
Parâmetros de Configuração Exclusivos
-
Finalidade: Especifica o caminho para um diretório em que o NoSQL Database Migrator copia os dados de origem no formato JSON.
O NoSQL Database Migrator cria arquivos JSON no diretório especificado. Se os arquivos existirem, o NoSQL Database Migrator substituirá seu conteúdo pelos dados de origem.
Verifique se o diretório já existe e tem permissões de leitura e gravação.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
"dataPath" : "/home/user/data"Após a migração bem-sucedida, o diretório especificado no parâmetro dataPath incluirá arquivos exportados, conforme mostrado na seguinte amostra:
|--<Table_name>_1_5.json |--<Table_name>_6_10.json ...
-
Finalidade: Especifica o caminho absoluto para um arquivo para gravar informações de esquema de tabela fornecidas pela origem.
Se esse valor não for definido, as informações do esquema de origem não serão migradas para o sumidouro. Se esse valor for especificado, o utilitário migrator gravará o esquema da tabela de origem no arquivo especificado aqui.
As informações do esquema são gravadas como um comando DDL por linha neste arquivo. Se o arquivo não existir no caminho de dados especificado, o NoSQL Database Migrator o criará. Se ele já existir, o NoSQL Database Migrator substituirá seu conteúdo pelos dados de origem. Certifique-se de que o diretório pai no caminho de dados seja válido para o arquivo especificado.
-
Tipo de Dados: string
-
Obrigatório (S/N): N
-
Exemplo:
"schemaPath" : "/home/user/schema_file"
-
Finalidade: Especifica se a saída JSON deve ou não ser embelezada para aumentar a legibilidade.
Se não for especificado, o padrão será falso.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"pretty" : true
-
Finalidade: Especifica se os arquivos exportados (criados no diretório especificado no parâmetro dataPath) serão ou não divididos em vários subarquivos de um tamanho específico ao migrar os dados da tabela do NoSQL Database para um diretório. O parâmetro useMultiFiles assume verdadeiro como padrão.
O NoSQL Database Migrator divide os dados da tabela do NoSQL Database em vários arquivos durante a exportação de dados. Se o parâmetro useMultiFiles estiver definido como verdadeiro, cada arquivo exportado será dividido em subarquivos de tamanho especificados no parâmetro chunkSize.
Exemplo: Após a migração bem-sucedida, o diretório especificado no parâmetro dataPath incluirá os arquivos exportados, conforme mostrado na seguinte amostra:
|--<Table_name>_1_5_0.json |--<Table_name>_1_5_1.json |--<Table_name>_6_10_0.json |--<Table_name>_6_10_1.json |--<Table_name>_6_10_2.json ... -
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"useMultiFiles" : true
Arquivo Parquet
O formato do arquivo de configuração para Parquet File como um coletor do NoSQL Database Migrator é mostrado abaixo.
Modelo de Configuração do Dissipador
"sink" : {
"type" : "file",
"format" : "parquet",
"dataPath": "</path/to/a/dir>",
"chunkSize" : <size in MB>,
"compression": "<SNAPPY|GZIP|NONE>",
"parquetOptions": {
"useLogicalJson": <true|false>,
"useLogicalEnum": <true|false>,
"useLogicalUUID": <true|false>,
"truncateDoubleSpecials": <true|false>
}
}
Parâmetros do dissipador
Parâmetros de Configuração Comuns
-
Usar
"type" : "file" -
Usar
"format" : "parquet" -
Exemplo:
"chunkSize" : 40
Parâmetros de Configuração Exclusivos
-
Finalidade: Especifica o caminho para um diretório para armazenar os dados de tabela NoSQL migrados. Verifique se o diretório já existe e tem permissões de leitura e gravação.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
"dataPath" : "/home/user/migrator/my_table"
-
Finalidade: Especifica o tipo de compactação a ser usado para compactar os dados do Parquet. Os valores válidos são SNAPPY, GZIP e NONE.
Se não for especificado, o padrão será SNAPPY.
-
Tipo de Dados: string
-
Obrigatório (S/N): N
-
Exemplo:
"compression" : "GZIP"
-
Finalidade: Especifica as opções para selecionar tipos lógicos Parquet para colunas NoSQL ENUM, JSON e UUID.
Se você não especificar esse parâmetro, o NoSQL Database Migrator gravará os dados das colunas ENUM, JSON e UUID como String.
-
Tipo de Dados: objeto
-
Obrigatório (S/N): N
-
Finalidade: Especifica se os dados da coluna JSON NoSQL devem ou não ser gravados como tipo JSON lógico Parquet. Para obter mais informações, consulte Definições de Tipo Lógico de Parquet.
Se não for especificado ou definido como falso, o NoSQL Database Migrator gravará os dados da coluna JSON do NoSQL como String.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"useLogicalJson" : true
-
Finalidade: Especifica se deve ou não gravar dados da coluna NoSQL ENUM como tipo ENUM lógico Parquet. Para obter mais informações, consulte Definições de Tipo Lógico de Parquet.
Se não for especificado ou definido como falso, o NoSQL Database Migrator gravará os dados da coluna NoSQL ENUM como String.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"useLogicalEnum" : true
-
Finalidade: Especifica se os dados da coluna UUID NoSQL devem ou não ser gravados como tipo de UUID lógico Parquet. Para obter mais informações, consulte Definições de Tipo Lógico de Parquet.
Se não for especificado ou definido como falso, o NoSQL Database Migrator gravará os dados da coluna UUID do NoSQL como String.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Finalidade: Especifica se os valores +Infinity, -Infinity e NaN duplos serão truncados ou não.
Por default, é definido como
false. Se for definido comotrue,-
Positive_Infinity é truncado para Double.MAX_VALUE.
-
NEGATIVE_INFINITY está truncado para -Double.MAX_VALUE.
-
NaN está truncado para 9.9999999999999990E307.
-
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"truncateDoubleSpecials" : true
Arquivo JSON no Bucket do OCI Object Storage
O formato do arquivo de configuração para o arquivo JSON no bucket do OCI Object Storage como um coletor do NoSQL Database Migrator é mostrado abaixo.
Observação: Os tipos de origem válidos para o OCI Object Storage como sumidouro são nosqldb e nosqldb_cloud.
Modelo de Configuração do Dissipador
"sink" : {
"type" : "object_storage_oci",
"format" : "json",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"chunkSize" : <size in MB>,
"pretty" : <true|false>,
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Parâmetros do dissipador
Parâmetros de Configuração Comuns
-
Usar
"type" : "object_storage_oci" -
Usar
"format" : "json" -
Exemplo:
-
ID da Região:
"endpoint" : "us-ashburn-1" -
Formato do URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Exemplo:
"namespace" : "my-namespace" -
Exemplo:
"bucket" : "my-bucket" -
O esquema é migrado para o arquivo
<prefix>/Schema/schema.ddle os dados de origem são migrados para os arquivos<prefix>/Data/<chunk>.json, em que chunk=000000.json, 000001.json e assim por diante.Exemplo:
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Exemplo:
"chunkSize" : 40 -
Exemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
- Exemplo de credentialsProfile:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemplo:
"useInstancePrincipal" : true -
Exemplo:
"useDelegationToken" : trueObservação: A autenticação com token de delegação só é suportada quando o NoSQL Database Migrator está em execução em um Cloud Shell.
-
useOKEIdentidade da Carga de Trabalho
Exemplo:
"useOKEWorkloadIdentity" : true -
Exemplo:
"useSessionToken" : true
Parâmetro de Configuração Exclusivo
pretty
-
Finalidade: Especifica se a saída JSON deve ou não ser embelezada para aumentar a legibilidade.
Se não for especificado, o padrão será falso.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"pretty" : true
Arquivo Parquet no Bucket do OCI Object Storage
O formato do arquivo de configuração para o arquivo Parquet no bucket do OCI Object Storage como um coletor do NoSQL Database Migrator é mostrado abaixo.
Observação: Os tipos de origem válidos para o tipo de origem do OCI Object Storage são nosqldb e nosqldb_cloud.
Modelo de Configuração do Dissipador
"sink" : {
"type" : "object_storage_oci",
"format" : "parquet",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"chunkSize" : <size in MB>,
"compression": "<SNAPPY|GZIP|NONE>",
"parquetOptions": {
"useLogicalJson": <true|false>,
"useLogicalEnum": <true|false>,
"useLogicalUUID": <true|false>,
"truncateDoubleSpecials": <true|false>
},
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Parâmetros do dissipador
Parâmetros de Configuração Comuns
-
Usar
"type" : "object_storage_oci" -
Usar
"format" : "parquet" -
Exemplo:
-
ID da Região:
"endpoint" : "us-ashburn-1" -
Formato do URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Exemplo:
"namespace" : "my-namespace" -
Exemplo:
"bucket" : "my-bucket" -
Os dados de origem são migrados para os arquivos
<prefix>/Data/<chunk>.parquet, em que chunk=000000.parquet, 000001.parquet e assim por diante.Exemplo:
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Exemplo:
"chunkSize" : 40 -
Exemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Exemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemplo:
"useInstancePrincipal" : true -
Exemplo:
"useDelegationToken" : trueObservação: A autenticação com token de delegação só é suportada quando o NoSQL Database Migrator está em execução em um Cloud Shell.
-
useOKEIdentidade da Carga de Trabalho
Exemplo:
"useOKEWorkloadIdentity" : true -
Exemplo:
"useSessionToken" : true
Parâmetro de Configuração Exclusivo
-
Finalidade: Especifica o tipo de compactação a ser usado para compactar os dados do Parquet. Os valores válidos são SNAPPY, GZIP e NONE.
Se não for especificado, o padrão será SNAPPY.
-
Tipo de Dados: string
-
Obrigatório (S/N): N
-
Exemplo:
"compression" : "GZIP"
-
Finalidade: Especifica as opções para selecionar tipos lógicos Parquet para colunas NoSQL ENUM, JSON e UUID.
Se você não especificar esse parâmetro, o NoSQL Database Migrator gravará os dados das colunas ENUM, JSON e UUID como String.
-
Tipo de Dados: objeto
-
Obrigatório (S/N): N
-
Finalidade: Especifica se os dados da coluna JSON NoSQL devem ou não ser gravados como tipo JSON lógico Parquet. Para obter mais informações, consulte Definições de Tipo Lógico de Parquet.
Se não for especificado ou definido como falso, o NoSQL Database Migrator gravará os dados da coluna JSON do NoSQL como String.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"useLogicalJson" : true
-
Finalidade: Especifica se deve ou não gravar dados da coluna NoSQL ENUM como tipo ENUM lógico Parquet. Para obter mais informações, consulte Definições de Tipo Lógico de Parquet.
Se não for especificado ou definido como falso, o NoSQL Database Migrator gravará os dados da coluna NoSQL ENUM como String.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"useLogicalEnum" : true
-
Finalidade: Especifica se os dados da coluna UUID NoSQL devem ou não ser gravados como tipo de UUID lógico Parquet. Para obter mais informações, consulte Definições de Tipo Lógico de Parquet.
Se não for especificado ou definido como falso, o NoSQL Database Migrator gravará os dados da coluna UUID do NoSQL como String.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Finalidade: Especifica se os valores +Infinity, -Infinity e NaN duplos serão truncados ou não.
Por default, é definido como
false. Se for definido comotrue,-
Positive_Infinity é truncado para Double.MAX_VALUE.
-
NEGATIVE_INFINITY está truncado para -Double.MAX_VALUE.
-
NaN está truncado para 9.9999999999999990E307.
-
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"truncateDoubleSpecials" : true
Oracle NoSQL Database
O formato do arquivo de configuração do Oracle NoSQL Database como um sumidouro do NoSQL Database Migrator é mostrado abaixo.
Modelo de Configuração do Dissipador
"sink" : {
"type": "nosqldb",
"storeName" : "<store name>",
"helperHosts" : ["hostname1:port1","hostname2:port2,..."],
"security" : "</path/to/store/credentials/file>",
"table" : "<fully qualified table name>",
"includeTTL": <true|false>,
"ttlRelativeDate": "<date-to-use in UTC>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>",
"defaultSchema" : <true|false>,
"useSourceSchema" : <true|false>,
"DDBPartitionKey" : <"name:type">,
"DDBSortKey" : "<name:type>"
},
"overwrite" : <true|false>,
"requestTimeoutMs" : <timeout in milli seconds>
}
Parâmetros do dissipador
Parâmetro de Configuração Comum
-
Usar
"type" : "nosqldb" -
Exemplo:
"security" : "/home/user/client.credentials"Exemplo de conteúdo de arquivo de segurança para autenticação baseada em arquivo de senha:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.pwdfile.file=/home/nosql/login.passwd oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)Exemplo de conteúdo de arquivo de segurança para autenticação baseada em wallet:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.wallet.dir=/home/nosql/login.wallet oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL) -
Exemplo:
"requestTimeoutMs" : 5000
Parâmetro de Configuração Exclusivo
-
Finalidade: Nome do armazenamento do Oracle NoSQL Database.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
"storeName" : "kvstore"
-
Finalidade: Uma lista de pares de portas de host e de registro no formato
hostname:port. Delimite cada item na lista usando uma vírgula. Você deve especificar pelo menos um host auxiliar. -
Tipo de Dados: array de strings
-
Obrigatório (S/N): Y
-
Exemplo:
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Finalidade: Especifica o nome da tabela para armazenar os dados migrados.
Formato:
[namespace_name:]<table_name>Se a tabela estiver no namespace DEFAULT, você poderá omitir o
namespace_name. A tabela deve existir no armazenamento durante a migração e seu esquema deve corresponder aos dados de origem.Se a tabela não estiver disponível no sumidouro, você poderá usar o parâmetro
schemaInfopara instruir o NoSQL Database Migrator a criar a tabela no sumidouro. -
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
-
Com o namespace DEFAULT
"table" :"mytable" -
Com um namespace não padrão
"table" : "mynamespace:mytable" -
Para especificar uma tabela filha
"table" : "mytable.child"
Observação: você pode migrar as tabelas filhas de uma origem de dados válida para o Oracle NoSQL Database. O NoSQL Database Migrator copia apenas uma tabela em cada execução. Certifique-se de que a tabela pai seja migrada antes da tabela filho.
-
-
Finalidade: Especifica se os metadados TTL devem ou não ser incluídos nas linhas da tabela fornecidas pela origem ao importar tabelas do Oracle NoSQL Database.
Se você não especificar esse parâmetro, ele assumirá como padrão
false. Nesse caso, o NoSQL Database Migrator não inclui metadados TTL para linhas de tabela fornecidas pela origem ao importar tabelas do Oracle NoSQL Database.Se definido como verdadeiro, a ferramenta NoSQL Database Migrator executará as seguintes verificações nos metadados TTL ao importar uma linha de tabela:
-
Se você importar uma linha que não tenha a definição
_metadata, a ferramenta NoSQL Database Migrator definirá o TTL como 0, o que significa que a linha nunca expirará. -
Se você importar uma linha que tenha a definição
_metadata, a ferramenta NoSQL Database Migrator comparará o valor de TTL com um Horário de Referência quando uma linha for importada. Se a linha já tiver expirado em relação ao Tempo de referência, ela será ignorada. Se a linha não tiver expirado, ela será importada juntamente com o valor TTL. Por padrão, o Tempo de Referência da operação de importação é o tempo atual em milissegundos, obtido de System.currentTimeMillis(), da máquina em que a ferramenta NoSQL Database Migrator está sendo executada. Mas você também pode definir um Horário de Referência personalizado usando o parâmetro de configuraçãottlRelativeDatese quiser estender o tempo de expiração e importar linhas que, de outra forma, expirariam imediatamente.A fórmula para calcular o tempo de expiração de uma linha é a seguinte:
expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
Observação: Como os limites de TTL do Oracle NoSQL estão em horas e dias, em alguns casos, o TTL da linha importada pode ser ajustado para a hora ou o dia mais próximo. Por exemplo, considere uma linha que tenha o valor de expiração
1629709200000 (2021-08-23 09:00:00)e o valor de Tempo de Referência seja1629707962582 (2021-08-23 08:39:22). Aqui, mesmo que a linha não tenha expirado em relação ao Horário de Referência quando esses dados forem importados, o novo TTL da linha será1629712800000 (2021-08-23 10:00:00). -
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"includeTTL" : true
-
Finalidade: Especifique uma data UTC no formato AAAA-MM-DD hh:mm:ss usado para definir a expiração de TTL das linhas da tabela durante a importação para o Oracle NoSQL Database.
Se uma linha da tabela nos dados que você está exportando tiver expirado, você poderá definir o parâmetro ttlRelativeDate como uma data anterior à hora de expiração da linha da tabela nos dados exportados.
Se você não especificar esse parâmetro, ele assumirá como padrão a hora atual em milissegundos, obtida de System.currentTimeMillis(), da máquina em que a ferramenta NoSQL Database Migrator está sendo executada.
-
Tipo de Dados: data
-
Obrigatório (S/N): N
-
Exemplo:
"ttlRelativeDate" : "2021-01-03 04:31:17",Vamos considerar um cenário em que as linhas da tabela expiram após sete dias de 1º de janeiro de 2021. Depois de exportar essa tabela, em 7 de janeiro de 2021, você se depara com um problema com a tabela e decide importar os dados. As linhas da tabela expirarão em um dia (data de expiração dos dados menos o valor padrão do parâmetro de configuração
ttlRelativedate, que é a data atual). Mas se quiser estender a data de expiração das linhas da tabela para cinco dias, em vez de um dia, use o parâmetrottlRelativeDatee escolha uma data anterior. Portanto, nesse cenário, se você quiser estender o tempo de expiração das linhas da tabela por cinco dias, defina o valor dos parâmetros de configuraçãottlRelativeDatecomo 3 de janeiro de 2021, que é usado como Tempo de Referência quando as linhas da tabela são importadas.
-
Finalidade: Especifica o esquema para os dados que estão sendo migrados. Se isso não for especificado, o NoSQL Database Migrator assumirá que a tabela já existe no armazenamento do coletor.
-
Tipo de Dados: Objeto
-
Obrigatório (S/N): N
-
Finalidade: Especifica o caminho absoluto para um arquivo que contém instruções DDL para a tabela NoSQL.
O NoSQL Database Migrator executa os comandos DDL listados neste arquivo antes de migrar os dados.
O NoSQL Database Migrator não suporta mais de uma instrução DDL por linha no arquivo
schemaPath. -
Tipo de Dados: string
-
Obrigatório (S/N): N
Observação:
defaultSchemaeschemaPathsão mutuamente exclusivos. -
Exemplo:
"schemaPath" : "/home/user/schema_file"
-
Finalidade: A definição desse parâmetro como verdadeiro instrui o NoSQL Database Migrator a criar uma tabela com esquema padrão. O esquema padrão é definido pelo próprio migrador. Para obter mais informações sobre definições de esquema padrão, consulte Esquema Padrão em Usando o Oracle NoSQL Data Migrator.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
Observação:
defaultSchemaeschemaPathsão mutuamente exclusivos.
-
Finalidade: Especifica se o sumidouro usa ou não a definição de esquema de tabela fornecida pela origem ao migrar tabelas NoSQL.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
Observação: os parâmetros defaultSchema, schemaPath e useSourceSchema são mutuamente exclusivos. Especifique apenas um destes parâmetros.
-
Exemplo:
-
Com Esquema Padrão:
"schemaInfo" : { "defaultSchema" : true } -
Com um esquema predefinido:
"schemaInfo" : { "schemaPath" : "<complete/path/to/the/schema/definition/file>" } -
Com o esquema de origem:
"schemaInfo" : { "useSourceSchema" : true }
-
-
Finalidade: Especifica a chave de partição DynamoDB e o tipo de Oracle NoSQL Database correspondente a ser usado na tabela do Oracle NoSQL Database. Essa chave será usada como uma chave de partição de tabela do NoSQL DB. Isso só é aplicável quando
defaultSchemaé definido como verdadeiro e o formato de origem édynamodb_json. Consulte Mapeamento de tipos DynamoDB para tipos Oracle NoSQL para obter mais detalhes. -
Obrigatório (S/N): S, se
defaultSchemafor verdadeiro e a origem fordynamodb_json. -
Exemplo:
"DDBPartitionKey" : "PersonID:INTEGER"Observação: Se a chave de partição contiver traço(-) ou ponto(.), o Migrator a substituirá por sublinhado(_), pois o nome da coluna NoSQL não suporta ponto e traço.
-
Finalidade: Especifica a chave de classificação DynamoDB e seu tipo de Oracle NoSQL Database correspondente a ser usado na tabela de destino do Oracle NoSQL Database. Se a tabela de importação do DynamoDB não tiver uma chave de classificação, este atributo não deverá ser definido. Essa chave será usada como uma parte não fragmentada da chave primária na tabela de banco de dados NoSQL. Isso só é aplicável quando
defaultSchemaé definido como verdadeiro e a origem édynamodb_json. Consulte Mapeamento de tipos DynamoDB para tipos Oracle NoSQL para obter mais detalhes. -
Obrigatório (S/N): N
-
Exemplo:
"DDBSortKey" : "Skey:STRING"Observação: Se a chave de classificação contiver traço(-) ou ponto(.), o Migrator a substituirá por sublinhado(_), pois o nome da coluna NoSQL não suporta ponto e traço.
-
Finalidade: Indica o comportamento do NoSQL Database Migrator quando o registro que está sendo migrado da origem já está presente no coletor.
Se o valor for definido como falso, ao migrar tabelas, o NoSQL Database Migrator ignorará os registros para os quais a mesma chave primária já existe no coletor.
Se o valor for definido como verdadeiro, ao migrar tabelas, o NoSQL Database Migrator substituirá os registros para os quais a mesma chave primária já existe no coletor.
Se não for especificado, o padrão será verdadeiro.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"overwrite" : false
Oracle NoSQL Database Cloud Service
O formato do arquivo de configuração do Oracle NoSQL Database Cloud Service como um coletor do NoSQL Database Migrator é mostrado abaixo.
Modelo de Configuração do Dissipador
"sink" : {
"type" : "nosqldb_cloud",
"endpoint" : "<Oracle NoSQL Cloud Service Endpoint>",
"table" : "<table name>",
"compartment" : "<OCI compartment name or id>",
"includeTTL": <true|false>,
"ttlRelativeDate" : "<date-to-use in UTC>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>",
"defaultSchema" : <true|false>,
"useSourceSchema" : <true|false>,
"DDBPartitionKey" : <"name:type">,
"DDBSortKey" : "<name:type>",
"onDemandThroughput" : <true|false>,
"readUnits" : <table read units>,
"writeUnits" : <table write units>,
"storageSize" : <storage size in GB>
},
"credentials" : "</path/to/oci/credential/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>,
"writeUnitsPercent" : <table writeunits percent>,
"requestTimeoutMs" : <timeout in milli seconds>,
"overwrite" : <true|false>
}
Parâmetros do dissipador
Parâmetros de Configuração Comuns
-
Usar
"type" : "nosqldb_cloud" -
Exemplo:
-
ID da Região:
"endpoint" : "us-ashburn-1" -
Formato do URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Exemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Exemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemplo:
"useInstancePrincipal" : true -
Exemplo:
"useDelegationToken" : trueObservação: A autenticação com token de delegação só é suportada quando o NoSQL Database Migrator está em execução em um Cloud Shell.
-
useOKEIdentidade da Carga de Trabalho
Exemplo:
"useOKEWorkloadIdentity" : true -
Exemplo:
"useSessionToken" : true -
Exemplo:
"requestTimeoutMs" : 5000
Parâmetro de Configuração Exclusivo
-
Finalidade: Especifica o nome da tabela para armazenar os dados migrados.
Certifique-se de que essa tabela exista no Oracle NoSQL Database Cloud Service. Caso contrário, você terá que usar o objeto
schemaInfona configuração do coletor para instruir o NoSQL Database Migrator a criar a tabela.O esquema desta tabela deve corresponder aos dados de origem.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo:
-
Para especificar uma tabela
"table" : "mytable" -
Para especificar uma tabela filha
"table" : "mytable.child"
Observação: Você pode migrar as tabelas filhas de uma origem de dados válida para o Oracle NoSQL Database Cloud Service. O NoSQL Database Migrator copia apenas uma tabela em cada execução. Certifique-se de que a tabela pai seja migrada antes da tabela filho.
-
-
Finalidade: Especifica o nome ou o OCID do compartimento no qual a tabela reside.
Se você não fornecer nenhum valor, o padrão será o compartimento root.
Você pode encontrar o OCID do seu compartimento na janela Explorador de Compartimentos, em Governança, na Console do OCI Cloud.
-
Tipo de Dados: string
-
Obrigatório (S/N): S, se a tabela não estiver no compartimento raiz da tenancy OU quando o parâmetro useInstancePrincipal estiver definido como verdadeiro.
Observação: Se o parâmetro useInstancePrincipal estiver definido como verdadeiro, o compartimento deverá especificar o OCID do compartimento e não o nome.
-
Exemplo:
-
Nome do compartimento
"compartment" : "mycompartment" -
Nome do compartimento qualificado com seu compartimento pai
"compartment" : "parent.childcompartment" -
Não foi fornecido nenhum valor. O padrão é o compartimento raiz.
"compartment": "" -
OCID do Compartimento
"compartment" : "ocid1.tenancy.oc1...4ksd"
-
-
Finalidade: Especifica se os metadados TTL devem ou não ser incluídos nas linhas da tabela fornecidas pela origem ao importar tabelas do Oracle NoSQL Database.
Se você não especificar esse parâmetro, ele assumirá como padrão
false. Nesse caso, o NoSQL Database Migrator não inclui metadados TTL para linhas de tabela fornecidas pela origem ao importar tabelas do Oracle NoSQL Database.Se definido como verdadeiro, a ferramenta NoSQL Database Migrator executará as seguintes verificações nos metadados TTL ao importar uma linha de tabela:
-
Se você importar uma linha que não tenha a definição
_metadata, a ferramenta NoSQL Database Migrator definirá o TTL como 0, o que significa que a linha nunca expirará. -
Se você importar uma linha que tenha a definição
_metadata, a ferramenta NoSQL Database Migrator comparará o valor de TTL com um Horário de Referência quando uma linha for importada. Se a linha já tiver expirado em relação ao Tempo de referência, ela será ignorada. Se a linha não tiver expirado, ela será importada juntamente com o valor TTL. Por padrão, o Tempo de Referência da operação de importação é o tempo atual em milissegundos, obtido de System.currentTimeMillis(), da máquina em que a ferramenta NoSQL Database Migrator está sendo executada. Mas você também pode definir um Horário de Referência personalizado usando o parâmetro de configuraçãottlRelativeDatese quiser estender o tempo de expiração e importar linhas que, de outra forma, expirariam imediatamente.A fórmula para calcular o tempo de expiração de uma linha é a seguinte:
expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
Observação: Como os limites de TTL do Oracle NoSQL estão em horas e dias, em alguns casos, o TTL da linha importada pode ser ajustado para a hora ou o dia mais próximo. Por exemplo, considere uma linha que tenha o valor de expiração
1629709200000 (2021-08-23 09:00:00)e o valor de Tempo de Referência seja1629707962582 (2021-08-23 08:39:22). Aqui, mesmo que a linha não tenha expirado em relação ao Horário de Referência quando esses dados forem importados, o novo TTL da linha será1629712800000 (2021-08-23 10:00:00). -
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"includeTTL" : true
-
Finalidade: Especifique uma data UTC no formato AAAA-MM-DD hh:mm:ss usado para definir a expiração de TTL das linhas da tabela durante a importação para o Oracle NoSQL Database.
Se uma linha da tabela nos dados que você está exportando tiver expirado, você poderá definir o parâmetro
ttlRelativeDatecomo uma data anterior ao horário de expiração da linha da tabela nos dados exportados.Se você não especificar esse parâmetro, ele assumirá como padrão a hora atual em milissegundos, obtida de System.currentTimeMillis(), da máquina em que a ferramenta NoSQL Database Migrator está sendo executada.
-
Tipo de Dados: data
-
Obrigatório (S/N): N
-
Exemplo:
"ttlRelativeDate" : "2021-01-03 04:31:17",Vamos considerar um cenário em que as linhas da tabela expiram após sete dias de 1º de janeiro de 2021. Depois de exportar essa tabela, em 7 de janeiro de 2021, você se depara com um problema com a tabela e decide importar os dados. As linhas da tabela expirarão em um dia (data de expiração dos dados menos o valor padrão do parâmetro de configuração
ttlRelativedate, que é a data atual). Mas se quiser estender a data de expiração das linhas da tabela para cinco dias, em vez de um dia, use o parâmetrottlRelativeDatee escolha uma data anterior. Portanto, nesse cenário, se você quiser estender o tempo de expiração das linhas da tabela por cinco dias, defina o valor dos parâmetros de configuraçãottlRelativeDatecomo 3 de janeiro de 2021, que é usado como Tempo de Referência quando as linhas da tabela são importadas.
-
Finalidade: Especifica o esquema para os dados que estão sendo migrados.
Se você não especificar esse parâmetro, o NoSQL Database Migrator assumirá que a tabela já existe no Oracle NoSQL Database Cloud Service.
Se esse parâmetro não for especificado e a tabela não existir no sumidouro, a migração falhará.
-
Tipo de Dados: Objeto
-
Obrigatório (S/N): N
-
Finalidade: Especifica o caminho absoluto para um arquivo que contém instruções DDL para a tabela NoSQL.
O NoSQL Database Migrator executa os comandos DDL listados neste arquivo antes de migrar os dados.
O NoSQL Database Migrator não suporta mais de uma instrução DDL por linha no arquivo
schemaPath. -
Tipo de Dados: string
-
Obrigatório (S/N): N
Observação: defaultSchema e schemaPath são mutuamente exclusivos.
- Exemplo:
"schemaPath" : "/home/user/schema_file"
-
Finalidade: A definição desse parâmetro como Sim instrui o NoSQL Database Migrator a criar uma tabela com o esquema padrão. O esquema padrão é definido pelo próprio migrador. Para obter mais informações sobre definições de esquema padrão, consulte Esquema Padrão em Usando o Oracle NoSQL Data Migrator.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
Observação:
defaultSchemaeschemaPathsão mutuamente exclusivos.
-
Finalidade: Especifica se o sumidouro usa ou não a definição de esquema de tabela fornecida pela origem ao migrar tabelas NoSQL.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
Observação: os parâmetros defaultSchema, schemaPath e useSourceSchema são mutuamente exclusivos. Especifique apenas um destes parâmetros.
-
Exemplo:
-
Com Esquema Padrão:
"schemaInfo": { "defaultSchema": true, "readUnits": 100, "writeUnits": 60, "storageSize": 1 } -
Com um esquema predefinido:
"schemaInfo": { "schemaPath": "<complete/path/to/the/schema/definition/file>", "readUnits": 100, "writeUnits": 100, "storageSize": 1 } -
Com o esquema de origem:
"schemaInfo": { "useSourceSchema": true, "readUnits": 100, "writeUnits": 60, "storageSize": 1 }
-
-
Finalidade: Especifica a chave de partição DynamoDB e o tipo de Oracle NoSQL Database correspondente a ser usado na tabela do Oracle NoSQL Database. Essa chave será usada como uma chave de partição de tabela do NoSQL DB. Isso só é aplicável quando
defaultSchemaé definido como verdadeiro e o formato de origem édynamodb_json. Consulte Mapeamento de tipos DynamoDB para tipos Oracle NoSQL para obter mais detalhes. -
Obrigatório (S/N): S, se
defaultSchemafor verdadeiro e a origem fordynamodb_json. -
Exemplo:
"DDBPartitionKey" : "PersonID:INTEGER"Observação: Se a chave de partição contiver traço(-) ou ponto(.), o Migrator a substituirá por sublinhado(_), pois o nome da coluna NoSQL não suporta ponto e traço.
-
Finalidade: Especifica a chave de classificação DynamoDB e seu tipo de Oracle NoSQL Database correspondente a ser usado na tabela de destino do Oracle NoSQL Database. Se a tabela de importação do DynamoDB não tiver uma chave de classificação, este atributo não deverá ser definido. Essa chave será usada como uma parte não fragmentada da chave primária na tabela de banco de dados NoSQL. Isso só é aplicável quando
defaultSchemaé definido como verdadeiro e a origem édynamodb_json. Consulte Mapeamento de tipos DynamoDB para tipos Oracle NoSQL para obter mais detalhes. -
Obrigatório (S/N): N
-
Exemplo:
"DDBSortKey" : "Skey:STRING"Observação: Se a chave de classificação contiver traço(-) ou ponto(.), o Migrator a substituirá por sublinhado(_), pois o nome da coluna NoSQL não suporta ponto e traço.
-
Finalidade: Especifica a criação da tabela com throughput de leitura e gravação sob demanda. Se esse parâmetro não for definido, a tabela será criada com capacidade provisionada.
O valor padrão é
false.
Observação: Este parâmetro não é aplicável para tabelas filho, pois elas compartilham o throughput da tabela pai de nível superior.
-
Tipo de Dados: Booliano
-
Obrigatório (S/N): N
-
Exemplo:
"onDemandThroughput" : "true"
-
Finalidade: Especifica o throughput de leitura da nova tabela.
div class="infoboxnote" markdown="1">
Observação:
-
Este parâmetro não se aplica a tabelas provisionadas com capacidade sob demanda.
-
Este parâmetro não se aplica a tabelas filho, pois elas compartilham o throughput de leitura da tabela pai de nível superior.
</div>
-
-
Tipo de Dados: inteiro
-
Obrigatório (S/N): S, se a tabela não for uma tabela filha ou se o parâmetro schemaInfo.onDemandThroughput estiver definido como
false, caso contrário, N. -
Exemplo:
"readUnits" : 100
-
Finalidade: Especifica o throughput de gravação da nova tabela.
Observação:
- Este parâmetro não se aplica a tabelas provisionadas com capacidade sob demanda.
- Este parâmetro não se aplica a tabelas filho, pois elas compartilham o throughput de gravação da tabela pai de nível superior.
-
Tipo de Dados: inteiro
-
Obrigatório (S/N): S, se a tabela não for uma tabela filha ou se o parâmetro schemaInfo.onDemandThroughput estiver definido como
false, caso contrário, N. -
Exemplo:
"writeUnits" : 100
-
Finalidade: Especifica o tamanho do armazenamento da nova tabela em GB.
Observação: esse parâmetro não se aplica a tabelas filho, pois elas compartilham o tamanho do armazenamento da tabela pai de nível superior.
-
Tipo de Dados: inteiro
-
Obrigatório (S/N): S, se a tabela não for uma tabela filho, caso contrário, N.
-
Exemplo:
-
Com
schemaPath"schemaInfo" : { "schemaPath" : "</path/to/a/schema/file>", "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 } -
Com
defaultSchema"schemaInfo" : { "defaultSchema" :Yes, "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 }
-
-
Finalidade: Especifica a Porcentagem de unidades de gravação de tabela a serem usadas durante a atividade de migração. O tempo necessário para migrar dados é diretamente proporcional a esse atributo.
O valor padrão é 90. O intervalo válido é qualquer número inteiro entre 1 e 100.
Para saber como usar esse atributo para melhorar a velocidade de migração de dados, consulte Diagnosticando e Solucionando Problemas do Oracle NoSQL Database Migrator
-
Tipo de Dados: inteiro
-
Obrigatório (S/N): N
-
Exemplo:
"writeUnitsPercent" : 90
-
Finalidade: Indica o comportamento do NoSQL Database Migrator quando o registro que está sendo migrado da origem já está presente no coletor.
Se o valor for definido como falso, ao migrar tabelas, o NoSQL Database Migrator ignorará os registros para os quais a mesma chave primária já existe no coletor.
Se o valor for definido como verdadeiro, ao migrar tabelas, o NoSQL Database Migrator substituirá os registros para os quais a mesma chave primária já existe no coletor.
Se não for especificado, o padrão será verdadeiro.
-
Tipo de Dados: booliano
-
Obrigatório (S/N): N
-
Exemplo:
"overwrite" : false
Modelos de Configuração de Transformação
Este tópico explica os parâmetros de configuração para as diferentes transformações suportadas pelo Oracle NoSQL Database Migrator. Para obter o modelo completo do arquivo de configuração, consulte Arquivo de Configuração em Terminologia usada com o NoSQL Data Migrator.
O Oracle NoSQL Database Migrator permite que você modifique os dados, ou seja, adicione transformações de dados como parte da atividade de migração. Você pode definir várias transformações em uma única migração. Nesse caso, a ordem das transformações é vital porque os dados de origem passam por cada transformação na ordem fornecida. A saída de uma transformação se torna a entrada para a próxima no pipeline do migrador.
As diferentes transformações suportadas pelo NoSQL Data Migrator são:
Tabela - Transformações
| Atributo de Configuração de Transformação | Você pode usar essa transformação para... |
|---|---|
ignoreFields |
Ignore as colunas identificadas da linha de origem antes de gravar na pia. |
includeFields |
Inclua as colunas identificadas na linha de origem antes de gravar na pia. |
renameFields |
Renomeie as colunas identificadas da linha de origem antes de gravar no dissipador. |
aggregateFields |
Agrega várias colunas da origem em uma única coluna na pia. Como parte dessa transformação, você também pode identificar as colunas que deseja excluir na agregação. Esses campos serão ignorados da coluna agregada. |
Você pode encontrar o modelo de configuração para cada transformação suportada abaixo.
ignorarCampos
O formato do arquivo de configuração para a transformação ignoreFields é mostrado abaixo.
Modelo de Configuração de Transformação
"transforms" : {
"ignoreFields" : ["<field1>","<field2>",...]
}
Parâmetro de Transformação
ignorarCampos
-
Finalidade: Um array dos nomes das colunas a serem ignorados dos registros de origem.
Observação: você só pode fornecer campos de nível superior. As transformações não podem ser aplicadas aos dados nos campos aninhados.
-
Tipo de Dados: array de strings
-
Obrigatório (S/N): Y
-
Exemplo: Para ignorar as colunas chamadas "nome" e "endereço" do registro de origem:
"ignoreFields" : ["name","address"]
Incluir campos
O formato do arquivo de configuração para a transformação includeFields é mostrado abaixo.
Modelo de Configuração de Transformação
"transforms" : {
"includeFields" : ["<field1>","<field2>",...]
}
Parâmetro de Transformação
Incluir campos
-
Finalidade: Um array dos nomes das colunas a serem incluídos nos registros de origem. Ele somente inclui os campos especificados no array; o restante dos campos é ignorado.
Observação: A ferramenta NoSQL Database Migrator gerará um erro se você especificar um array vazio. Além disso, você pode especificar apenas os campos de nível superior. A ferramenta NoSQL Database Migrator não aplica transformações aos dados nos campos aninhados.
-
Tipo de Dados: array de strings
-
Obrigatório (S/N): Y
-
Exemplo: Para incluir as colunas "age" e "gender" do registro de origem:
"includeFields" : ["age","gender"]
renomearCampos
O formato do arquivo de configuração para a transformação renameFields é mostrado abaixo.
Modelo de Configuração de Transformação
"transforms" : {
"renameFields" : {
"<old_name>" : "<new_name>",
"<old_name>" : "<new_name>,"
.....
}
}
Parâmetro de Transformação
renomearCampos
-
Finalidade: pares Chave-Valor dos nomes antigo e novo das colunas a serem renomeadas.
Observação: você só pode fornecer campos de nível superior. As transformações não podem ser aplicadas nos dados nos campos aninhados.
-
Tipo de Dados: objeto JSON
-
Obrigatório (S/N): Y
-
Exemplo: Para renomear a coluna chamada "residence" para "address" e a coluna chamada "_id" para "id":
"renameFields" : { "residence" : "address", "_id" : "id" }
Campos agregados
O formato do arquivo de configuração para a transformação aggregateFields é mostrado abaixo.
Modelo de Configuração de Transformação
"transforms" : {
"aggregateFields" : {
"fieldName" : "name of the new aggregate field",
"skipFields" : ["<field1>","<field2">,...]
}
}
Parâmetro de Transformação
Campos agregados
-
Finalidade: Nome do campo agregado na pia.
-
Tipo de Dados: string
-
Obrigatório (S/N): Y
-
Exemplo: Se o registro fornecido for:
{ "id" : 100, "name" : "john", "address" : "USA", "age" : 20 }Se a transformação agregada for:
"aggregateFields" : { "fieldName" : "document", "skipFields" : ["id"] }A coluna agregada na pia se parece com:
{ "id": 100, "document": { "name": "john", "address": "USA", "age": 20 } }
Mapeamento de tipos DynamoDB para tipos Oracle NoSQL
A tabela abaixo mostra o mapeamento dos tipos DynamoDB para os tipos Oracle NoSQL.
Tabela - Mapeando o tipo DynamoDB para o tipo Oracle NoSQL
| # | Tipo de DynamoDB | Tipo JSON para coluna JSON NoSQL | Tipo de Oracle NoSQL |
|---|---|---|---|
| 1 | String (S) | String JSON | STRING |
| 2 | Tipo de Número (N) | Número JSON | INTEIRO/LONGO/FLUTUANTE/DUPLO/NÚMERO |
| 3 | Booliano (BOOL) | Booliano JSON | BOOLEAN |
| 4 | Tipo binário (B) - Buffer de bytes | String JSON codificada em BASE-64 | BINARY |
| 5 | NULL | JSON nulo | NULL |
| 6 | Conjunto de strings (SS) | Array JSON de Strings | ARRAY(STRING) |
| 7 | Conjunto de Números (NS) | Array de Números JSON | ARRAY(INTEIRO/LONGO/FLUTUANTE/DUPLO/NÚMERO) |
| 8 | Conjunto Binário (BS) | Array JSON de Strings codificadas por Base-64 | ARRAY(BINÁRIO) |
| 9 | LISTA (L) | Matriz de JSON | ARRAY(JSON) |
| 10 | MAPA (M) | Objeto JSON | JSON |
| 11 | CHAVE DE PARTIÇÃO | NA | PRIMARY KEY e SHARD KEY |
| 12 | CHAVE DE CLASSIFICAÇÃO | NA | PRIMARY KEY |
| 13 | Nomes de atributo com traço e ponto | Nomes de campo JSON com sublinhado | Nomes de colunas com sublinhado |
Poucos pontos adicionais a serem considerados ao mapear tipos DynamoDB para tipos Oracle NoSQL:
-
DynamoDB Suporta apenas um tipo de dados para Números e pode ter até 38 dígitos de precisão, ao contrário do Oracle NoSQL suporta muitos tipos para escolher com base no intervalo e na precisão dos dados. Você pode selecionar o tipo de Número apropriado que se adapta ao intervalo de seus dados de entrada. Se você não tiver certeza da natureza dos dados, o tipo NoSQL NUMBER poderá ser usado.
-
DynamoDB Suporta apenas um tipo de dados para Números e pode ter até 38 dígitos de precisão, ao contrário do Oracle NoSQL suporta muitos tipos para escolher com base no intervalo e na precisão dos dados. Você pode selecionar o tipo de Número apropriado que se adapta ao intervalo de seus dados de entrada. Se você não tiver certeza da natureza dos dados, o tipo NoSQL NUMBER poderá ser usado.
-
A chave de partição no DynamoDB tem um limite de 2048 bytes, mas o Oracle NoSQL Cloud Service tem um limite de 64 bytes para a chave Primária/Chave de partição.
-
A chave de classificação no DynamoDB tem um limite de 1024 bytes, mas o Oracle NoSQL Cloud Service tem um limite de 64 bytes para a chave Primária.
-
Os nomes de atributo no DynamoDB podem ter 64 KB, mas os nomes de coluna do serviço Oracle NoSQL Cloud têm um limite de 64 caracteres.
Mapeamento de Tipos de Dados Oracle NoSQL para Parquet
Descreve o mapeamento de tipos de dados do Oracle NoSQL para tipos de dados Parquet.
| Tipo NoSQL | Tipo de Parquet |
|---|---|
| BOOLEAN | BOOLEAN |
| INTEGER | INT32 |
| LONG | INT64 |
| FLOAT | DOUBLE |
| DOUBLE | DOUBLE |
| BINARY | BINARY |
| FIXO_BINÁRIO | BINARY |
| STRING | BINÁRIO (STRING) |
| ENUM | BINÁRIO (STRING) ou BINARY(ENUM), se o ENUM lógico estiver configurado |
| UUID | BINÁRIO (STRING) ou FIXED_BINARY(16), se o UUID lógico estiver configurado |
| TIMESTAMP(p) | INT64(TIMESTAMP(p)) |
| NUMBER | DOUBLE |
| field_name ARRAY(T) | |
| nome_campo MAP(T) | |
| field_name RECORD(K1 T1 N1, K ⁇ 2 T2 N2, ....) em que: K = Nome da chave T = Tipo N = Anulável ou não |
|
| JSON | BINÁRIO (STRING) ou BINARY(JSON), se o JSON lógico estiver configurado |
Observação: quando o tipo de Número NoSQL é convertido para o tipo Parquet Double, pode haver alguma perda de precisão caso o valor não possa ser representado em Double. Se o número for muito grande para ser representado como Duplo, ele será convertido em Double.NEGATIVE_INFINITY ou Double.POSITIVE_INFINITY.
Mapeamento da tabela DynamoDB para a tabela do Oracle NoSQL
No DynamoDB, uma tabela é uma coleção de itens e cada item é uma coleção de atributos. Cada item da tabela tem um identificador exclusivo ou uma chave primária. Exceto a chave primária, a tabela é sem esquema. Cada item pode ter seus próprios atributos distintos.
O DynamoDB suporta dois tipos diferentes de chaves primárias:
-
Chave da partição: Uma chave primária simples, composta por um atributo conhecido como chave da partição. O DynamoDB usa o valor da chave de partição como entrada para uma função de hash interna. A saída da função de hash determina a partição na qual o item será armazenado.
-
Chave de partição e chave de classificação: Como chave primária composta, esse tipo de chave é composto de dois atributos. O primeiro atributo é a chave de partição e o segundo é a chave de classificação. O DynamoDB usa o valor da chave de partição como entrada para uma função de hash interna. A saída da função de hash determina a partição na qual o item será armazenado. Todos os itens com o mesmo valor de chave de partição são armazenados juntos, em ordem classificada por valor de chave de classificação.
Por outro lado, as tabelas do Oracle NoSQL suportam modelos de dados flexíveis com design sem esquema e sem esquema.
Há duas maneiras diferentes de modelar uma tabela DynamoDB:
-
Modelando a tabela do DynamoDB como um documento JSON (Recomendado): Nesta modelagem, você mapeia todos os atributos das tabelas do Dynamo DB em uma coluna JSON da tabela NoSQL, exceto chave de partição e chave de classificação. Você modelará a chave de partição e a chave de classificação como as colunas de Chave Primária da tabela NoSQL. Você usará a transformação
AggregateFieldspara agregar dados de chave não primária em uma coluna JSON.Observação: O Migrator fornece uma configuração amigável
defaultSchemapara criar automaticamente uma tabela DDL sem esquema que também agrega atributos em uma coluna JSON. -
Modelando a tabela DynamoDB como colunas fixas na tabela NoSQL: Nesta modelagem, para cada atributo da tabela DynamoDB, você criará uma coluna na tabela NoSQL conforme especificado em Mapeamento de tipos DynamoDB para tipos Oracle NoSQL. Você modelará a chave de partição e classificará os atributos da chave como chave(s) Primária(s). Isso deve ser usado somente quando você tiver certeza de que a importação do esquema da tabela DynamoDB é fixa e cada item tem valores para a maioria dos atributos. Se os itens do DynamoDB não tiverem atributos comuns, isso poderá resultar em muitas colunas NoSQL com valores vazios.
Observação: é altamente recomendável usar tabelas sem esquema ao migrar dados do DynamoDB para o Oracle NoSQL Database devido à natureza das tabelas do DynamoDB serem sem esquema. Isto é especialmente para tabelas grandes onde o conteúdo de cada registro pode não ser uniforme na tabela.
Diagnosticando e Solucionando Problemas do Oracle NoSQL Database Migrator
Saiba mais sobre os desafios gerais que você pode enfrentar ao usar o , e como resolvê-los.
Falha na migração. Como posso resolver isso?
Uma falha na migração de dados pode ocorrer devido a vários motivos subjacentes. As principais causas estão listadas abaixo:
Tabela - Causas da Falha de Migração
| Mensagem de Erro | Definição | Resolução |
|---|---|---|
Failed to connect to Oracle NoSQL Database |
O migrador não pôde estabelecer uma conexão com o Banco de Dados NoSQL. |
|
Failed to connect to Oracle NoSQL Database Cloud Service |
O migrador não pôde estabelecer uma conexão com o Oracle NoSQL Database Cloud Service. |
|
Table not found |
A tabela identificada para a migração não pôde ser localizada pelo NoSQL Database Migrator. | Para a Origem:
Para o dissipador:
|
DDL Execution failed |
Os comandos DDL fornecidos no arquivo de definição do esquema de entrada são inválidos. |
|
failed to write record to the sink table with java.lang.IllegalArgumentException |
O registro de entrada não corresponde ao esquema de tabela do sumidouro. |
|
Request timeout |
A operação da fonte ou da pia não foi concluída dentro do tempo esperado. |
|
O que devo considerar antes de reiniciar uma migração com falha?
Quando uma tarefa de migração de dados falhar, o sumidouro estará em um estado intermediário contendo os dados importados até o ponto de falha. Você pode identificar os detalhes do erro e da falha nos logs e reiniciar a migração após diagnosticar e corrigir o erro. Uma migração reiniciada é reiniciada, processando todos os dados desde o início. Não há como fazer checkpoint e reiniciar a migração do ponto de falha. Portanto, o NoSQL Database Migrator substitui qualquer registro que já tenha sido migrado para o coletor.
O tempo gasto para a migração de dados depende de vários fatores, como volume de dados sendo migrados, velocidade da rede e carga atual no banco de dados. No caso de um serviço de nuvem, a velocidade da migração também depende do throughput de leitura e do throughput de gravação provisionado. Assim, para melhorar a velocidade de migração, você pode:
-
Considere executar a migração fora do horário de expediente quando a carga no banco de dados for menor.
-
Considere alocar a VM na qual o NoSQL Database Migrator será executado, definir a origem de dados e definir o dissipador de dados na mesma região da OCI para garantir latências de rede mínimas.
-
No caso do Oracle NoSQL Database Cloud Service, verifique se o armazenamento alocado para a tabela é suficiente. Se o NoSQL Database Migrator não estiver criando a tabela, você poderá aumentar o throughput de gravação. Se o migrador estiver criando a tabela, considere especificar um valor mais alto para o parâmetro
schemaInfo.writeUnitsna configuração do coletor. Depois que a migração de dados for concluída, você poderá reduzir esse valor.Observação: não há limitação no número de vezes que você pode aumentar o throughput ou os limites de armazenamento. Você só pode diminuir os limites de throughput ou armazenamento até 4 vezes em um período de 24 horas. Consulte Limites da Nuvem e Modelos de Configuração do Sink.
O utilitário Migrator é inerentemente projetado para obter maior velocidade de migração, processando vários fluxos em paralelo. Os seguintes pontos sugerem como aproveitar esse recurso para vários cenários de migração:
-
Migrando do Oracle NoSQL Database Cloud Service/tabelas locais para o File System/Object Storage:
Defina os parâmetros useMultiFiles e chunkSize na configuração Migrator. O parâmetro
useMultiFilescria vários arquivos/objetos no sumidouro. O parâmetrochunkSizedetermina o tamanho de cada arquivo durante a exportação de dados.Por exemplo: Para exportar dados de 2 GB, definir o parâmetro
useMultiFilescomo verdadeiro e o parâmetrochunkSizecomo 40 MB faz com que o utilitário Migrator grave 50 arquivos de 40 MB cada.Observação: No momento, o utilitário Migrator pode processar 100 fluxos em paralelo. Portanto, defina o parâmetro
chunkSizecomo um valor de tamanho de arquivo ideal, de forma que o utilitário Migrator crie no máximo 100 arquivos durante a exportação de dados. -
Migrando de um Sistema de Arquivos/Armazenamento de Objetos para o Oracle NoSQL Database Cloud Service/pia on-premises:
-
Se o seu sistema de Arquivos/Object Storage tiver exportado dados que contêm vários arquivos/objetos de uma migração anterior, o utilitário Migrator processará automaticamente os arquivos em paralelo para obter maior velocidade de migração ao importar os dados.
-
Se você estiver migrando dados de outros sistemas de arquivos externos/Armazenamento de objetos, considere dividir dados em vários arquivos/vários objetos na origem de dados.
Observação:
-
No caso do sumidouro do Oracle NoSQL Database Cloud Service, configure o throughput de gravação e a percentual de unidades de gravação da tabela suficientes para processar até 100 streams durante a operação de migração.
-
Se você tiver mais de 100 arquivos de origem, o utilitário Migrator criará no máximo 100 fluxos e distribuirá os arquivos entre eles durante a importação de dados. Os arquivos em cada fluxo serão migrados sequencialmente.
-
-
Tenho uma migração de longa execução envolvendo conjuntos de dados enormes. Como posso acompanhar o progresso da migração?
Você pode ativar o registro em log adicional para rastrear o andamento de uma migração de longa execução. Para controlar o comportamento de log do Oracle NoSQL Database Migrator, você deve definir o nível desejado de log no arquivo logging.properties. Esse arquivo é fornecido com o pacote NoSQL Database Migrator e está disponível no diretório em que o Oracle NoSQL Database Migrator foi descompactado. Os diferentes níveis de log na ordem de aumento do nível de detalhamento são OFF, SEVERE, WARNING, INFO, FINE, e ALL.
A definição do nível de log como OFF desativa todas as informações de log, enquanto a definição do nível de log como ALL fornece as informações completas do log.
O nível de log padrão é WARNING. Toda a saída de log é configurada para ir para a console por padrão.
Você pode ver comentários no arquivo logging.properties para saber sobre cada nível de log.