実行方法¶
この章では、インポート・エクスポートを実行する手段を紹介します。
注意
インポートしたデータをエクスポートする場合、またはエクスポートしたデータをインポートする場合は、「エンコーディング」などの対応するオプションは同じ値を指定する必要があります。
ジョブスケジューラを利用する¶
ジョブスケジューラの機能を利用してインポート・エクスポートを実行する方法を紹介します。ジョブスケジューラの詳細については「ジョブスケジューラ仕様書」を参照してください。intra-mart Accel Platform ではジョブのインポート・エクスポートを行うためのジョブ・ジョブネットを提供しています。この項では、intra-mart Accel Platform が標準で提供しているジョブのインポート・エクスポートを行うジョブ・ジョブネットの情報を紹介します。
ジョブ¶
ジョブインポート
ジョブカテゴリ テナントマスタ > インポート ジョブID job-import ジョブ名 ジョブインポート ジョブエクスポート
ジョブカテゴリ テナントマスタ > エクスポート ジョブID job-scheduler-export ジョブ名 ジョブエクスポート
ジョブネット¶
ジョブインポート
ジョブネットカテゴリ テナントマスタ > インポート ジョブネットID job-import-jobnet ジョブネット名 ジョブインポート ジョブエクスポート
ジョブネットカテゴリ テナントマスタ > エクスポート ジョブネットID job-export-jobnet ジョブネット名 ジョブエクスポート
コラム
ジョブスケジューラ利用時のオプションについて
ジョブスケジューラを利用してインポート・エクスポートを実行する場合は、ジョブ・ジョブネットの実行パラメータにオプションを指定します。
オプションの詳細は、「インポート実行オプション」および「エクスポート実行オプション」を参照してください。
コラム
ジョブスケジューラ利用時のトランザクション管理について
ジョブスケジューラを利用したインポートでは、オプション commit-count を指定しない場合、インポート処理が完了後に一括してコミットを行います。
必要に応じてオプション commit-count の値を変更してご利用ください。
Javaから実行する¶
JavaのAPIを利用してインポート・エクスポートを実行する方法を紹介します。
インポート¶
DataImportExecutor#importData(String, InputStream, Map) を利用してインポートを行います。
完全修飾クラス名
jp.co.intra_mart.foundation.data.importer.DataImportExecutor第1引数にはインポータIDを指定します。インポータIDは以下を利用します。
インポータID
jp.co.intra_mart.import.StandardJobSchedulerXmlImporter第2引数にはインポート元を InputStream で指定します。第3引数にはインポートオプションを Map<String, Object> で指定します。詳細は、「インポート実行オプション」を参照してください。DataImportExecutor の詳細については「DataImportExecutorクラスのAPIリスト」を参照してください。以下はXML形式でインポートを行うサンプルプログラムです。package sample; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import jp.co.intra_mart.foundation.data.OptionKeyName; import jp.co.intra_mart.foundation.data.exception.DataImporterException; import jp.co.intra_mart.foundation.data.importer.DataImportExecutor; import jp.co.intra_mart.foundation.service.client.file.PublicStorage; /** * ジョブのインポートを行うクラスです。 */ public class JobImporter { private static final String IMPORTER_ID = "jp.co.intra_mart.import.StandardJobSchedulerXmlImporter"; /** * ジョブのインポートを行います。 * @throws DataImporterException インポートで何らかの例外が発生した場合。 */ public void doImport() throws DataImporterException { final DataImportExecutor executor = new DataImportExecutor(); final Map<String, Object> options = new HashMap<String, Object>(); options.put(OptionKeyName.ENCODING.value(), "UTF-8"); options.put(OptionKeyName.VALIDATE_XML.value(), true); options.put(OptionKeyName.COMMIT_COUNT.value(), 100); // パブリックストレージ直下のaccount.xmlを選択 final PublicStorage storage = new PublicStorage("job-scheduler.xml"); try { // PublicStorageからInputStreamを取得 final InputStream stream = storage.open(); try { executor.importData(IMPORTER_ID, stream, options); } finally { stream.close(); } } catch (final IOException e) { throw new DataImporterException(e); } } }注意
第2引数の InputStream を指定した場合は、オプション file は利用できません。オプション file を利用したい場合は、第2引数に null を指定してください。
エクスポート¶
DataExportExecutor#exportData(String, OutputStream, Map) を利用してエクスポートを行います。
完全修飾クラス名
jp.co.intra_mart.foundation.data.exporter.DataExportExecutor第1引数にはエクスポータIDを指定します。エクスポータIDは以下を利用します。
エクスポータID
jp.co.intra_mart.export.StandardJobSchedulerXmlExporter第2引数にはエクスポート先を OutputStream で指定します。第3引数にはエクスポートオプションを Map<String, Object> で指定します。詳細は、「エクスポート実行オプション」を参照してください。DataExportExecutor の詳細については「DataExportExecutorクラスのAPIリスト」を参照してください。以下はXML形式でエクスポートを行うサンプルプログラムです。package sample; import java.io.IOException; import java.io.OutputStream; import java.util.HashMap; import java.util.Map; import jp.co.intra_mart.foundation.data.OptionKeyName; import jp.co.intra_mart.foundation.data.exception.DataExporterException; import jp.co.intra_mart.foundation.data.exporter.DataExportExecutor; import jp.co.intra_mart.foundation.service.client.file.PublicStorage; /** * ジョブのエクスポートを行うクラスです。 */ public class JobExporter { private static final String EXPORTER_ID = "jp.co.intra_mart.export.StandardJobSchedulerXmlExporter"; /** * ジョブのエクスポートを行います。 * @throws DataExporterException エクスポートで何らかの例外が発生した場合。 */ public void doExport() throws DataExporterException { final DataExportExecutor executor = new DataExportExecutor(); final Map<String, Object> options = new HashMap<String, Object>(); options.put(OptionKeyName.ENCODING.value(), "UTF-8"); options.put(OptionKeyName.FORMAT_XML.value(), false); options.put(OptionKeyName.FETCH_COUNT.value(), 10); // パブリックストレージ直下のaccount.xmlを選択 final PublicStorage storage = new PublicStorage("job-scheduler.xml"); try { // PublicStorageからOutputStreamを取得 final OutputStream stream = storage.create(); try { executor.exportData(EXPORTER_ID, stream, options); } finally { stream.close(); } } catch (final IOException e) { throw new DataExporterException(e); } } }注意
第2引数の OutputStream を指定した場合は、オプション file は利用できません。オプション file を利用したい場合は、第2引数に null を指定してください。
スクリプト開発モデルプログラムから実行する¶
スクリプト開発モデルのAPIを利用してインポート・エクスポートを実行する方法を紹介します。
インポート¶
DataImportExecutor#importData(String, ByteReader, Object) を利用してインポートを行います。第1引数にはインポータIDを指定します。インポータIDは以下を利用します。
インポータID
jp.co.intra_mart.import.StandardJobSchedulerXmlImporter第2引数にはインポート元を ByteReader で指定します。第3引数にはインポートオプションをObject形式で指定します。詳細は、「インポート実行オプション」を参照してください。DataImportExecutor の詳細については「DataImportExecutorオブジェクトのAPIリスト」を参照してください。以下はXML形式でインポートを行うサンプルプログラムです。var IMPORTER_ID = 'jp.co.intra_mart.import.StandardJobSchedulerXmlImporter'; /** * ジョブのインポートを行います。 */ function doImport() { var executor = new DataImportExecutor(); var options = { 'encoding': 'UTF-8', 'validate-xml': true, 'commit-count': 100 }; // パブリックストレージ直下の「job-scheduler.xml」を選択 var storage = new PublicStorage('job-scheduler.xml'); // ファイルからデータをインポート storage.openAsBinary(function(reader, error) { if (error) { // ファイルの読み込みに失敗 -> 例外処理 Logger.getLogger().error(error.message); return; } result = executor.importData(IMPORTER_ID, reader, options); if (result.error) { // インポート失敗 -> 例外処理 Logger.getLogger().error(result.errorMessage); } }); }注意
第2引数の ByteReader を指定した場合は、オプション file は利用できません。オプション file を利用したい場合は、第2引数に null を指定してください。
エクスポート¶
DataExportExecutor#exportData(String, ByteWriter, Object) を利用してエクスポートを行います。第1引数にはエクスポータIDを指定します。エクスポータIDは以下を利用します。
エクスポータID
jp.co.intra_mart.export.StandardJobSchedulerXmlExporter第2引数にはエクスポート元を ByteWriter で指定します。第3引数にはエクスポートオプションをObject形式で指定します。詳細は、「エクスポート実行オプション」を参照してください。DataExportExecutor の詳細については「DataExportExecutorオブジェクトのAPIリスト」を参照してください。以下はXML形式でインポートを行うサンプルプログラムです。var EXPORTER_ID = 'jp.co.intra_mart.export.StandardJobSchedulerXmlExporter'; /** * ジョブのエクスポートを行います。 */ function doExport() { var executor = new DataExportExecutor(); var options = { 'encoding': 'UTF-8', 'format-xml': false, 'fetch-count': 10 }; // パブリックストレージ直下の「job-scheduler.xml」を選択 var storage = new PublicStorage('job-scheduler.xml'); // ファイルにデータをエクスポート storage.createAsBinary(function(writer, error) { if(error) { // ファイルの作成に失敗 -> 例外処理 Logger.getLogger().error(error.message); return; } var result = executor.exportData(EXPORTER_ID, writer, options); if (result.error) { // エクスポートに失敗 -> 例外処理 Logger.getLogger().error(result.errorMessage); } }); }注意
第2引数の ByteWriter を指定した場合は、オプション file は利用できません。オプション file を利用したい場合は、第2引数に null を指定してください。