実行方法¶
この章では、インポート・エクスポートを実行する手段を紹介します。
注意
インポートしたデータをエクスポートする場合、またはエクスポートしたデータをインポートする場合は、
「エンコーディング」などの対応するオプションは同じ値を指定する必要があります。
ジョブスケジューラを利用する¶
ジョブスケジューラの機能を利用してインポート・エクスポートを実行する方法を紹介します。ジョブスケジューラの詳細については「ジョブスケジューラ仕様書」を参照してください。intra-mart Accel Platform では アカウントのインポート・エクスポートを行うためのジョブ・ジョブネットを提供しています。この項では、intra-mart Accel Platform が標準で提供しているアカウントのインポート・エクスポートを行うジョブ・ジョブネットの情報を紹介します。
ジョブ¶
アカウントインポート(XML形式)
ジョブカテゴリ テナントマスタ > インポート ジョブID account-import ジョブ名 アカウントインポート アカウントインポート(CSV形式)
ジョブカテゴリ テナントマスタ > インポート(CSV) ジョブID account-import-csv ジョブ名 アカウントインポート(CSV) アカウントエクスポート(XML形式)
ジョブカテゴリ テナントマスタ > エクスポート ジョブID account-export ジョブ名 アカウントエクスポート アカウントエクスポート(CSV形式)
ジョブカテゴリ テナントマスタ > エクスポート(CSV) ジョブID account-export-csv ジョブ名 アカウントエクスポート(CSV)
ジョブネット¶
アカウントインポート(XML形式)
ジョブネットカテゴリ テナントマスタ > インポート ジョブネットID account-import-jobnet ジョブネット名 アカウントインポート アカウントインポート(CSV形式)
ジョブネットカテゴリ テナントマスタ > インポート(CSV) ジョブネットID account-import-csv-jobnet ジョブネット名 アカウントインポート(CSV) アカウントエクスポート(XML形式)
ジョブネットカテゴリ テナントマスタ > エクスポート ジョブネットID account-export-jobnet ジョブネット名 アカウントエクスポート アカウントエクスポート(CSV形式)
ジョブネットカテゴリ テナントマスタ > エクスポート(CSV) ジョブネットID account-export-csv-jobnet ジョブネット名 アカウントエクスポート(CSV)
コラム
コラム
ジョブスケジューラ利用時のトランザクション管理について
ジョブスケジューラを利用したインポートでは、オプション commit-count を指定しない場合、インポート処理が完了後に一括してコミットを行います。
必要に応じてオプション commit-count の値を変更してご利用ください。
Javaから実行する¶
JavaのAPIを利用してインポート・エクスポートを実行する方法を紹介します。
インポート¶
DataImportExecutor#importData(String, InputStream, Map) を利用してインポートを行います。
完全修飾クラス名
jp.co.intra_mart.foundation.data.importer.DataImportExecutor第1引数にはインポータIDを指定します。インポータIDは以下を利用します。
XML形式のインポートの場合
jp.co.intra_mart.import.StandardAccountXmlImporterCSV形式のインポートの場合
jp.co.intra_mart.import.StandardAccountCsvImporter第2引数にはインポート元を InputStream で指定します。第3引数にはインポートオプションを Map<String, Object> で指定します。利用可能なオプションはXML形式とCSV形式で異なります。詳細は、「XMLインポートオプション」と「CSVインポートオプション」を参照してください。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 AccountImporter { private static final String IMPORTER_ID = "jp.co.intra_mart.import.StandardAccountXmlImporter"; /** * アカウントのインポートを行います。 * @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("account.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は以下を利用します。
XML形式のエクスポートの場合
jp.co.intra_mart.export.StandardAccountXmlExporterCSV形式のエクスポートの場合
jp.co.intra_mart.export.StandardAccountCsvExporter第2引数にはエクスポート先を OutputStream で指定します。第3引数にはエクスポートオプションを Map<String, Object> で指定します。利用可能なオプションはXML形式とCSV形式で異なります。詳細は、「XMLエクスポートオプション」と「CSVエクスポートオプション」を参照してください。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 AccountExporter { private static final String EXPORTER_ID = "jp.co.intra_mart.export.StandardAccountXmlExporter"; /** * アカウントのエクスポートを行います。 * @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("account.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は以下を利用します。
XML形式のインポートの場合
jp.co.intra_mart.import.StandardAccountXmlImporterCSV形式のインポートの場合
jp.co.intra_mart.import.StandardAccountCsvImporter第2引数にはインポート元を ByteReader で指定します。第3引数にはインポートオプションをObject形式で指定します。利用可能なオプションはXML形式とCSV形式で異なります。詳細は、「XMLインポートオプション」と「CSVインポートオプション」を参照してください。DataImportExecutor の詳細については「DataImportExecutorオブジェクトのAPIリスト」を参照してください。以下はXML形式でインポートを行うサンプルプログラムです。var IMPORTER_ID = 'jp.co.intra_mart.import.StandardAccountXmlImporter'; /** * アカウントのインポートを行います。 */ function doImport() { var executor = new DataImportExecutor(); var options = { 'encoding': 'UTF-8', 'validate-xml': true, 'commit-count': 100 }; // パブリックストレージ直下のaccount.xmlを選択 var storage = new PublicStorage('account.xml'); // ファイルからデータをインポート storage.openAsBinary(function(reader, error) { if (error) { // ファイルの読み込みに失敗 -> 例外処理 Logger.getLogger().error(error.message); return; } var result = executor.importData(IMPORTER_ID, reader, options); if (result.error) { // インポート失敗 -> 例外処理 Logger.getLogger().error(result.errorMessage); } }); }注意
第2引数の ByteReader を指定した場合は、オプション file は利用できません。オプション file を利用したい場合は、第2引数に null を指定してください。
エクスポート¶
DataExportExecutor#importData(String, ByteWriter, Object) を利用してエクスポートを行います。第1引数にはエクスポータIDを指定します。エクスポータIDは以下を利用します。
XML形式のエクスポートの場合
jp.co.intra_mart.export.StandardAccountXmlExporterCSV形式のエクスポートの場合
jp.co.intra_mart.export.StandardAccountCsvExporter第2引数にはエクスポート元を ByteWriter で指定します。第3引数にはエクスポートオプションをObject形式で指定します。利用可能なオプションはXML形式とCSV形式で異なります。詳細は、「XMLエクスポートオプション」と「CSVエクスポートオプション」を参照してください。DataExportExecutor の詳細については「DataExportExecutorオブジェクトのAPIリスト」を参照してください。以下はXML形式でインポートを行うサンプルプログラムです。var EXPORTER_ID = 'jp.co.intra_mart.export.StandardAccountXmlExporter'; /** * アカウントのエクスポートを行います。 */ function doExport() { var executor = new DataExportExecutor(); var options = { 'encoding': 'UTF-8', 'format-xml': false, 'fetch-count': 10 }; // パブリックストレージ直下のaccount.xmlを選択 var storage = new PublicStorage('account.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 を指定してください。