Oracle NoSQL Database Migrator Reference

了解可用于 Oracle NoSQL Database Migrator 的源、接收器和转换配置模板参数。

本文章包含以下主题:

参数

NoSQL Database Migrator 需要一个配置文件,您可以在其中定义执行迁移活动的所有参数。一些参数在多个源和汇之间很常见。本主题提供了这些公用参数的列表。有关单个源或汇特有的其他参数的列表,请参见相应的配置模板部分。

公共配置参数

以下是常见的配置参数。有关示例,请参见各个配置模板部分。

存储桶

  • 用途:指定 OCI 对象存储存储桶的名称,该存储桶包含源/接收器对象。

    确保所需的存储桶已存在于 OCI 对象存储实例中,并且具有读/写权限。

  • 数据类型:字符串
  • 必需 (Y/N): Y

chunkSize

  • 用途:指定要在接收器中存储的 chunk 表数据的最大大小。该值为 MB。在迁移期间,表将拆分为 chunkSize 块,每个块将作为单独的文件写入到池中。当要迁移的源数据超过 chunkSize 值时,将创建新文件。

    如果未指定,则默认为 32MB。有效值为 1 到 1024 之间的整数。

  • 数据类型:整数
  • 必需 (Y/N): N

Credential (身份证明)

  • 用途:指定包含 OCI 身份证明的文件的绝对路径。NoSQL 数据库迁移程序使用此文件连接到 OCI 服务,例如 Oracle NoSQL Database Cloud Service 、OCI 对象存储等。

    默认值为 $HOME/.oci/config

    有关凭证文件的示例,请参见 Example Configuration

    注意:

    验证参数 credentialsuseInstancePrincipaluseDelegationToken 是互斥的。在配置模板中仅指定其中一个参数。
  • 数据类型:字符串
  • 必需 (Y/N): N

credentialsProfile

  • 用途:指定用于连接到 OCI 服务的配置文件的名称,例如 Oracle NoSQL Database Cloud Service 、OCI Object Storage 等。用户帐户凭证称为配置文件

    如果未指定此值,NoSQL Database Migrator 将使用 DEFAULT 配置文件。

    注意:

    仅当指定了 credentials 参数时,此参数才有效。
  • 数据类型:字符串
  • 必需 (Y/N): N

endpoint

  • 用途:指定以下几项之一:
    • OCI 对象存储服务的服务端点 URL 或区域 ID。

      有关 OCI 对象存储服务端点的列表,请参阅对象存储端点

    • Oracle NoSQL Database Cloud Service 的服务端点 URL 或区域 ID。

      可以单独指定完整 URL 或区域 ID。有关 Oracle NoSQL Database Cloud Service 支持的数据区域列表,请参阅 Oracle NoSQL Database Cloud Service 文档中的数据区域和关联服务 URL

  • 数据类型:字符串
  • 必需 (Y/N): Y

format

  • 用途:指定源/接收器格式。
  • 数据类型:字符串
  • 必需 (Y/N): Y

名称空间

  • 用途:指定 OCI 对象存储服务的名称空间。这是一个可选参数。如果未指定此参数,将使用租户的默认名称空间。

  • 数据类型:字符串
  • 必需 (Y/N): N

前缀

  • 用途:前缀充当逻辑容器或目录,用于将数据存储在 OCI 对象存储桶中。

    • 源配置模板:如果指定的 prefix 参数,将迁移 prefix 参数中指定的目录中的所有对象。否则,将迁移存储桶中存在的所有对象。
    • Sink 配置模板:如果指定了 prefix 参数,将在存储桶中创建具有给定前缀的目录,并将对象迁移到此目录中。否则,源中的表名将用作前缀。如果存储桶中已存在同名对象,则会覆盖该对象。

    有关前缀的详细信息,请参见 Object Naming Using Prefixes and Hierarchies

  • 数据类型:字符串
  • 必需 (Y/N): N

requestTimeoutMs

  • 用途:指定等待从存储到存储的每个读/写操作完成的时间。以毫秒为单位提供。默认值为 5000。值可以是任何正整数。

  • 数据类型:整数
  • 必需 (Y/N): N

security

  • 用途:如果存储是安全存储,则指定包含存储身份证明的安全登录文件的绝对路径。有关安全登录文件的更多信息,请参见 Administrator's Guide 中的 Configuring Security with Remote Access

    可以使用基于密码文件的验证或基于 wallet 的验证。但是,仅 Oracle NoSQL Database 的 Enterprise Edition (EE) 支持基于 wallet 的验证。有关基于 wallet 的验证的详细信息,请参阅源和接收安全

    Community Edition (CE) 版本仅支持基于密码文件的验证。

  • 数据类型:字符串
  • 强制 (Y/N): Y,用于安全存储

类型

  • 用途:标识源/接收器类型。
  • 数据类型:字符串
  • 必需 (Y/N): Y

useDelegationToken

  • 用途:指定 NoSQL 数据库迁移程序工具是否使用委派令牌验证连接到 OCI 服务。必须使用委派令牌验证从 Cloud Shell 运行迁移程序实用程序。调用 Cloud Shell 时,会自动为用户创建委派令牌。

    默认值为 false

  • 数据类型:布尔型
  • 必需 (Y/N): N

    注意:

    • 仅当从 Cloud Shell 运行 NoSQL Database Migrator 工具时,才支持使用委派令牌进行验证。
    • 验证参数 credentialsuseInstancePrincipaluseDelegationToken 是互斥的。在配置模板中仅指定其中一个参数。
    • Cloud Shell 仅支持在以下源和源之间迁移:
      类型 有效源 有效接收器

      Oracle NoSQL Database Cloud Service

      (nosqldb_cloud)

      Y Y
      文件(主目录中的 JSON 文件) Y Y

      OCI 对象存储(JSON 文件)

      (object_storage_oci)

      Y Y

      OCI 对象存储(参数文件)

      (object_storage_oci)

      N Y

useInstancePrincipal

  • 用途:指定 NoSQL 数据库迁移程序工具是否使用实例主体验证连接到 OCI 服务,例如 Oracle NoSQL Database Cloud Service 、OCI 对象存储等。有关实例主用户验证方法的详细信息,请参阅源和接收安全性

    默认值为 false

    注意:

    • 只有在 OCI 计算实例中运行 NoSQL Database Migrator 工具(例如在 OCI 上托管的 VM 中运行的 NoSQL Database Migrator 工具)时,才支持使用实例主体的验证。
    • 验证参数 credentialsuseInstancePrincipaluseDelegationToken 是互斥的。在配置模板中仅指定其中一个参数。
  • 数据类型:布尔型
  • 必需 (Y/N): N

源配置模板

了解每个有效源的源配置文件格式以及每个配置参数的用途。

有关配置文件模板,请参见 Configuration File in Terminology used with NoSQL Data Migrator

有关每个源的有效 sink 格式的详细信息,请参见 Sink Configuration Templates

主题

以下主题介绍了 Oracle NoSQL Database Migrator 引用的源配置模板,用于将数据从给定源复制到有效接收器。

JSON 文件源

下面显示了 JSON 文件作为 NoSQL Database Migrator 源的配置文件格式。

可以通过在源配置模板中指定文件路径或目录来迁移 JSON 源文件。

示例 JSON 源文件如下所示:
{"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"}}

源配置模板

"source": {
  "type": "file",
  "format": "json",
  "dataPath": "<path/to/JSON/[file|dir]>",
  "schemaInfo": {
    "schemaPath": "<path/to/schema/file>"
  }
},

源参数

公共配置参数

  • 类型

    使用 "type" : "file"

  • 格式

    使用 "format" : "json"

唯一配置参数

dataPath

  • 用途:指定包含要迁移的 JSON 数据的文件或目录的绝对路径。

    您必须确保此数据与接收器中定义的 NoSQL 表方案匹配。如果指定目录,NoSQL Database Migrator 将标识该目录中具有 .json 扩展名的所有文件以进行迁移。不支持子目录。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    • 指定 JSON 文件

      "dataPath" : "/home/user/sample.json"

    • 指定目录

      "dataPath" : "/home/user"

schemaInfo

  • 用途:指定要迁移的源数据的方案。此方案传递到 NoSQL 池。

  • 数据类型:对象
  • 必需 (Y/N): N

schemaInfo.schemaPath

  • 用途:指定包含要迁移的 NoSQL 表的 DDL 语句的方案定义文件的绝对路径。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    "schemaInfo": {
      "schemaPath": "<path to the schema file>"
    }

OCI 对象存储桶中的 JSON 文件

下面显示了作为 NoSQL 数据库迁移程序源的 OCI 对象存储存储桶中 JSON 文件的配置文件格式。

您可以通过在源配置模板中指定存储桶的名称来迁移 OCI 对象存储存储桶中的 JSON 文件。

OCI 对象存储存储桶中的示例 JSON 源文件如下所示:
{"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"}}

注意:

OCI 对象存储源类型的有效接收器类型为 nosqldbnosqldb_cloud

源配置模板

"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>
}

源参数

公共配置参数

  • 类型

    使用 "type" : "object_storage_oci"

  • 格式

    使用 "format" : "json"

  • endpoint
    示例:
    • 区域 ID:"endpoint" : "us-ashburn-1"

    • URL 格式:"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"

  • 名称空间

    示例:"namespace" : "my-namespace"

  • 存储桶

    示例:"bucket" : "my-bucket"

  • 前缀
    示例:
    1. "prefix" : "my_table/Data/000000.json"(仅迁移 000000.json
    2. "prefix" : "my_table/Data"(使用前缀 my_table/Data 迁移所有对象)
  • 身份证明
    示例:
    1. "credentials" : "/home/user/.oci/config"
    2. "credentials" : "/home/user/security/config"
  • credentialsProfile
    示例:
    1. "credentialsProfile" : "DEFAULT"
    2. "credentialsProfile" : "ADMIN_USER"
  • useInstancePrincipal

    示例:"useInstancePrincipal" : true

  • useDelegationToken

    示例:"useDelegationToken" : true

    注意:

    仅当从 Cloud Shell 运行 NoSQL Database Migrator 时,才支持使用委派令牌进行验证。

唯一配置参数

schemaInfo

  • 用途:指定要迁移的源数据的方案。此方案传递到 NoSQL 池。

  • 数据类型:对象
  • 必需 (Y/N): N

schemaInfo.schemaObject

  • 用途:指定存储桶中存储要迁移数据的 NoSQL 表方案定义的目标文件的名称。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    "schemaInfo": {
      "schemaObject": "mytable/Schema/schema.ddl"
    },

MongoDB 格式的 JSON 文件

下面显示了作为 NoSQL Database Migrator 源的 MongoDB 格式 JSON 文件的配置文件格式。

您可以通过在源配置模板中指定文件或目录来迁移 MongoDB 导出的 JSON 数据。

MongoDB 支持两种类型的文件 JSON 格式扩展: Canonical modeRelaxed mode 。您可以在 Canonical 或 Relaxed 模式下提供使用 mongoexport 工具生成的 MongoDB 格式的 JSON 文件。NoSQL 数据库迁移程序支持两种模式进行迁移。

有关 MongoDB 扩展 JSON (v2) 文件的更多信息,请参见 mongoexport_formats

有关生成 MongoDB 格式的 JSON 文件的详细信息,请参阅 mongoexport 以了解更多信息。

MongoDB 格式的 Relaxed mode JSON 文件示例如下所示:
{"_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"}]}

源配置模板

"source": {
  "type": "file",
  "format": "mongodb_json",
  "dataPath": "</path/to/json/[file|dir]>",
  "schemaInfo": {
    "schemaPath": "</path/to/schema/file>"
  }
}

源参数

公共配置参数

  • 类型

    使用 "type" : "file"

  • 格式

    使用 "format" : "mongodb_json"

唯一配置参数

dataPath

  • 用途:指定包含要迁移的 MongoDB 导出的 JSON 数据的文件或目录的绝对路径。

    您可以提供使用 mongoexport 工具生成的 MongoDB 格式的 JSON 文件。

    如果指定目录,NoSQL Database Migrator 将标识该目录中具有 .json 扩展名的所有文件以进行迁移。不支持子目录。您必须确保此数据与接收器中定义的 NoSQL 表方案匹配。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    • 指定 MongoDB 格式的 JSON 文件

      "dataPath" : "/home/user/sample.json"

    • 指定目录

      "dataPath" : "/home/user"

schemaInfo

  • 用途:指定要迁移的源数据的方案。此方案传递到 NoSQL 池。

  • 数据类型:对象
  • 必需 (Y/N): N

schemaInfo.schemaPath

  • 用途:指定包含要迁移的 NoSQL 表的 DDL 语句的方案定义文件的绝对路径。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    "schemaInfo" : {
      "schemaPath" : "/home/user/mytable/Schema/schema.ddl"
    }

MongoDB - OCI 对象存储存储桶中的格式化 JSON 文件

下面显示了作为 NoSQL Database Migrator 源的 OCI 对象存储存储桶中 MongoDB 格式 JSON 文件的配置文件格式。

您可以通过在源配置模板中指定存储桶的名称,迁移 OCI 对象存储存储桶中的 MongoDB 导出的 JSON 数据。

使用 mongoexport 实用程序提取 MongoDB 中的数据,并将其上载到 OCI 对象存储桶。有关更多信息,请参见 mongoexport 。MongoDB 支持两种类型的文件 JSON 格式扩展: Canonical modeRelaxed mode 。OCI Object Storage 存储桶支持两种格式。

MongoDB 格式的 Relaxed mode JSON 文件示例如下所示:
{"_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"}]}

注意:

OCI 对象存储源类型的有效接收器类型为 nosqldbnosqldb_cloud

源配置模板

"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>
}

源参数

公共配置参数

  • 类型

    使用 "type" : "object_storage_oci"

  • 格式

    使用 "format" : "mongodb_json"

  • endpoint
    示例:
    • 区域 ID:"endpoint" : "us-ashburn-1"

    • URL 格式:"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"

  • 名称空间

    示例:"namespace" : "my-namespace"

  • 倾盆大雨

    示例:"bucket" : "my-bucket"

  • 前缀
    示例:
    1. "prefix" : "mongo_export/Data/table.json"(仅迁移 table.json
    2. "prefix" : "mongo_export/Data"(使用前缀 mongo_export/Data 迁移所有对象)

    注意:

    如果未提供任何值,则会迁移存储桶中存在的所有对象。
  • 身份证明
    示例:
    1. "credentials" : "/home/user/.oci/config"
    2. "credentials" : "/home/user/security/config"
  • credentialsProfile
    示例:
    1. "credentialsProfile" : "DEFAULT"
    2. "credentialsProfile" : "ADMIN_USER"
  • useInstancePrincipal

    示例:"useInstancePrincipal" : true

唯一配置参数

schemaInfo

  • 用途:指定要迁移的源数据的方案。此方案传递到 NoSQL 池。

  • 数据类型:对象
  • 必需 (Y/N): N

schemaInfo.schemaObject

  • 用途:指定存储桶中存储要迁移数据的 NoSQL 表方案定义的目标文件的名称。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    "schemaInfo": {
      "schemaObject": "mytable/Schema/schema.ddl"
    }

DynamoDB - 格式化的 JSON 文件存储在 AWS S3 中

下面显示了作为 NoSQL Database Migrator 源的 AWS S3 中 DynamoDB 格式 JSON 文件的配置文件格式。

您可以通过在源配置模板中指定路径,从 AWS S3 存储迁移包含 DynamoDB 导出的 JSON 数据的文件。

DynamoDB 格式的 JSON 文件示例如下所示:
{"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"}}}
{"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"}}}

必须将 DynamoDB 表导出到 AWS S3 存储,如将 DynamoDB 表数据导出到 Amazon S3 中指定的那样。

AWS S3 中存储的 DynamoDB 格式 JSON 的有效 sink 类型为 nosqldbnosqldb_cloud

源配置模板
"source" : {
  "type" : "aws_s3",
  "format" : "dynamodb_json",
  "s3URL" : "<S3 object url>",
  "credentials" : "</path/to/aws/credentials/file>",
  "credentialsProfile" : <"profile name in aws credentials file">
}

源参数

公共配置参数

  • 类型

    使用 "type" : "aws_s3"

  • 格式

    使用 "format" : "dynamodb_json"

    注意:

    如果 type 参数的值为 aws_s3,则格式必须为 dynamodb_json

唯一配置参数

s3URL

  • 用途:指定存储在 AWS S3 中的导出 DynamoDB 表的 URL。您可以从 AWS S3 控制台获取此 URL。有效的 URL 格式为 https://<bucket-name>.<s3_endpoint>/<prefix>NoSQL 数据库迁移程序将在导入期间在前缀中查找 json.gz 文件。

    注意:

    必须按 Exporting DynamoDB table data to Amazon S3 中指定的方式导出 DynamoDB 表。
  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:https://my-bucket.s3.ap-south-1.amazonaws.com/AWSDynamoDB/01649660790057-14f642be

Credential (身份证明)

  • 用途:指定包含 AWS 身份证明的文件的绝对路径。如果未指定,则默认为 $HOME/.aws/credentials。有关凭证文件的更多详细信息,请参见 Configuration and credential file settings
  • 数据类型:字符串
  • 必需 (Y/N): N
  • 示例:
    "credentials" : "/home/user/.aws/credentials"
    "credentials" : "/home/user/security/credentials

    注意:

    NoSQL 数据库迁移程序不记录任何凭证信息。必须正确保护凭证文件免受未经授权的访问。

credentialsProfile

  • 用途:用于连接到 AWS S3 的 AWS 身份证明文件中的概要信息的名称。用户帐户凭证称为配置文件。如果未指定此值,NoSQL Database Migrator 将使用 default 配置文件。有关凭证文件的更多详细信息,请参见 Configuration and credential file settings
  • 数据类型:字符串
  • 必需 (Y/N): N
  • 示例:
    "credentialsProfile" : "default"
    "credentialsProfile" : "test"

DynamoDB 格式的 JSON 文件

下面显示了作为 NoSQL Database Migrator 源的 DynamoDB 格式 JSON 文件的配置文件格式。

通过在源配置模板中指定路径,可以从文件系统迁移包含 DynamoDB 导出的 JSON 数据的文件或目录。

DynamoDB 格式的 JSON 文件示例如下所示:
{"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"}}}
{"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"}}}

必须将导出的 DynamoDB 表数据从 AWS S3 存储复制到本地挂载的文件系统。

DynamoDB JSON 文件的有效 sink 类型为 nosqldbnosqldb_cloud

源配置模板
"source" : {
  "type" : "file",
  "format" : "dynamodb_json",
  "dataPath" : "<path/to/[file|dir]/containing/exported/DDB/tabledata>"   
}

源参数

公共配置参数

  • 类型

    使用 "type" : "file"

  • 格式

    使用 "format" : "dynamodb_json"

唯一配置参数

dataPath

  • 用途:指定包含导出的 DynamoDB 表数据的文件或目录的绝对路径。必须将导出的 DynamoDB 表数据从 AWS S3 复制到本地挂载的文件系统。您必须确保此数据与接收器中定义的 NoSQL 表方案匹配。如果指定目录,NoSQL Database Migrator 将标识该目录中扩展名为 .json.gz 的所有文件以及 data 子目录。
  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    • 指定文件
      "dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3/data/zclclwucjy6v5mkefvckxzhfvq.json.gz"
    • 指定目录
      "dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3"

Oracle NoSQL Database

下面显示了 Oracle NoSQL Database 作为 NoSQL Database Migrator 源的配置文件格式。

通过在源配置模板中指定表名,可以从 Oracle NoSQL Database 迁移表。

Oracle NoSQL Database 表样例如下所示:
{"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}

源配置模板

"source" : {
  "type": "nosqldb",
  "storeName" : "<store name>",
  "helperHosts" : ["hostname1:port1","hostname2:port2,..."],
  "table" : "<fully qualified table name>", 
  "includeTTL": <true|false>,    
  "security" : "</path/to/store/security/file>",
  "requestTimeoutMs" : 5000
}

源参数

公共配置参数

  • 类型

    使用 "type" : "nosqldb"

  • 安全

    示例:

    "security" : "/home/user/client.credentials"

    基于口令文件的验证的安全文件内容示例:

    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)

    基于 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)
  • requestTimeoutMs

    示例:"requestTimeoutMs" : 5000

唯一配置参数

storeName

  • 用途:Oracle NoSQL Database 存储的名称。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:"storeName" : "kvstore"

helperHosts

  • 用途:hostname:port 格式列出的主机和注册表端口对。使用逗号分隔列表中的每个项。必须指定至少一个辅助主机。

  • 数据类型:字符串数组
  • 必需 (Y/N): Y
  • 示例:"helperHosts" : ["localhost:5000","localhost:6000"]

table (表)

  • 用途:要从中迁移数据的全限定表名。

    格式:[namespace_name:]<table_name>

    如果表位于 DEFAULT 名称空间中,则可以省略 namespace_name。该表必须存在于门店中。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    • 使用 DEFAULT 名称空间 "table" :"mytable"

    • 使用非缺省名称空间 "table" : "mynamespace:mytable"

    • 指定子表 "table" : "mytable.child"

includeTTL

  • 用途:指定在导出 Oracle NoSQL Database 表时是否包括表行的 TTL 元数据。如果设置为 true,则行的 TTL 数据也会包括在来源提供的数据中。TTL 存在于与每一行关联的 _metadata JSON 对象中。每行的失效时间将导出为自 UNIX 时代 (Jan 1st,1970) 以来的毫秒数。

    如果未指定此参数,则默认为 false

    仅将 TTL 的到期值为正的行作为导出行的一部分包括在内。如果某行未过期(即 TTL=0),则不会显式包括其 TTL 元数据。例如,如果 ROW1 在 2021-10-19 00:00:00 到期,而 ROW2 未过期,则导出的数据如下所示:
    //ROW1
    {
      "id" : 1,
      "name" : "abc",
      "_metadata" : {
        "expiration" : 1634601600000
      }
    }
    
    //ROW2
    {
      "id" : 2,
      "name" : "xyz"
    }
  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"includeTTL" : true

Oracle NoSQL Database Cloud Service

下面显示了 Oracle NoSQL Database Cloud Service 作为 NoSQL Database Migrator 源的配置文件格式。

可以通过指定表驻留在源配置模板中的区间的名称或 OCID,从 Oracle NoSQL Database Cloud Service 迁移表。

Oracle NoSQL Database Cloud Service 表样例如下所示:
{"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}

源配置模板

"source" : {
  "type" : "nosqldb_cloud",
  "endpoint" : "<Oracle NoSQL Cloud Service endpoint URL or region ID>",
  "table" : "<table name>",
  "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>,
  "readUnitsPercent" : <table readunits percent>,
  "includeTTL": <true|false>,
  "requestTimeoutMs" : <timeout in milli seconds>
}

源参数

公共配置参数

  • 类型

    使用 "type" : "nosqldb_cloud"

  • endpoint
    示例:
    • 区域 ID:"endpoint" : "us-ashburn-1"

    • URL 格式:"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"

  • 身份证明
    示例:
    1. "credentials" : "/home/user/.oci/config"
    2. "credentials" : "/home/user/security/config"
  • credentialsProfile
    示例:
    1. "credentialsProfile" : "DEFAULT"
    2. "credentialsProfile" : "ADMIN_USER"
  • useInstancePrincipal

    示例:"useInstancePrincipal" : true

  • useDelegationToken

    示例:"useDelegationToken" : true

    注意:

    仅当从 Cloud Shell 运行 NoSQL Database Migrator 时,才支持使用委派令牌进行验证。
  • requestTimeoutMs

    示例:"requestTimeoutMs" : 5000

唯一配置参数

table (表)

  • 用途:要从中迁移数据的表的名称。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    • 指定表 "table" : "myTable"
    • 指定子表 "table" : "mytable.child"

区间

  • 用途:指定表所在区间的名称或 OCID。

    如果未提供任何值,则缺省为 root 区间。

    您可以在 OCI 云控制台的“监管”下的“区间浏览器”窗口中找到区间的 OCID。

  • 数据类型:字符串
  • 必需 (Y/N): Y(如果表不在租户的根区间中)或者 useInstancePrincipal 参数设置为 true 时。

    注意:

    如果 useInstancePrincipal 参数设置为 true,则区间必须指定区间 OCID,而不是名称。
  • 示例:
    • 划分名称

      "compartment" : "mycompartment"

    • 符合其父区间的限定区间名称

      "compartment" : "parent.childcompartment"

    • 未提供值。默认为根区间。

      "compartment": ""

    • 区间 OCID

      "compartment" : "ocid1.tenancy.oc1...4ksd"

readUnitsPercent

  • 用途:迁移 NoSQL 表时要使用的表读取单位百分比。

    默认值为 90。有效范围是介于 1 到 100 之间的任意整数。迁移数据所需的时间量与此属性直接成正比。最好为迁移活动增加表的读取吞吐量。迁移过程完成后,您可以降低读取吞吐量。

    要了解每日吞吐量更改限制,请参阅 Oracle NoSQL Database Cloud Service 文档中的云限制

    请参阅Oracle NoSQL Database Migrator 故障排除,了解如何使用此属性来提高数据迁移速度。

  • 数据类型:整数
  • 必需 (Y/N): N
  • 示例:"readUnitsPercent" : 90

includeTTL

  • 用途:指定在导出 Oracle NoSQL Database Cloud Service 表时是否包括表行的 TTL 元数据。如果设置为 true,则行的 TTL 数据也会包括在来源提供的数据中。TTL 存在于与每一行关联的 _metadata JSON 对象中。每行的失效时间将导出为自 UNIX 时代 (Jan 1st,1970) 以来的毫秒数。

    如果未指定此参数,则默认为 false

    仅将 TTL 的到期值为正的行作为导出行的一部分包括在内。如果某行未过期(即 TTL=0),则不会显式包括其 TTL 元数据。例如,如果 ROW1 在 2021-10-19 00:00:00 到期,而 ROW2 未过期,则导出的数据如下所示:
    //ROW1
    {
      "id" : 1,
      "name" : "abc",
      "_metadata" : {
        "expiration" : 1634601600000
      }
    }
    
    //ROW2
    {
      "id" : 2,
      "name" : "xyz"
    }
  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"includeTTL" : true

CSV 文件来源

CSV 文件作为 NoSQL Database Migrator 源的配置文件格式如下所示。CSV 文件必须符合 RFC4180 格式。

您可以通过在源配置模板中指定文件名或目录来迁移 CSV 文件或包含 CSV 数据的目录。

CSV 示例文件如下所示:
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"

源配置模板

"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>"
 }
}

源参数

公共配置参数

  • 类型

    使用 "type" : "file"

  • 格式

    使用 "format" : "csv"

唯一配置参数

datapath

  • 用途:指定包含要迁移的 CSV 数据的文件或目录的绝对路径。如果指定目录,NoSQL Database Migrator 将导入该目录中扩展名为 .csv.CSV 的所有文件。所有 CSV 文件都复制到单个表中,但不会按任何特定顺序复制。

    CSV 文件必须符合 RFC4180 标准。您必须确保每个 CSV 文件中的数据与 sink 表中定义的 NoSQL 数据库表方案匹配。不支持子目录。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    • 指定 CSV 文件

      "dataPath" : "/home/user/sample.csv"

    • 指定目录

      "dataPath" : "/home/user"

注意:

CSV 文件只能包含标量值。不支持导入包含复杂类型(如 MAP、RECORD、ARRAY 和 JSON)的 CSV 文件。NoSQL Database Migrator 工具不会检查输入 CSV 文件中数据的正确性。NoSQL 数据库迁移程序工具支持导入符合 RFC4180 格式的 CSV 数据。包含不符合 RFC4180 标准的数据的 CSV 文件可能无法正确复制,也可能导致错误。如果输入数据损坏,则 NoSQL Database Migrator 工具不会对 CSV 记录进行语法分析。如果在迁移过程中遇到任何错误,NoSQL Database Migrator 工具会记录有关失败的输入记录的信息,以便进行调试和提供信息。有关更多详细信息,请参阅 Using Oracle NoSQL Data Migrator 中的 Logging Migrator Progress

hasHeader

  • 用途:指定 CSV 文件是否具有标题。如果将此项设置为 true,则忽略第一行。如果将其设置为 false,则第一行被视为 CSV 记录。默认值为 false

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"hasHeader" : "false"

  • 用途:指定 NoSQL 数据库表列名的列表。列名的顺序指示 CSV 文件字段与对应的 NoSQL 数据库表列的映射。如果输入 CSV 文件列的顺序与现有或新创建的 NoSQL 数据库表列不匹配,则可以使用此参数映射排序。此外,导入到具有身份列的表时,可以在 columns 参数中跳过身份列名。

    注意:

    • 如果 NoSQL Database 表包含 CSV 文件中不可用的附加列,则使用 NoSQL Database 表中定义的默认值更新缺少的列的值。如果未提供默认值,则在迁移期间插入 NULL 值。有关默认值的详细信息,请参阅 SQL 参考指南中的数据类型定义部分。
    • 如果 CSV 文件具有 NoSQL 数据库表中未定义的附加列,则将忽略附加列信息。
    • 如果 CSV 记录中的任何值为空,则将其设置为 NoSQL 数据库表中相应列的默认值。如果未提供默认值,则在迁移期间插入 NULL 值。
  • 数据类型:字符串数组
  • 必需 (Y/N): N
  • 示例:"columns" : ["table_column_1", "table_column_2"]

csvOptions

  • 用途:指定 CSV 文件的格式设置选项。提供 CSV 文件的字符集编码格式,并选择是否截去空格。

  • 数据类型:对象
  • 必需 (Y/N): N

csvOptions.encoding

  • 用途:指定用于对 CSV 文件进行解码的字符集。默认值为 UTF-8。支持的字符集为 US-ASCII, ISO-8859-1, UTF-8,UTF-16

  • 数据类型:字符串
  • 必需 (Y/N): N
  • 示例:"encoding" : "UTF-8"

csvOptions.trim

  • 用途:指定是否必须截去 CSV 字段值的前导和尾随空白。默认值为 false

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"trim" : "true"

OCI 对象存储桶中的 CSV 文件

下面显示了作为 NoSQL 数据库迁移程序源的 OCI 对象存储存储桶中 CSV 文件的配置文件格式。CSV 文件必须符合 RFC4180 格式。

您可以通过在源配置模板中指定存储桶的名称来迁移 OCI 对象存储存储桶中的 CSV 文件。

OCI 对象存储桶中的 CSV 示例文件如下所示:
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"

注意:

OCI 对象存储源类型的有效接收器类型为 nosqldbnosqldb_cloud

源配置模板

"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>,
   "hasHeader" : <true | false>,
   "columns" : ["column1", "column2", ....],
   "csvOptions" : {         
     "encoding" : "<character set encoding>",
     "trim" : <true | false>
   }
 }

源参数

公共配置参数

  • 类型

    使用 "type" : "object_storage_oci"

  • 格式

    使用 "format" : "csv"

  • endpoint
    示例:
    • 区域 ID:"endpoint" : "us-ashburn-1"

    • URL 格式:"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"

  • 名称空间

    示例:"namespace" : "my-namespace"

  • 倾盆大雨

    示例:"bucket" : "my-bucket"

    注意:

    • NoSQL Database Migrator 将导入具有 .csv.CSV 扩展名对象中的所有文件,并按相同顺序将其复制到单个表中。
    • CSV 文件只能包含标量值。不支持导入包含复杂类型(如 MAP、RECORD、ARRAY 和 JSON)的 CSV 文件。NoSQL Database Migrator 工具不会检查输入 CSV 文件中数据的正确性。NoSQL 数据库迁移程序工具支持导入符合 RFC4180 格式的 CSV 数据。包含不符合 RFC4180 标准的数据的 CSV 文件可能无法正确复制,也可能导致错误。如果输入数据损坏,则 NoSQL Database Migrator 工具不会对 CSV 记录进行语法分析。如果在迁移过程中遇到任何错误,NoSQL Database Migrator 工具会记录有关失败的输入记录的信息,以便进行调试和提供信息。有关更多详细信息,请参阅 Using Oracle NoSQL Data Migrator 中的 Logging Migrator Progress

  • 前缀
    示例:
    1. "prefix" : "my_table/Data/000000.csv"(仅迁移 000000.csv
    2. "prefix" : "my_table/Data"(使用前缀 my_table/Data 迁移所有对象)
  • 身份证明
    示例:
    1. "credentials" : "/home/user/.oci/config"
    2. "credentials" : "/home/user/security/config"
  • credentialsProfile
    示例:
    1. "credentialsProfile" : "DEFAULT"
    2. "credentialsProfile" : "ADMIN_USER"
  • useInstancePrincipal

    示例:"useInstancePrincipal" : true

唯一配置参数

hasHeader

  • 用途:指定 CSV 文件是否具有标题。如果将此项设置为 true,则忽略第一行。如果将其设置为 false,则第一行被视为 CSV 记录。默认值为 false

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"hasHeader" : "false"

  • 用途:指定 NoSQL 数据库表列名的列表。列名的顺序指示 CSV 文件字段与对应的 NoSQL 数据库表列的映射。如果输入 CSV 文件列的顺序与现有或新创建的 NoSQL 数据库表列不匹配,则可以使用此参数映射排序。此外,导入到具有身份列的表时,可以在 columns 参数中跳过身份列名。

    注意:

    • 如果 NoSQL Database 表包含 CSV 文件中不可用的附加列,则使用 NoSQL Database 表中定义的默认值更新缺少的列的值。如果未提供默认值,则在迁移期间插入 NULL 值。有关默认值的详细信息,请参阅 SQL 参考指南中的数据类型定义部分。
    • 如果 CSV 文件具有 NoSQL 数据库表中未定义的附加列,则将忽略附加列信息。
    • 如果 CSV 记录中的任何值为空,则将其设置为 NoSQL 数据库表中相应列的默认值。如果未提供默认值,则在迁移期间插入 NULL 值。
  • 数据类型:字符串数组
  • 必需 (Y/N): N
  • 示例:"columns" : ["table_column_1", "table_column_2"]

csvOptions

  • 用途:指定 CSV 文件的格式设置选项。提供 CSV 文件的字符集编码格式,并选择是否截去空格。

  • 数据类型:对象
  • 必需 (Y/N): N

csvOptions.encoding

  • 用途:指定用于对 CSV 文件进行解码的字符集。默认值为 UTF-8。支持的字符集为 US-ASCII, ISO-8859-1, UTF-8,UTF-16

  • 数据类型:字符串
  • 必需 (Y/N): N
  • 示例:"encoding" : "UTF-8"

csvOptions.trim

  • 用途:指定是否必须截去 CSV 字段值的前导和尾随空白。默认值为 false

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"trim" : "true"

Sink 配置模板

了解每个有效接收器的接收器配置文件格式以及每个配置参数的用途。

有关配置文件模板,请参见 Configuration File in Terminology used with NoSQL Data Migrator
有关每个接收器的有效源格式的详细信息,请参见 Source Configuration Templates

主题

以下主题介绍了 Oracle NoSQL Database Migrator 引用的接收器配置模板,用于将数据从有效源复制到给定接收器。

JSON 文件接收器

下面显示了作为 NoSQL Database Migrator 汇的 JSON 文件的配置文件格式。

Sink 配置模板

"sink" : {
  "type" : "file",
  "format" : "json",
  "dataPath": "</path/to/a/file>",
  "schemaPath" : "<path/to/a/file>",
  "pretty" : <true|false>,
  "useMultiFiles" : <true|false>,
  "chunkSize" : <size in MB>
}

Sink 参数

公共配置参数

  • 类型

    使用 "type" : "file"

  • 格式

    使用 "format" : "json"

  • chunkSize

    示例:"chunkSize" : 40

    注意:

    仅当 useMultiFiles 参数设置为 true 时,此参数才适用。

唯一配置参数

dataPath

  • 用途:指定将以 JSON 格式复制源数据的文件的绝对路径。

    如果指定的数据路径中不存在该文件,则 NoSQL Database Migrator 会创建该文件。如果存在,NoSQL 数据库迁移程序将使用源数据覆盖其内容。

    您必须确保数据路径中的父目录对指定文件有效。

    注意:

    如果 useMultiFiles 参数设置为 true,则指定目录的路径,否则指定文件的路径。
  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    • useMultiFiles 参数设置为 true

      "dataPath" :"/home/user/data"

    • 未指定 useMultiFiles 参数或将其设置为 false

      "dataPath" :"/home/user/sample.json"

schemaPath

  • 用途:指定文件的绝对路径以写入源提供的表方案信息。

    如果未定义此值,则不会将源方案信息迁移到接收器。如果指定了此值,迁移程序实用程序会将源表的方案写入此处指定的文件中。

    方案信息将写入此文件中每行一个 DDL 命令。如果指定的数据路径中不存在该文件,则 NoSQL Database Migrator 会创建该文件。如果已存在,NoSQL Database Migrator 将使用源数据覆盖其内容。您必须确保数据路径中的父目录对指定文件有效。

  • 数据类型:字符串
  • 必需 (Y/N): N
  • 示例:"schemaPath" : "/home/user/schema_file"

美丽

  • 用途:指定是否美化 JSON 输出以提高可读性。

    如果未指定,则默认为 false。

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"pretty" : true

useMultiFiles

  • 用途:指定在将源数据迁移到文件时是否将 NoSQL 表数据拆分成多个文件。

    如果未指定,则默认为 false。

    如果设置为 true,则在将源数据迁移到文件时,NoSQL 表数据会拆分为多个较小的文件。例如,<chunk>.json,其中 chunk=000000、000001、000002 等。

    dataPath
             |--000000.json
             |--000001.json
  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"useMultiFiles" : true

参数文件

下面显示了作为 NoSQL Database Migrator 汇的 Parquet 文件的配置文件格式。

Sink 配置模板

"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>
  }
}

Sink 参数

公共配置参数

唯一配置参数

dataPath

  • 用途:指定用于存储迁移的 NoSQL 表数据的目录的路径。确保目录已存在并且具有读写权限。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:"dataPath" : "/home/user/migrator/my_table"

压缩

  • 用途:指定用于压缩 Parquet 数据的压缩类型。有效值为 SNAPPYGZIPNONE

    如果未指定,它缺省为 SNAPPY

  • 数据类型:字符串
  • 必需 (Y/N): N
  • 示例:"compression" : "GZIP"

parquetOptions

  • 用途:指定用于为 NoSQL ENUM、JSON 和 UUID 列选择 Parquet 逻辑类型的选项。

    如果未指定此参数,则 NoSQL Database Migrator 会将 ENUM、JSON 和 UUID 列的数据写入字符串。

  • 数据类型:对象
  • 必需 (Y/N): N

parquetOptions.useLogicalJson

  • 用途:指定是否将 NoSQL JSON 列数据写入 Parquet 逻辑 JSON 类型。有关更多信息,请参见 Parquet Logical Type Definitions

    如果未指定或设置为 false,则 NoSQL Database Migrator 会将 NoSQL JSON 列数据写入字符串。

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"useLogicalJson" : true

parquetOptions.useLogicalEnum

  • 用途:指定是否将 NoSQL ENUM 列数据写入 Parquet 逻辑 ENUM 类型。有关更多信息,请参见 Parquet Logical Type Definitions

    如果未指定或设置为 false,则 NoSQL Database Migrator 会将 NoSQL ENUM 列数据写入字符串。

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"useLogicalEnum" : true

parquetOptions.useLogicalUUID

  • 用途:指定是否将 NoSQL UUID 列数据写入 Parquet 逻辑 UUID 类型。有关更多信息,请参见 Parquet Logical Type Definitions

    如果未指定或设置为 false,则 NoSQL Database Migrator 会将 NoSQL UUID 列数据写入字符串。

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"useLogicalUUID" : true

parquetOptions.truncateDoubleSpecials

  • 用途:指定是否截断双 +Infinity、-Infinity 和 NaN 值。

    默认情况下,它设置为 false。如果设置为 true
    • Positive_Infinity 被截断为 Double.MAX_VALUE。
    • NEGATIVE_INFINITY 被截断为 -Double.MAX_VALUE。
    • NaN 被截断为 9.9999999999999990E307。
  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"truncateDoubleSpecials" : true

OCI 对象存储桶中的 JSON 文件

如下所示,OCI 对象存储存储桶中 JSON 文件的配置文件格式为 NoSQL Database Migrator 汇。

注意:

OCI 对象存储作为接收器的有效源类型为 nosqldbnosqldb_cloud

Sink 配置模板

"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>
}

Sink 参数

公共配置参数

  • 类型

    使用 "type" : "object_storage_oci"

  • 格式

    使用 "format" : "json"

  • endpoint
    示例:
    • 区域 ID:"endpoint" : "us-ashburn-1"

    • URL 格式:"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"

  • 名称空间

    示例:"namespace" : "my-namespace"

  • 存储桶

    示例:"bucket" : "my-bucket"

  • 前缀

    方案将迁移到 <prefix>/Schema/schema.ddl 文件,源数据将迁移到 <prefix>/Data/<chunk>.json 文件,其中 chunk=000000.json、000001.json 等。

    示例:
    1. "prefix" : "my_export"
    2. "prefix" : "my_export/2021-04-05/"
  • chunkSize

    示例:"chunkSize" : 40

  • 身份证明
    示例:
    1. "credentials" : "/home/user/.oci/config"
    2. "credentials" : "/home/user/security/config"
  • credentialsProfile
    示例:
    1. "credentialsProfile" : "DEFAULT"
    2. "credentialsProfile" : "ADMIN_USER"
  • useInstancePrincipal

    示例:"useInstancePrincipal" : true

  • useDelegationToken

    示例:"useDelegationToken" : true

    注意:

    仅当从 Cloud Shell 运行 NoSQL Database Migrator 时,才支持使用委派令牌进行验证。

唯一配置参数

pretty

  • 用途:指定是否美化 JSON 输出以提高可读性。

    如果未指定,则默认为 false。

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"pretty" : true

OCI 对象存储桶中的语法分析文件

OCI 对象存储存储桶中 Parquet 文件的配置文件格式为 NoSQL Database Migrator 汇,如下所示。

注意:

OCI 对象存储源类型的有效源类型为 nosqldbnosqldb_cloud

Sink 配置模板

"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>
}

Sink 参数

公共配置参数

  • 类型

    使用 "type" : "object_storage_oci"

  • 格式

    使用 "format" : "parquet"

  • endpoint
    示例:
    • 区域 ID:"endpoint" : "us-ashburn-1"

    • URL 格式:"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"

  • 名称空间

    示例:"namespace" : "my-namespace"

  • 倾盆大雨

    示例:"bucket" : "my-bucket"

  • 前缀

    源数据将迁移到 <prefix>/Data/<chunk>.parquet 文件,其中 chunk=000000.parquet、000001.parquet 等。

    示例:
    1. "prefix" : "my_export"
    2. "prefix" : "my_export/2021-04-05/"
  • chunkSize

    示例:"chunkSize" : 40

  • 身份证明
    示例:
    1. "credentials" : "/home/user/.oci/config"
    2. "credentials" : "/home/user/security/config"
  • credentialsProfile
    示例:
    1. "credentialsProfile" : "DEFAULT"
    2. "credentialsProfile" : "ADMIN_USER"
  • useInstancePrincipal

    示例:"useInstancePrincipal" : true

  • useDelegationToken

    示例:"useDelegationToken" : true

    注意:

    仅当从 Cloud Shell 运行 NoSQL Database Migrator 时,才支持使用委派令牌进行验证。

唯一配置参数

压缩

  • 用途:指定用于压缩 Parquet 数据的压缩类型。有效值为 SNAPPYGZIPNONE

    如果未指定,它缺省为 SNAPPY

  • 数据类型:字符串
  • 必需 (Y/N): N
  • 示例:"compression" : "GZIP"

parquetOptions

  • 用途:指定用于为 NoSQL ENUM、JSON 和 UUID 列选择 Parquet 逻辑类型的选项。

    如果未指定此参数,则 NoSQL Database Migrator 会将 ENUM、JSON 和 UUID 列的数据写入字符串。

  • 数据类型:对象
  • 必需 (Y/N): N

parquetOptions.useLogicalJson

  • 用途:指定是否将 NoSQL JSON 列数据写入 Parquet 逻辑 JSON 类型。有关更多信息,请参见 Parquet Logical Type Definitions

    如果未指定或设置为 false,则 NoSQL Database Migrator 会将 NoSQL JSON 列数据写入字符串。

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"useLogicalJson" : true

parquetOptions.useLogicalEnum

  • 用途:指定是否将 NoSQL ENUM 列数据写入 Parquet 逻辑 ENUM 类型。有关更多信息,请参见 Parquet Logical Type Definitions

    如果未指定或设置为 false,则 NoSQL Database Migrator 会将 NoSQL ENUM 列数据写入字符串。

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"useLogicalEnum" : true

parquetOptions.useLogicalUUID

  • 用途:指定是否将 NoSQL UUID 列数据写入 Parquet 逻辑 UUID 类型。有关更多信息,请参见 Parquet Logical Type Definitions

    如果未指定或设置为 false,则 NoSQL Database Migrator 会将 NoSQL UUID 列数据写入字符串。

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"useLogicalUUID" : true

parquetOptions.truncateDoubleSpecials

  • 用途:指定是否截断双 +Infinity、-Infinity 和 NaN 值。

    默认情况下,它设置为 false。如果设置为 true
    • Positive_Infinity 被截断为 Double.MAX_VALUE。
    • NEGATIVE_INFINITY 被截断为 -Double.MAX_VALUE。
    • NaN 被截断为 9.9999999999999990E307。
  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"truncateDoubleSpecials" : true

Oracle NoSQL Database

下面显示了 Oracle NoSQL Database 作为 NoSQL Database Migrator 汇的配置文件格式。

Sink 配置模板

"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>
}

Sink 参数

公共配置参数

  • 类型

    使用 "type" : "nosqldb"

  • 安全

    示例:

    "security" : "/home/user/client.credentials"

    基于口令文件的验证的安全文件内容示例:

    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)

    基于 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)
  • requestTimeoutMs

    示例:"requestTimeoutMs" : 5000

唯一配置参数

storeName

  • 用途:Oracle NoSQL Database 存储的名称。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:"storeName" : "kvstore"

helperHosts

  • 用途:hostname:port 格式列出的主机和注册表端口对。使用逗号分隔列表中的每个项。必须指定至少一个辅助主机。

  • 数据类型:字符串数组
  • 必需 (Y/N): Y
  • 示例:"helperHosts" : ["localhost:5000","localhost:6000"]

table (表)

  • 用途:指定用于存储迁移数据的表名。

    格式:[namespace_name:]<table_name>

    如果表位于 DEFAULT 名称空间中,则可以省略 namespace_name。表在迁移期间必须存在于存储中,并且其方案必须与源数据匹配。

    如果该表在水槽中不可用,则可以使用 schemaInfo 参数指示 NoSQL Database Migrator 在水槽中创建表。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    • 使用 DEFAULT 名称空间 "table" :"mytable"

    • 使用非缺省名称空间 "table" : "mynamespace:mytable"

    • 指定子表 "table" : "mytable.child"

      注意:

      您可以将子表从有效数据源迁移到 Oracle NoSQL DatabaseNoSQL Database Migrator 在每次执行中仅复制一个表。确保在子表之前迁移了父表。

includeTTL

  • 用途:指定在导入 Oracle NoSQL Database 表时是否包括源提供的表行的 TTL 元数据。

    如果未指定此参数,则默认为 false。在这种情况下,NoSQL 数据库迁移程序不包括源在导入 Oracle NoSQL Database 表时提供的表行的 TTL 元数据。

    如果设置为 true,NoSQL Database Migrator 工具将在导入表行时对 TTL 元数据执行以下检查:
    • 如果导入没有 _metadata 定义的行,则 NoSQL 数据库迁移程序工具会将 TTL 设置为 0,这意味着该行永不过期。
    • 如果导入具有 _metadata 定义的行,则 NoSQL 数据库迁移程序工具会在导入行时将 TTL 值与引用时间进行比较。如果该行已相对于参考时间到期,则跳过该行。如果行尚未到期,则会随 TTL 值一起导入该行。缺省情况下,导入操作的引用时间是从运行 NoSQL 数据库迁移程序工具的计算机的 System.currentTimeMillis() 获取的当前时间(以毫秒为单位)。但是,如果要延长失效时间并导入原本会立即失效的行,也可以使用 ttlRelativeDate 配置参数设置定制引用时间。
      用于计算行到期时间的公式如下:
      expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds)
      if (expiration <= 0) then it indicates that row has expired.

      注意:

      由于 Oracle NoSQL TTL 边界以小时和天为单位,在某些情况下,导入行的 TTL 可能会调整为最近的小时或天。例如,考虑到期值为 1629709200000 (2021-08-23 09:00:00) 且参考时间值为 1629707962582 (2021-08-23 08:39:22) 的行。此处,尽管相对于导入此数据时的参考时间,该行未失效,但该行的新 TTL 为 1629712800000 (2021-08-23 10:00:00)
  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"includeTTL" : true

ttlRelativeDate

  • 用途:以 YYYY-MM-DD hh:mm:ss 格式指定 UTC 日期,用于在导入到 Oracle NoSQL Database 期间设置表行的 TTL 到期。

    如果要导出的数据中的表行已过期,则可以将 ttlRelativeDate 参数设置为所导出数据中表行的到期时间之前的日期。

    如果未指定此参数,则缺省为从运行 NoSQL Database Migrator 工具的计算机的 System.currentTimeMillis() 获取的当前时间(以毫秒为单位)。

  • 数据类型:日期
  • 必需 (Y/N): N
  • 示例:"ttlRelativeDate" : "2021-01-03 04:31:17"

    我们来考虑这样一种方案:表行在 2021 年 1 月 1 日起 7 天后过期。导出此表后,在 2021 年 1 月 7 日,您会遇到表问题并决定导入数据。表行将在一天内到期(数据到期日期减去 ttlRelativedate 配置参数的默认值,即当前日期)。但是,如果要将表行的到期日期延长到五天而不是一天,请使用 ttlRelativeDate 参数并选择较早的日期。因此,在此方案中,如果要将表行的失效时间延长五天,请将 ttlRelativeDate 配置参数的值设置为 2021 年 1 月 3 日,在导入表行时用作引用时间。

方案

  • 用途:指定要迁移的数据的方案。如果未指定此项,则 NoSQL Database Migrator 将假定该表已存在于 sink 的存储中。

  • 数据类型:对象
  • 必需 (Y/N): N

schemaInfo.schemaPath

  • 用途:指定包含 NoSQL 表的 DDL 语句的文件的绝对路径。

    NoSQL Database Migrator 在迁移数据之前执行此文件中列出的 DDL 命令。

    NoSQL Database MigratorschemaPath 文件中每行不支持多个 DDL 语句。

  • 数据类型:字符串

  • 必需 (Y/N): N

    注意:

    defaultSchemaschemaPath 是互斥的。
  • 示例:"schemaPath" : "/home/user/schema_file"

schemaInfo.defaultSchema

  • 用途:将此参数设置为 true 将指示 NoSQL Database Migrator 创建具有默认方案的表。默认方案由迁移程序本身定义。有关默认方案定义的详细信息,请参阅使用 Oracle NoSQL 数据迁移程序中的默认方案

  • 数据类型:布尔型

  • 必需 (Y/N): N

    注意:

    defaultSchemaschemaPath 是互斥的。

schemaInfo.useSourceSchema

  • 用途:指定在迁移 NoSQL 表时是否使用源提供的表方案定义。

  • 数据类型:布尔型

  • 必需 (Y/N): N

    注意:

    defaultSchemaschemaPathuseSourceSchema 参数互斥。仅指定这些参数之一。
  • 示例:
    • 使用默认方案:
      "schemaInfo" : {
        "defaultSchema" : true
      }
    • 使用预定义的方案:
      "schemaInfo" : {
       "schemaPath" : "<complete/path/to/the/schema/definition/file>"
      }
    • 使用源方案:
      "schemaInfo" : {
        "useSourceSchema" : true
      }

schemaInfo.DDBPartitionKey

  • 用途:指定要在接收器 Oracle NoSQL Database 表中使用的 DynamoDB 分区键和相应的 Oracle NoSQL Database 类型。此键将用作 NoSQL 数据库表分片键。仅当 defaultSchema 设置为 true 且源格式为 dynamodb_json 时才适用。有关更多详细信息,请参阅将 DynamoDB 类型映射到 Oracle NoSQL 类型
  • 必需 (Y/N): Y(如果 defaultSchema 为真且源为 dynamodb_json)。
  • 示例:"DDBPartitionKey" : "PersonID:INTEGER"

    注意:

    如果分区键包含 dash(-) 或 dot(.),则迁移程序会将其替换为下划线 (_),因为 NoSQL 列名不支持点和短划线。

schemaInfo.DDBSortKey

  • 用途:指定要在目标 Oracle NoSQL Database 表中使用的 DynamoDB 排序关键字及其对应的 Oracle NoSQL Database 类型。如果导入 DynamoDB 表没有排序键,则不能设置此属性。此键将用作 NoSQL 数据库表中主键的非分片部分。仅当 defaultSchema 设置为 true 且源为 dynamodb_json 时才适用。有关更多详细信息,请参阅将 DynamoDB 类型映射到 Oracle NoSQL 类型
  • 必需 (Y/N): N
  • 示例:"DDBSortKey" : "Skey:STRING"

    注意:

    如果排序关键字包含 dash(-) 或 dot(.),则迁移程序会将其替换为下划线 (_),因为 NoSQL 列名不支持点和短划线。

overwrite

  • 用途:指示从源迁移的记录已存在于接收器中时 NoSQL Database Migrator 的行为。

    如果该值设置为 false,则在迁移表时,NoSQL Database Migrator 将跳过在接收器中已存在相同主键的记录。

    如果该值设置为 true,则在迁移表时,NoSQL Database Migrator 将覆盖在接收器中已存在相同主键的记录。

    如果未指定,它缺省为 true。

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"overwrite" : false

Oracle NoSQL Database Cloud Service

下面显示了 Oracle NoSQL Database Cloud Service 作为 NoSQL Database Migrator 汇的配置文件格式。

Sink 配置模板

"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>,
  "writeUnitsPercent" : <table writeunits percent>,
  "requestTimeoutMs" : <timeout in milli seconds>,
  "overwrite" : <true|false>
}

Sink 参数

公共配置参数

  • 类型

    使用 "type" : "nosqldb_cloud"

  • endpoint
    示例:
    • 区域 ID:"endpoint" : "us-ashburn-1"

    • URL 格式:"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"

  • 身份证明
    示例:
    1. "credentials" : "/home/user/.oci/config"
    2. "credentials" : "/home/user/security/config"
  • credentialsProfile
    示例:
    1. "credentialsProfile" : "DEFAULT"
    2. "credentialsProfile" : "ADMIN_USER"
  • useInstancePrincipal

    示例:"useInstancePrincipal" : true

  • useDelegationToken

    示例:"useDelegationToken" : true

    注意:

    仅当从 Cloud Shell 运行 NoSQL Database Migrator 时,才支持使用委派令牌进行验证。
  • requestTimeoutMs

    示例:"requestTimeoutMs" : 5000

唯一配置参数

table (表)

  • 用途:指定用于存储迁移数据的表名。

    您必须确保此表存在于 Oracle NoSQL Database Cloud Service 中。否则,必须在 sink 配置中使用 schemaInfo 对象来指示 NoSQL Database Migrator 创建表。

    此表的方案必须与源数据匹配。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:
    • 指定表 "table" : "mytable"
    • 指定子表 "table" : "mytable.child"

      注意:

      您可以将子表从有效数据源迁移到 Oracle NoSQL Database Cloud ServiceNoSQL Database Migrator 在每次执行中仅复制一个表。确保在子表之前迁移了父表。

区间

  • 用途:指定表所在区间的名称或 OCID。

    如果未提供任何值,则缺省为 root 区间。

    您可以在 OCI 云控制台的“监管”下的“区间浏览器”窗口中找到区间的 OCID。

  • 数据类型:字符串
  • 必需 (Y/N): Y(如果表不在租户的根区间中)或者 useInstancePrincipal 参数设置为 true 时。

    注意:

    如果 useInstancePrincipal 参数设置为 true,则区间必须指定区间 OCID,而不是名称。
  • 示例:
    • 划分名称

      "compartment" : "mycompartment"

    • 符合其父区间的限定区间名称

      "compartment" : "parent.childcompartment"

    • 未提供值。默认为根区间。

      "compartment": ""

    • 区间 OCID

      "compartment" : "ocid1.tenancy.oc1...4ksd"

includeTTL

  • 用途:指定在导入 Oracle NoSQL Database 表时是否包括源提供的表行的 TTL 元数据。

    如果未指定此参数,则默认为 false。在这种情况下,NoSQL 数据库迁移程序不包括源在导入 Oracle NoSQL Database 表时提供的表行的 TTL 元数据。

    如果设置为 true,NoSQL Database Migrator 工具将在导入表行时对 TTL 元数据执行以下检查:
    • 如果导入没有 _metadata 定义的行,则 NoSQL 数据库迁移程序工具会将 TTL 设置为 0,这意味着该行永不过期。
    • 如果导入具有 _metadata 定义的行,则 NoSQL 数据库迁移程序工具会在导入行时将 TTL 值与引用时间进行比较。如果该行已相对于参考时间到期,则跳过该行。如果行尚未到期,则会随 TTL 值一起导入该行。缺省情况下,导入操作的引用时间是从运行 NoSQL 数据库迁移程序工具的计算机的 System.currentTimeMillis() 获取的当前时间(以毫秒为单位)。但是,如果要延长失效时间并导入原本会立即失效的行,也可以使用 ttlRelativeDate 配置参数设置定制引用时间。
      用于计算行到期时间的公式如下:
      expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds)
      if (expiration <= 0) then it indicates that row has expired.

      注意:

      由于 Oracle NoSQL TTL 边界以小时和天为单位,在某些情况下,导入行的 TTL 可能会调整为最近的小时或天。例如,考虑到期值为 1629709200000 (2021-08-23 09:00:00) 且参考时间值为 1629707962582 (2021-08-23 08:39:22) 的行。此处,尽管相对于导入此数据时的参考时间,该行未失效,但该行的新 TTL 为 1629712800000 (2021-08-23 10:00:00)
  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"includeTTL" : true

ttlRelativeDate

  • 用途:以 YYYY-MM-DD hh:mm:ss 格式指定 UTC 日期,用于在导入到 Oracle NoSQL Database 期间设置表行的 TTL 到期。

    如果要导出的数据中的表行已过期,则可以将 ttlRelativeDate 参数设置为所导出数据中表行的到期时间之前的日期。

    如果未指定此参数,则缺省为从运行 NoSQL Database Migrator 工具的计算机的 System.currentTimeMillis() 获取的当前时间(以毫秒为单位)。

  • 数据类型:日期
  • 必需 (Y/N): N
  • 示例:"ttlRelativeDate" : "2021-01-03 04:31:17"

    我们来考虑这样一种方案:表行在 2021 年 1 月 1 日起 7 天后过期。导出此表后,在 2021 年 1 月 7 日,您会遇到表问题并决定导入数据。表行将在一天内到期(数据到期日期减去 ttlRelativedate 配置参数的默认值,即当前日期)。但是,如果要将表行的到期日期延长到五天而不是一天,请使用 ttlRelativeDate 参数并选择较早的日期。因此,在此方案中,如果要将表行的失效时间延长五天,请将 ttlRelativeDate 配置参数的值设置为 2021 年 1 月 3 日,在导入表行时用作引用时间。

schemaInfo

  • 用途:指定要迁移的数据的方案。

    如果未指定此参数,NoSQL Database Migrator 将假定 Oracle NoSQL Database Cloud Service 中已存在该表。

    如果未指定此参数,且池中不存在该表,则迁移将失败。

  • 数据类型:对象
  • 必需 (Y/N): N

schemaInfo.schemaPath

  • 用途:指定包含 NoSQL 表的 DDL 语句的文件的绝对路径。

    NoSQL Database Migrator 在迁移数据之前执行此文件中列出的 DDL 命令。

    NoSQL Database MigratorschemaPath 文件中每行不支持多个 DDL 语句。

  • 数据类型:字符串

  • 必需 (Y/N): N

    注意:

    defaultSchemaschemaPath 是互斥的。
  • 示例:"schemaPath" : "/home/user/schema_file"

schemaInfo.defaultSchema

  • 用途:将此参数设置为将指示 NoSQL 数据库迁移程序创建具有默认方案的表。默认方案由迁移程序本身定义。有关默认方案定义的详细信息,请参阅使用 Oracle NoSQL 数据迁移程序中的默认方案

  • 数据类型:布尔型

  • 必需 (Y/N): N

    注意:

    defaultSchemaschemaPath 是互斥的。

schemaInfo.useSourceSchema

  • 用途:指定在迁移 NoSQL 表时是否使用源提供的表方案定义。

  • 数据类型:布尔型

  • 必需 (Y/N): N

    注意:

    defaultSchemaschemaPathuseSourceSchema 参数互斥。仅指定这些参数之一。
  • 示例:
    • 使用默认方案:
      "schemaInfo": {
        "defaultSchema": true,
        "readUnits": 100,
        "writeUnits": 60,
        "storageSize": 1
      }
    • 使用预定义的方案:
      "schemaInfo": {
        "schemaPath": "<complete/path/to/the/schema/definition/file>",
        "readUnits": 100,
        "writeUnits": 100,
        "storageSize": 1
      }
    • 使用源方案:
      "schemaInfo": {
        "useSourceSchema": true,
        "readUnits": 100,
        "writeUnits": 60,
        "storageSize": 1
      }

schemaInfo.DDBPartitionKey

  • 用途:指定要在接收器 Oracle NoSQL Database 表中使用的 DynamoDB 分区键和相应的 Oracle NoSQL Database 类型。此键将用作 NoSQL 数据库表分片键。仅当 defaultSchema 设置为 true 且源格式为 dynamodb_json 时才适用。有关更多详细信息,请参阅将 DynamoDB 类型映射到 Oracle NoSQL 类型
  • 必需 (Y/N): Y(如果 defaultSchema 为真且源为 dynamodb_json)。
  • 示例:"DDBPartitionKey" : "PersonID:INTEGER"

    注意:

    如果分区键包含 dash(-) 或 dot(.),则迁移程序会将其替换为下划线 (_),因为 NoSQL 列名不支持点和短划线。

schemaInfo.DDBSortKey

  • 用途:指定要在目标 Oracle NoSQL Database 表中使用的 DynamoDB 排序关键字及其对应的 Oracle NoSQL Database 类型。如果导入 DynamoDB 表没有排序键,则不能设置此属性。此键将用作 NoSQL 数据库表中主键的非分片部分。仅当 defaultSchema 设置为 true 且源为 dynamodb_json 时才适用。有关更多详细信息,请参阅将 DynamoDB 类型映射到 Oracle NoSQL 类型
  • 必需 (Y/N): N
  • 示例:"DDBSortKey" : "Skey:STRING"

    注意:

    如果排序关键字包含 dash(-) 或 dot(.),则迁移程序会将其替换为下划线 (_),因为 NoSQL 列名不支持点和短划线。

schemaInfo.onDemandThroughput

  • 用途:指定使用按需读取和写入吞吐量创建表。如果未设置此参数,则使用预配容量创建表。

    默认值为 false

    注意:

    此参数不适用于子表,因为它们共享顶层父表的吞吐量。
  • 数据类型:布尔型

  • 必需 (Y/N): N

  • 示例:"onDemandThroughput" : "true"

schemaInfo.readUnits

  • 用途:指定新表的读取吞吐量。

    注意:

    • 此参数不适用于预配了按需容量的表。
    • 此参数不适用于子表,因为它们共享顶层父表的读取吞吐量。
  • 数据类型:整数

  • 必需 (Y/N): Y,如果表不是子表,或者 schemaInfo.onDemandThroughput 参数设置为 false,则为 N。

  • 实例:"readUnits" : 100

schemaInfo.writeUnits

  • 用途:指定新表的写入吞吐量。

    注意:

    • 此参数不适用于预配了按需容量的表。
    • 此参数不适用于子表,因为它们共享顶层父表的写入吞吐量。
  • 数据类型:整数

  • 必需 (Y/N): Y,如果表不是子表,或者 schemaInfo.onDemandThroughput 参数设置为 false,则为 N。

  • 实例:"writeUnits" : 100

schemaInfo.storageSize

  • 用途:指定新表的存储大小 (GB)。

    注意:

    此参数不适用于子表,因为它们共享顶层父表的存储大小。
  • 数据类型:整数

  • 必需 (Y/N): Y,如果表不是子表,则为 N。

  • 示例:
    • 使用 schemaPath

      "schemaInfo" : { 
        "schemaPath" : "</path/to/a/schema/file>",
        "readUnits" : 500,
        "writeUnits" : 1000,
        "storageSize" : 5 }
    • 使用 defaultSchema

      "schemaInfo" : {
        "defaultSchema" :Yes,
        "readUnits" : 500,   
        "writeUnits" : 1000,   
        "storageSize" : 5  
      }

writeUnitsPercent

  • 用途:指定在迁移活动期间要使用的表写入单位百分比。迁移数据所需的时间量与此属性直接成正比。

    默认值为 90。有效范围是介于 1 到 100 之间的任意整数。

    请参阅Oracle NoSQL Database Migrator 故障排除,了解如何使用此属性来提高数据迁移速度。

  • 数据类型:整数
  • 必需 (Y/N): N
  • 示例:"writeUnitsPercent" : 90

overwrite

  • 用途:指示从源迁移的记录已存在于接收器中时 NoSQL Database Migrator 的行为。

    如果该值设置为 false,则在迁移表时,NoSQL Database Migrator 将跳过在接收器中已存在相同主键的记录。

    如果该值设置为 true,则在迁移表时,NoSQL Database Migrator 将覆盖在接收器中已存在相同主键的记录。

    如果未指定,它缺省为 true。

  • 数据类型:布尔型
  • 必需 (Y/N): N
  • 示例:"overwrite" : false

转换配置模板

本主题介绍了 Oracle NoSQL Database Migrator 支持的不同转换的配置参数。有关完整的配置文件模板,请参见 Configuration File in Terminology used with NoSQL Data Migrator

Oracle NoSQL Database Migrator 允许您修改数据,即在迁移活动中添加数据转换。您可以在单个迁移中定义多个转换。在这种情况下,转换的顺序至关重要,因为源数据按给定顺序进行每个转换。一个转换的输出将成为迁移程序管道中下一个转换的输入。

NoSQL 数据迁移程序支持的不同转换包括:

表 - 转换

转换配置属性 您可以使用此转换来 ...
ignoreFields 在写入到接收器之前,忽略源行中标识的列。
includeFields 在写入到水槽之前包括源行中标识的列。
renameFields 在写入到接收器之前,重命名源行中的已标识列。
aggregateFields 将源中的多个列聚集到池中的单个列中。在此转换过程中,您还可以标识要在聚合中排除的列。这些字段将从聚合列中跳过。

您可以在下面找到每个支持的转换的配置模板。

ignoreFields

ignoreFields 转换的配置文件格式如下所示。

转换配置模板

"transforms" : {
  "ignoreFields" : ["<field1>","<field2>",...]
}

转换参数

ignoreFields

  • 用途:要从源记录中忽略的列名数组。

    注意:

    您只能提供顶层字段。无法对嵌套字段中的数据应用转换。
  • 数据类型:字符串数组
  • 必需 (Y/N): Y
  • 示例:要忽略源记录中名为 "name" 和 "address" 的列,请执行以下操作:

    "ignoreFields" : ["name","address"]

includeFields

includeFields 转换的配置文件格式如下所示。

转换配置模板

"transforms" : {
  "includeFields" : ["<field1>","<field2>",...]
}

转换参数

includeFields

  • 用途:要从源记录中包括的列名数组。包括数组中指定的字段,其余字段将被忽略。

    注意:

    如果指定空数组,NoSQL Database Migrator 工具将引发错误。此外,您只能指定顶层字段。NoSQL Database Migrator 工具不会将转换应用于嵌套字段中的数据。
  • 数据类型:字符串数组
  • 必需 (Y/N): Y
  • 示例:要忽略源记录中名为 "age" 和 "gender" 的列,请执行以下操作:

    "includeFields" : ["age","gender"]

renameFields

renameFields 转换的配置文件格式如下所示。

转换配置模板

"transforms" : {
  "renameFields" : {
    "<old_name>" : "<new_name>",
    "<old_name>" : "<new_name>,"
    .....
  }
}

转换参数

renameFields

  • 用途:要重命名的列的旧名称和新名称的键 - 值对。

    注意:

    您只能提供顶层字段。无法对嵌套字段中的数据应用转换。
  • 数据类型:JSON 对象
  • 必需 (Y/N): Y
  • 示例:要将名为 "residence" 的列重命名为 "address",将名为 "_id" 的列重命名为 "id":

    "renameFields" : { "residence" : "address", "_id" : "id" }

aggregateFields

aggregateFields 转换的配置文件格式如下所示。

转换配置模板

"transforms" : {
  "aggregateFields" : {
    "fieldName" : "name of the new aggregate field",
    "skipFields" : ["<field1>","<field2">,...]
  }
}

转换参数

aggregateFields

  • 用途:汇中聚合字段的名称。

  • 数据类型:字符串
  • 必需 (Y/N): Y
  • 示例:如果给定记录为:

    {
      "id" : 100,
      "name" : "john",
      "address" : "USA",
      "age" : 20
    }

    如果聚合转换为:

    "aggregateFields" : {
      "fieldName" : "document",
      "skipFields" : ["id"]
    }

    池中的聚合列如下所示:

    {
      "id": 100,
      "document": {
        "name": "john",
        "address": "USA",
        "age": 20
      }
    }

将 DynamoDB 类型映射到 Oracle NoSQL 类型

下表显示了 DynamoDB 类型到 Oracle NoSQL 类型的映射。

表 - 将 DynamoDB 类型映射到 Oracle NoSQL 类型

# DynamoDB 类型 NoSQL JSON 列的 JSON 类型 Oracle NoSQL 类型
1 字符串 (S) JSON 字符串 STRING
2 数字类型 (N) JSON 编号 整数/长/浮点数/双精度/数字
3 布尔值 (BOOL) JSON 布尔值 BOOLEAN
4 二进制类型 (B) - 字节缓冲区 BASE-64 编码的 JSON 字符串 BINARY
5 NULL JSON 为空值 NULL
6 字符串集 (SS) JSON 字符串数组 数组(字符串)
7 数字集 (NS) JSON 数字数组 数组(整数/长/浮点数/双精度/数字)
8 二进制集 (BS) Base-64 编码字符串的 JSON 数组 数组(二进制)
9 列表 (L) JSON 数组 数组 (JSON)
10 映射 (M) JSON 对象 JSON
11 分区关键字 NA PRIMARY KEY 和 SHARD KEY
12 排序关键字 NA 主要关键字
13 具有短划线和点的属性名称 具有下划线的 JSON 字段名称 下划线的列名
将 DynamoDB 类型映射到 Oracle NoSQL 类型时需要考虑的其他几点:
  • DynamoDB 只能为 Numbers 支持一种数据类型,最多可具有 38 位精度,而 Oracle NoSQL 支持根据 data.You 的范围和精度进行选择的多种类型,可以选择适合输入数据范围的相应数字类型。如果不确定数据的性质,可以使用 NoSQL NUMBER 类型。
  • DynamoDB 只能为 Numbers 支持一种数据类型,最多可具有 38 位精度,而 Oracle NoSQL 支持根据 data.You 的范围和精度进行选择的多种类型,可以选择适合输入数据范围的相应数字类型。如果不确定数据的性质,可以使用 NoSQL NUMBER 类型。
  • DynamoDB 中的分区密钥限制为 2048 字节,但 Oracle NoSQL Cloud Service 的主键/分片密钥限制为 64 字节。
  • DynamoDB 中的排序键限制为 1024 字节,但 Oracle NoSQL Cloud Service 的主键限制为 64 字节。
  • DynamoDB 中的属性名称长度可以为 64KB,但 Oracle NoSQL 云服务列名的长度限制为 64 个字符。

Oracle NoSQL 到 Parquet 数据类型映射

介绍 Oracle NoSQL 数据类型到 Parquet 数据类型的映射。

NoSQL 类型 Parquet 类型
BOOLEAN BOOLEAN
INTEGER INT32
LONG INT64
FLOAT DOUBLE
DOUBLE DOUBLE
BINARY BINARY
FIXED_BINARY BINARY
STRING 二进制(字符串)
ENUM 二进制(字符串)

或者

BINARY(ENUM),如果配置了逻辑 ENUM

UUID 二进制(字符串)

或者

FIXED_BINARY(16),如果配置了逻辑 UUID

TIMESTAMP(p) INT64(TIMESTAMP(p))
NUMBER DOUBLE
field_name 数组 (T)
group field_name(LIST) {
  repeated group list {
      required T element
  }
}
field_name MAP(T)
group field_name (MAP) {
    repeated group key_value (MAP_KEY_VALUE) {
       required binary key (STRING);
        required T value;
    }
}
field_name RECORD(K₁ T₁ N₁, Kٖ₂ T₂ N₂, ....)

其中:

K = 密钥名称

T = 类型

N = 可为空或不可为空

group field_name {
    ni == true ? optional Ti ki : required Ti ki   
}
JSON 二进制(字符串)

或者

BINARY(JSON),如果配置了逻辑 JSON

注意:

当 NoSQL 数字类型转换为 Parquet Double 类型时,如果值不能用 Double 表示,则可能会丢失精度。如果数字太大,无法表示为 Double,则将其转换为 Double.NEGATIVE_INFINITY 或 Double.POSITIVE_INFINITY。

将 DynamoDB 表映射到 Oracle NoSQL 表

在 DynamoDB 中,表是项的集合,每项都是属性的集合。表中的每一项都有一个唯一标识符或主键。除了主键,该表没有方案。每个项目都可以有自己的不同属性。

DynamoDB 支持两种不同类型的主键:
  • 分区键 - 简单主键,由一个称为分区键的属性组成。DynamoDB 使用分区键的值作为内部散列函数的输入。散列函数的输出确定将存储项的分区。
  • 分区键和排序键 - 作为组合主键,此类型的键由两个属性组成。第一个属性是分区键,第二个属性是排序键。DynamoDB 使用分区键值作为内部散列函数的输入。散列函数的输出确定将存储项的分区。具有相同分区键值的所有项都存储在一起,按排序键值排序。

相比之下,Oracle NoSQL 表支持灵活的数据模型,支持模式和无模式设计。

有两种不同的 DynamoDB 表建模方法:
  1. 将 DynamoDB 表建模为 JSON 文档(建议):在此建模中,将 Dynamo DB 表的所有属性映射到 NoSQL 表的 JSON 列(分区键和排序键除外)。将分区键和排序键建模为 NoSQL 表的主键列。您将使用 AggregateFields 转换将非主键数据聚合为 JSON 列。

    注意:

    迁移程序提供了用户友好的配置 defaultSchema,用于自动创建无方案的 DDL 表,该表还将属性聚合为 JSON 列。
  2. 将 DynamoDB 表建模为 NoSQL 表中的固定列:在此建模中,对于 DynamoDB 表的每个属性,将在 NoSQL 表中创建列,如将 DynamoDB 类型映射到 Oracle NoSQL 类型中指定的那样。您将建模分区键并按主键排序键属性。仅当确信导入 DynamoDB 表方案是固定的并且每个项具有大部分属性的值时,才应使用此项。如果 DynamoDB 项没有共同的属性,则会导致大量 NoSQL 列的值为空。

    注意:

    强烈建议在将数据从 DynamoDB 迁移到 Oracle NoSQL Database 时使用无方案表,因为 DynamoDB 表的性质是无方案。这尤其适用于大型表,其中每条记录的内容在整个表中可能不一致。

Oracle NoSQL Database Migrator 故障排除

了解在使用 时可能面临的一般挑战以及如何解决这些挑战。

迁移失败。如何解决此错误?

数据迁移失败的原因可能有多种。下面列出了重要原因:

表 - 迁移故障原因

错误消息 含义 分辨率
Failed to connect to Oracle NoSQL Database 迁移程序无法与 NoSQL 数据库建立连接。
  • 检查配置 JSON 文件中 storeNamehelperHosts 属性的值是否有效以及主机是否可访问。
  • 对于安全存储,使用正确的用户名和密码值验证安全文件是否有效。
Failed to connect to Oracle NoSQL Database Cloud Service 迁移程序无法与 Oracle NoSQL Database Cloud Service 建立连接。
  • 验证在配置 JSON 文件中指定的端点 URL 或区域名称是否正确。
  • 检查 OCI 身份证明文件是否在配置 JSON 文件中指定的路径中可用。
  • 确保 OCI 身份证明中提供的 OCI 身份证明有效。
Table not found NoSQL 数据库迁移程序找不到为迁移标识的表。

来源:

  • 验证表是否存在于源数据库中。
  • 如果表是在非默认名称空间中创建,请确保在配置 JSON 文件中使用其名称空间对表进行限定。
  • 验证您是否具有访问表所需的读/写授权。
  • 如果源为 Oracle NoSQL Database Cloud Service ,请验证配置 JSON 文件中是否指定了有效的区间名称,并确保您具有访问该表所需的授权。

对于水槽:

  • 验证该表是否存在于水槽中。如果表不存在,则必须手动创建表或使用 schemaInfo 配置通过迁移创建表。
DDL Execution failed 输入方案定义文件中提供的 DDL 命令无效。
  • 检查 schemaPath 文件中 DDL 命令的语法。
  • 确保 schemaPath 文件中每行只有一个 DDL 语句。
failed to write record to the sink table with java.lang.IllegalArgumentException 输入记录与接收器的表方案不匹配。
  • 检查目标接收器表中指定的数据类型和列名是否与接收器表方案匹配。
  • 如果应用了任何转换,请检查转换的记录是否与接收表模式匹配。
Request timeout 源或接收器的操作未在预期时间内完成。
  • 验证网络连接。
  • 检查 NoSQL 数据库是否已启动且正在运行。
  • 尝试增加配置 JSON 文件中的 requestTimeout 值。

重新启动失败的迁移之前应考虑哪些事项?

当数据迁移任务失败时,接收器将处于包含导入数据的中间状态,直到出现故障。您可以从日志中确定错误和故障详细信息,并在诊断并更正错误后重新启动迁移。重新启动的迁移将从头开始处理所有数据。无法检查点并从故障点重新启动迁移。因此,NoSQL Database Migrator 会覆盖已迁移到水槽的任何记录。

迁移速度太慢。我怎么能加速呢?

数据迁移所用的时间取决于多个因素,例如迁移的数据量、网络速度、数据库上的当前负载。对于云服务,迁移速度还取决于预配的读取吞吐量和写入吞吐量。因此,要提高迁移速度,您可以:
  • 在迁移数据时,尝试减少 Oracle NoSQL Database 上的当前工作量。
  • 确保运行迁移、源和接收器的计算机都位于同一数据中心,并且网络延迟极小。
  • 对于 Oracle NoSQL Database Cloud Service ,请预配高读/写吞吐量,并验证为表分配的存储是否足够。如果 NoSQL Database Migrator 未创建表,则可以增加写入吞吐量。如果迁移程序正在创建表,请考虑为 sink 配置中的 schemaInfo.writeUnits 参数指定更高的值。数据迁移完成后,您可以降低此值。请注意每日吞吐量更改限制。请参阅云限制接收配置模板

我有一个涉及大量数据集的长时间运行的迁移。如何跟踪迁移的进度?

您可以启用其他日志记录来跟踪长时间运行的迁移的进度。要控制 Oracle NoSQL Database Migrator 的日志记录行为,必须在 logging.properties 文件中设置所需的日志记录级别。此文件随 NoSQL Database Migrator 程序包一起提供,可在 Oracle NoSQL Database Migrator 解压缩到的目录中使用。不同的日志记录级别是 OFF, SEVERE, WARNING, INFO, FINE, ALL,按详细程度的增加顺序排列。将日志级别设置为 OFF 将关闭所有日志记录信息,而将日志级别设置为 ALL 将提供完整的日志信息。默认日志级别为 WARNING。默认情况下,所有日志记录输出都配置为转到控制台。您可以在 logging.properties 文件中查看有关每个日志级别的注释。