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.

bucket

chunkSize (Tamanho do bloco)

preferenciais

credentialsProfile

ponto final

formato

namespace

prefixo

requestTimeoutMs

segurança

tipo

useDelegationToken

useInstancePrincipal

useOKEWorkloadIdentity

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.

useSessionToken

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:

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.

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

caminho de dados

schemaInfo

schemaInfo.schemaPath

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

Parâmetros de Configuração Exclusivos

schemaInfo

schemaInfo.schemaObject

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

caminho de dados

schemaInfo

schemaInfo.schemaPath

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

  1. "credentials" : "/home/user/.oci/config"

  2. "credentials" : "/home/user/security/config"

Parâmetros de Configuração Exclusivos

schemaInfo

schemaInfo.schemaObject

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

Parâmetros de Configuração Exclusivos

s3URL

preferenciais

credentialsProfile

ttlAttributeName

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

caminho de dados

ttlAttributeName

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

Parâmetros de Configuração Exclusivos

storeName

helperHosts

tabela

includeTTL

queryFilter

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:

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

Parâmetros de Configuração Exclusivos

tabela

compartimento

Observação: Se o parâmetro useInstancePrincipal estiver definido como verdadeiro, o compartimento deverá especificar o OCID do compartimento e não o nome.

readUnitsPercentual

includeTTL

queryFilter

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:

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

caminho de dados

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.

hasHeader

colunas

csvOptions

csvOptions.encoding

csvOptions.trim

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

Parâmetros de Configuração Exclusivos

hasHeader

colunas

csvOptions

csvOptions.encoding

csvOptions.trim

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.

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

Parâmetros de Configuração Exclusivos

caminho de dados

caminhoesquema

pretty

useMultiFiles

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

Parâmetros de Configuração Exclusivos

caminho de dados

compactação

parquetOptions

parquetOptions.useLogicalJson

parquetOptions.useLogicalEnum

parquetOptions.useLogicalUUID

parquetOptions.truncateDoubleSpecials

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

Parâmetro de Configuração Exclusivo

pretty

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

Parâmetro de Configuração Exclusivo

compactação

parquetOptions

parquetOptions.useLogicalJson

parquetOptions.useLogicalEnum

parquetOptions.useLogicalUUID

parquetOptions.truncateDoubleSpecials

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

Parâmetro de Configuração Exclusivo

storeName

helperHosts

tabela

includeTTL

ttlRelativeDate

schemainfo

schemaInfo.schemaPath

schemaInfo.defaultSchema

schemaInfo.useSourceSchema

schemaInfo.DDBPartitionKey

schemaInfo.DDBSortKey

overwrite

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

Parâmetro de Configuração Exclusivo


tabela


compartimento


includeTTL


ttlRelativeDate


schemaInfo


schemaInfo.schemaPath

Observação: defaultSchema e schemaPath são mutuamente exclusivos.


schemaInfo.defaultSchema


schemaInfo.useSourceSchema


schemaInfo.DDBPartitionKey


schemaInfo.DDBSortKey


schemaInfo.onDemandThroughput

Observação: Este parâmetro não é aplicável para tabelas filho, pois elas compartilham o throughput da tabela pai de nível superior.


schemaInfo.readUnits


schemaInfo.writeUnits


schemaInfo.storageSize


writeUnitsPercentual


overwrite

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

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

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

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

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:

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)
group field_name(LIST) { repeated group list { required T element } }
nome_campo MAP(T)
group field_name (MAP) { repeated group key_value (MAP_KEY_VALUE) { required binary key (STRING); required T value; } }
field_name RECORD(K1 T1 N1, K ⁇ 2 T2 N2, ....)

em que:

K = Nome da chave

T = Tipo

N = Anulável ou não

group field_name { ni == true ? optional Ti ki : required Ti ki  }
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:

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:

  1. 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 AggregateFields para agregar dados de chave não primária em uma coluna JSON.

    Observação: O Migrator fornece uma configuração amigável defaultSchema para criar automaticamente uma tabela DDL sem esquema que também agrega atributos em uma coluna JSON.

  2. 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.
  • Verifique se os valores dos atributos storeName e helperHosts no arquivo JSON de configuração são válidos e se os hosts estão acessíveis.
  • Para um armazenamento seguro, verifique se o arquivo de segurança é válido com os valores corretos de nome de usuário e senha.
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.
  • Verifique se o URL do ponto final ou o nome da região especificado no arquivo JSON de configuração está correto.
  • Verifique se o arquivo de credenciais do OCI está disponível no caminho especificado no arquivo JSON de configuração.
  • Certifique-se de que as credenciais do OCI fornecidas nas credenciais do OCI sejam válidas.
Table not found A tabela identificada para a migração não pôde ser localizada pelo NoSQL Database Migrator.

Para a Origem:

  • Verifique se a tabela está presente no banco de dados de origem.
  • Certifique-se de que a tabela seja qualificada com seu namespace no arquivo JSON de configuração, se a tabela for criada em um namespace não padrão.
  • Verifique se você tem a autorização de leitura/gravação necessária para acessar a tabela.
  • Se a origem for o Oracle NoSQL Database Cloud Service, verifique se o nome do compartimento válido foi especificado no arquivo JSON de configuração e certifique-se de ter a autorização necessária para acessar a tabela.

Para o dissipador:

  • Verifique se a tabela está presente no dissipador. Se não existir, você deverá criar a tabela manualmente ou usar a configuração schemaInfo para criá-la por meio da migração.
DDL Execution failed Os comandos DDL fornecidos no arquivo de definição do esquema de entrada são inválidos.
  • Verifique a sintaxe dos comandos DDL no arquivo schemaPath.
  • Certifique-se de que haja apenas uma instrução DDL por linha no arquivo schemaPath.
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.
  • Verifique se os tipos de dados e os nomes de coluna especificados na tabela sumidouro de destino correspondem ao esquema da tabela sumidouro.
  • Se você aplicou qualquer transformação, verifique se os registros transformados correspondem ao esquema da tabela de sumidouros.
Request timeout A operação da fonte ou da pia não foi concluída dentro do tempo esperado.
  • Verifique as conexões de rede.
  • Verifique se o Banco de Dados NoSQL está ativo e em execução.
  • Tente aumentar o valor requestTimeout no arquivo JSON de configuração.

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.

Melhores Práticas

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:

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:

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.