export

java -jar KVHOME/lib/kvtool.jar export
-export-all | -table table_names | -namespace namespaces
-store storeName
-helper-hosts helper_hosts
-config config_file_name
[-format BINARY | JSON]
[-username user]
[-security security-file-path]
[-verbose]

エクスポート・ユーティリティのコマンドライン・パラメータ

  • -export-allを指定すると、ストア全体がエクスポートされます。このオプションを指定する場合、-tableおよび-namespaceは指定できません。
  • -tableは、エクスポートする1つ以上の表の名前です。複数の表をエクスポートするには、表名のカンマ区切りリストを指定します。

    このパラメータを指定する場合、-export-allおよび-namespaceは指定できません。

    ノート:

    子表をエクスポートする場合は、親表から子表への完全修飾パスを指定する必要があります。たとえば、表grandchild1をエクスポートするには、parent1.child1.grandhchild1という完全修飾パスを指定する必要があります。

    ノート:

    ネームスペースを使用している場合は、-tableフラグで表の完全修飾名を指定する必要があります。たとえば、namespace1:userProfilesなどです。

  • -namespaceは、エクスポートする1つ以上のネームスペースの名前です。複数のネームスペースをエクスポートするには、ネームスペースのカンマ区切りリストを指定します。

    このパラメータを指定する場合、-tableまたは-export-allは指定できません。

  • -storeは、Oracle NoSQL Databaseからデータをエクスポートするストアの名前です。

    ノート:

    このパラメータは必須で、大/小文字が区別されます。
  • -helper-hostsは、hostname:port形式のホスト名とレジストリ・ポートのペアのリストです。このリストでは、各項目をカンマで区切って指定します。少なくとも1つのヘルパー・ホストを指定する必要があります。
  • -configは、使用する構成ファイルの名前です。

    ノート:

    このパラメータは必須です。
  • -format BINARY | JSON: Oracle NoSQL Databaseからデータが読み取られる場合、-formatフラグは、データがシンクに格納される形式を指定します。指定しない場合、形式はBINARYになります。
  • -usernameは、データのエクスポートに使用するユーザーの名前です。ストアが認証を必要とするように構成されている場合、このパラメータは必須です。

    ノート:

    このパラメータでは大/小文字が区別されます。
  • -securityは、クライアント・セキュリティ構成ファイルです。ストアが認証を必要とするように構成されている場合、このパラメータは必須です。セキュリティ情報を含むファイルへの完全修飾パスを指定するか、ファイル名を指定できます。完全修飾されていない場合、エクスポート・ユーティリティは、現在の作業ディレクトリでセキュリティ・ファイルを検索します。このファイルに含まれるパラメータの詳細は、Javaダイレクト・ドライバ開発者ガイドSSLの構成を参照してください。次に例を示します。
    oracle.kv.auth.username=clientUID1
    oracle.kv.auth.pwdfile.file=/home/nosql/login.pwd
    oracle.kv.transport=ssl
    oracle.kv.ssl.trustStore=/home/nosql/client.trust

    Kerberosを使用している場合、このファイルは次のようになります。

    oracle.kv.auth.kerberos.keytab=kerberos/mykeytab
    oracle.kv.auth.username=krbuser@EXAMPLE.COM
    oracle.kv.auth.external.mechanism=kerberos
    oracle.kv.auth.kerberos.services=node01:oraclenosql/node01.example.com@EXAMPLE.COM
    oracle.kv.auth.kerberos.mutualAuth=false

    ノート:

    このパラメータでは大/小文字が区別されます。
  • -verboseを指定すると、トレース、デバッグおよび進捗のメッセージが標準出力に出力されます。このオプションは、特に表またはデータセットが大規模な場合に、エクスポート操作の進捗状況を追跡するために役立ちます。

ノート:

インポート/エクスポート・ユーティリティの詳細は、インポートおよびエクスポート・ユーティリティの使用を参照してください。

エクスポート・ユーティリティの構成ファイル

構成ファイルはJSON形式で指定します。エクスポートを実行するための構成ファイルの形式は次のとおりです。

{
    "configFileVersion": <version>,
    "abortOnError": [false | true],
    "errorOutput": <error-dir>,
    "errorFileSizeMB": <error-file-chunk-size-mb>,
    "errorFileCount": <error-file-chunk-count>,
    "checkpointOutput": <checkpoint-dir>,
    "requestTimeoutMs": <read-request-timeout-ms>,
    "path": <local-output-directory>,
    "fileSizeMB": <file-chunk-size-MB>,
    "pretty": [false | true]
}

次で記載されていないかぎり、すべての構成パラメータは大/小文字が区別されないことに注意してください。

  • configFileVersion - オプション。このフィールドは、構成ファイルのバージョンを表します。この構成オプションでサポートされている値は、1のみです。
  • abortOnError - オプションtrueの場合、最初にエラーが発生した時点でユーティリティは終了します。エクスポートされたデータを含むターゲット・ストレージのタイプは実行中状態になり、エラーの前にOracle NoSQL Databaseから抽出されたデータがすべて含まれます。falseの場合、エクスポートは続行され、エラーは構成済のerrorOutputディレクトリにあるファイルに記録されます。デフォルトはtrueです。
  • errorOutput - オプションで、大/小文字が区別されます。ユーティリティがエラー・ログ・ファイルを作成するディレクトリです。このファイルには、エラーに関連するOracle NoSQL Databaseのデータとともにエラー・メッセージが含まれます。完全修飾ディレクトリまたはディレクトリ名を使用できます。ディレクトリ名を使用する場合、インポート/エクスポート・ユーティリティが実行されている現在の作業ディレクトリに対して相対的な名前を使用します。指定しない場合、<path>/errorsにデフォルト設定されます。

    サブディレクトリは、それぞれが一連のログ・ファイルを保持し、エクスポートされる表ごとに作成されます。たとえば、table1table2およびtable3をエクスポートし、errorOutputディレクトリを/users/oracle/nosqlに設定してある場合、エクスポートによって次のファイル・セットが作成されます。

    /users/oracle/nosql/table1.err*
    /users/oracle/nosql/table2.err*
    /users/oracle/nosql/table3.err*

    エラー・ファイルはerrorFileSize (以下を参照)のサイズで作成され、0から番号が付けられます。

  • errorFileSize - オプション。単一のエラー・ファイルの最大サイズ(MB)。この制限に達すると、ユーティリティによって別のエラー・ファイルが作成されます。デフォルトは500mbです。
  • errorFileCount - オプション。エクスポートされる表ごとに作成されるエラー・ファイルの最大数。この制限に達すると、ユーティリティが終了し、エクスポートも終了します。デフォルトは5です。

    たとえば、errorFileCount2で、3つの表をエクスポートする場合、作成されるエラー・ファイルの最大数は6です。表ごとに2つのエラー・ファイルが作成されます。

  • checkpointOutput - オプションで、大/小文字が区別されます。指定する場合は、ユーティリティがチェックポイント情報を格納し、エクスポート操作の進捗状況が記録するディレクトリを示します。完全修飾ディレクトリまたはディレクトリ名を使用できます。ディレクトリ名を使用する場合、インポート/エクスポート・ユーティリティが実行されている現在の作業ディレクトリに対して相対的な名前を使用します。指定しない場合、チェックポイントは無効になります。
  • requestTimeoutMs - オプションOracle NoSQL Databaseからの読取り操作を待機する最大時間をミリ秒単位で指定します。デフォルトは5秒です。
  • path - 必須で、大/小文字が区別されます。エクスポート・パッケージが格納されるディレクトリです。完全修飾ディレクトリまたはディレクトリ名を使用できます。ディレクトリ名を使用する場合、インポート/エクスポート・ユーティリティが実行されている現在の作業ディレクトリに対して相対的な名前を使用します。
  • fileSizeMB - オプション。シンクに格納される表データのチャンクの最大サイズを示します。エクスポート時に、表はfileSizeMBのチャンクに分割され、各チャンクは別個のファイルとしてシンクに書き込まれます。このパラメータのデフォルト値は1 GBです。
  • pretty - オプションで、JSON形式でのみ使用できますtrueの場合、エクスポート・ユーティリティによってJSON出力がフォーマットされ、読みやすくなります。このオプションのデフォルト値はfalseです。

エクスポートの進捗の監視

-verboseフラグを使用して、エクスポートの進捗を追跡します。コマンドの標準出力をファイルにリダイレクトするか、Unixコマンドtail -fにパイプします。-verboseを使用している場合、エラーは標準エラーに送信されます。必要に応じて、errorOuputディレクトリを構成し、進捗メッセージとエラー・メッセージをこのディレクトリに記録できます。

同時エクスポートの実行

複数のエクスポート・ジョブを同時に実行できます。ただし、エクスポートを実行する各インスタンスは、異なるパスで実行されるため、エクスポート・ユーティリティによって書き込まれるファイルのいずれも互いに上書きされないようにすることをお薦めします。

エクスポート・チェックポイントの仕組み

エクスポート操作中のチェックポイントは、表の粒度で機能します。つまり、各表が正常にエクスポートされると、チェックポイント・レコードが書き込まれます。エクスポート操作が完了前に失敗し、再実行された場合、チェックポイント・ファイルが検査され、完了している表がスキップされます。そのため、複数の表をエクスポートする場合は、チェックポイントを使用することをお薦めします。

エクスポート・パッケージの構造

Oracle NoSQL Databaseからファイル・システムにデータをエクスポートすると、次のエクスポート・パッケージ・ディレクトリ構造が作成されます。ディレクトリ構造は、次の2つの部分で構成されます。

  • 共通 - ディレクトリ構造のこの部分は、エクスポート・ユーティリティに指定したオプションに関係なく常に作成されます。
  • Export-all - ディレクトリ構造のこの部分には、Oracle NoSQL Databaseストアに格納されているすべてのラージ・オブジェクト・データまたはキー/値のRAWデータが含まれ、-export-allオプションを使用してエクスポート・ユーティリティを実行した場合にのみエクスポートされます。

    ノート:

    「Other」と示されたこのサブツリー部分には、Oracle NoSQL Databaseストアからのキー/値のRAWデータが含まれます。

スキーマ管理

ストアのスキーマは、長時間実行されるエクスポート・プロセス中に変更されることがあります。exportユーティリティは、次のようにスキーマの変更に対処します。

  • スキーマがエクスポート・プロセス中に展開された場合、プロセスではプロセス開始時に使用可能な最新バージョンが使用されます。このデータが後でストアに再インポートされた場合、インポートされたすべてのデータがこのバージョンのスキーマと互換性を持つようになります。

    この場合、exportユーティリティは、エクスポート中にスキーマが変更されたことを示す警告をエクスポート・プロセスの最後に表示します。スキーマの変更方法を識別するためにメタデータ差分が提供されます。

  • エクスポート・プロセス中に表が削除された場合、プロセスは何もメッセージを出さずに続行します。この場合、exportユーティリティは、エクスポート中に1つ以上の表が削除されたことを示す警告をエクスポート・プロセスの最後に表示します。

  • エクスポート・プロセス中に新規の表がストアに追加された場合、その表は無視されます。エクスポート・プロセスの開始時に存在した表のみがエクスポートされます。

エクスポート終了コード

データ・エクスポートのスクリプトを作成し、スケジュール済ジョブとして実行することが必要な場合があります。インポート/エクスポート・ユーティリティの実行をスクリプト処理する場合、スクリプトでインポート/エクスポートの終了コードを調べて、実行のステータスを確認できます。インポート/エクスポート・ユーティリティのエクスポート・フェーズには、次の終了コードが定義されています。

名前 コード 説明
EXIT_OK 0 エラーは見つかりませんでした。
EXIT_USAGE 100 エクスポート・コマンドの使用方法が不正です。
EXIT_EXPSTR_NOCONNECT 102 サービス接続パラメータを使用してソース・ストアにアクセスできませんでした。
EXIT_NOCONNECT 103 指定されたストア名およびヘルパー・ホストを使用してソース・ストアに接続できませんでした。
EXIT_UNEXPECTED 104 ユーティリティで予期しないエラーが発生しました。
EXIT_NOWRITE 105 エクスポート・パッケージに書込み権限がありません。
EXIT_NO_EXPORT_FOLDER 108 指定された名前のエクスポート・フォルダが存在しません。
EXIT_SECURITY_ERROR 110 セキュリティ・ファイルのロード中にエラーが発生しました。
EXIT_NOSQL_PERM 111 ユーザーにオブジェクトの読取り権限がありません。