コンテンツにスキップ

11.10 データの入力とエクスポート

SQL、Append API、ファイルツールからデータ量と運用方式に合う経路を選択します。このページは選択と 検証のフローを説明します。全オプションは各ツール・SQLリファレンスを参照してください。

入力方式の選択

方式適している場合主な確認値
単一行INSERT少量入力、エラーの即時確認影響行数、生成ID
preparedバッチ同じSQLの繰り返し実行項目別の結果と失敗位置
Append API継続的なTAG・LOGの大量収集サーバー処理応答、成功・失敗件数
LOAD DATA INFILEサーバーが読み取れるファイルのロードサーバーファイルの権限、入力件数
machloadercsvimportクライアントファイルのロードログ・エラー行ファイル、入力・失敗件数

経路とツールの比較

経路・ツール実行場所と用途
SDK Appendアプリケーションから継続的に複数のTAG・LOG行を送信
SQL INSERT少量入力と通常のSQL連携
LOAD DATA INFILEサーバーが読み取れるファイルをSQLでロード
machloaderクライアントファイルのマッピング・ログ・エラー行ファイルを細かく制御
csvimportcsvexport単純なCSV入出力のラッパー
tagmetaimportTAGメタデータの一括登録・変更

tagmetaimportはTAG測定値の入力ツールではありません。正確なオプションは コマンドラインツールを確認してください。

元データを保持する必要がある時系列・イベントはTAGまたはLOGに入れます。リレーショナルな変更は TRANSACTION、小さな参照データはLOOKUP、再生成可能なメモリキャッシュはVOLATILEを使用します。 テーブル選択後、予想件数、許容遅延、再試行単位、重複ポリシーに基づいて入力方式を決めます。

SQL INSERT

次の例は作成から後片付けまで順番に実行できます。

CREATE LOG TABLE integration_insert_demo (
    event_time DATETIME,
    sensor_id  VARCHAR(32),
    value      DOUBLE
);

INSERT INTO integration_insert_demo
VALUES (TO_DATE('2026-01-01 00:00:00'), 'TEMP-01', 25.3);

SELECT sensor_id, value
FROM integration_insert_demo;

DROP TABLE integration_insert_demo;

アプリケーションでは値をpreparedパラメーターでバインドし、返された影響行数を確認します。

Append API

Appendは各SDKの専用APIでテーブルを開き、複数行を送ってからフラッシュ・クローズするフローです。 列順序と型を対象スキーマに合わせ、接続を通常のクエリと分けます。言語別の完全なコードは 本章のSDK別ページを参照してください。

Machbase DBMS 8.7.0では、Append Open時に入力する列やARRAY要素の対象を選択できます。 行ごとに異なるARRAY位置を入力する場合はSDKのスパースARRAYオブジェクトを使用します。 選択基準、API、検証例はSparse ARRAYと選択列Append APIを参照してください。

LOAD DATA INFILE

LOAD DATA INFILEはサーバーからアクセスできるファイルをSQLでロードします。 ファイルパスはサーバープロセスの視点で解釈されるため、次の点を確認します。

  • サーバーホストにファイルが存在するか
  • サーバープロセスのアカウントがファイルを読み取れるか
  • 区切り文字、引用文字、エンコーディング、日付形式が元データと一致するか
  • 失敗行を識別するログ・エラー行ファイルをどこに保存するか

構文とサポートするオプションは LOAD DATA INFILEを参照してください。

CSVファイルの準備

先頭行をヘッダーにするか決め、全行で列数と順序を統一します。NULL、空文字列、区切り文字を含む文字列、 改行、DATETIME形式をサンプルファイルで先に検証します。大きなファイルは全体実行前に小さなサンプルで テーブルスキーマと変換規則を確認します。

machloaderでインポート

基本構文は次のとおりです。

"$MACHBASE_HOME/bin/machloader"   -s 127.0.0.1 -P 5656   -u APP_USER -p "$MACH_SAMPLE_PASSWORD"   -i -t SENSOR_LOG -d /data/sensor.csv   -l /data/sensor.log -b /data/sensor.bad

ヘッダーがある場合は-H、区切り文字がカンマ以外なら-D、日付形式が異なる場合は-Fを明示します。 全オプションはmachloaderを参照してください。

csvimportでインポート

csvimportはmachloaderでよく使うCSVオプションを簡略化したツールです。

"$MACHBASE_HOME/bin/csvimport"   -s 127.0.0.1 -P 5656   -u APP_USER -p "$MACH_SAMPLE_PASSWORD"   -t SENSOR_LOG -d /data/sensor.csv -H   -l /data/sensor.log -b /data/sensor.bad

-Cの自動作成では、すべての列が意図した業務用の型になるとは限りません。本番ロードは テーブルを明示的に作成し、スキーマを確認してから実行します。

エクスポート方式の選択

方式適している場合
SAVE DATA INTOSQL条件と検索列を選択してサーバーファイルを作成
machloader -oテーブル単位のエクスポートと詳細オプションの使用
csvexport単純なCSVエクスポート
SDK SELECTアプリケーションで行を変換・送信する必要がある場合

ファイル所有権とパス

SAVE DATA INTOのパスとファイル権限はサーバープロセス基準です。machloaderとcsvexportの 出力ファイルは、ツールを実行したOSユーザー基準です。相対パスを避け、既存ファイルの上書きポリシーと 利用可能なディスク容量を先に確認します。

SAVE DATA INTO

SQL条件で結果をエクスポートする際に使用します。本番経路で実行する前に、小さな結果と専用の検証パスで ファイル作成・エンコーディング・ヘッダーを確認します。全構文は SAVE DATA INTOを参照してください。

machloaderでエクスポート

"$MACHBASE_HOME/bin/machloader"   -s 127.0.0.1 -P 5656   -u APP_USER -p "$MACH_SAMPLE_PASSWORD"   -o -t SENSOR_LOG -d /data/sensor-export.csv -H   -l /data/sensor-export.log

csvexportでエクスポート

"$MACHBASE_HOME/bin/csvexport"   -s 127.0.0.1 -P 5656   -u APP_USER -p "$MACH_SAMPLE_PASSWORD"   -t SENSOR_LOG -d /data/sensor-export.csv -H   -l /data/sensor-export.log

バッチ処理

  • バッチサイズは行サイズと遅延要件に基づいて負荷テストします。
  • 各バッチの入力元オフセットと対象の成功件数を記録します。
  • 部分失敗時は、全体の再実行より失敗行だけを分離して再処理します。
  • 同じ行を再送しても安全になるよう、業務キーと重複ポリシーを定義します。

大量入力のエラー処理

  1. ツールの終了コードと集計件数を確認します。
  2. ログでサーバーのエラーコードと最初の失敗原因を確認します。
  3. エラー行ファイルの列数、型、NULL、日付形式、エンコーディングを元データと比較します。
  4. 修正した小さなファイルで再検証し、失敗行だけを再入力します。
  5. 対象テーブルの最終件数、時間範囲、サンプル行を確認します。

認証情報や機密の生データがログ・エラー行ファイルに残る可能性があるため、アクセス権と保持期間を設定します。

最終更新日