コンテンツにスキップ

16.6.2 テーブルタイプ別機能サポート表

Machbaseは用途に応じて5種類のテーブルタイプを提供します。設計目的により、各タイプのサポート範囲は異なります。

テーブルタイプの概要

テーブルタイプ主な用途
TAG時系列センサーデータの高速収集と集計(ROLLUP)
LOGログ・イベントを定義済み列へ順次保存、テキスト検索
LOOKUPメタデータ、コードテーブル、参照データ(UPDATE/DELETE対応)
VOLATILEメモリ上のサーバー状態・キャッシュ。再起動時にデータ消失
TRANSACTIONトランザクションが必要な一般的なリレーショナルデータ

テーブルタイプ別機能サポート一覧

機能TAGLOGLOOKUPVOLATILETRANSACTION
書き込み
INSERT (SQL)OOOOO
更新/削除
UPDATEXOOO
DELETEOOOOO
トランザクション
Transaction (COMMIT/ROLLBACK)XXXXO
集計と検索
ROLLUPOXXXX
テキスト検索 (KEYWORD INDEX)XOXXX
JSON
JSON 列OOOXO
JSON path queryOOOXO
固定小数点
DECIMAL / NUMERIC 列OOOOO
固定長ARRAY
ARRAY列の作成OOOOO
ARRAY ADD/DROP COLUMNOOOO
インデックス
基本インデックスOOOOO
LSM インデックスXOXXX
参照
SELECTOOOOO
最新値の参照(SCAN_BACKWARD, TAG stat)OXXXX
JOIN (他のテーブルと)OOO
SubqueryOOOOO
VIEWOOOOO

記号: O = サポート、X = 非対応、△ = 一部をサポート、または制約あり

AppendがサポートするテーブルタイプはクライアントAPIによって異なります。使用する言語とAPIの サポート範囲はSDK Appendサポート表を 確認してください。

DECIMALは5種類すべてのテーブルタイプで使用できる正確な固定小数点型です。 NUMERICDECFIXEDNUMBERはDECIMALの別名です。精度(precision)は最大65桁、 小数部の桁数(scale)は最大30桁です。詳細は DECIMALとNUMERIC固定小数点型を参照してください。

ARRAY ADD/DROPはStandard EditionのLOG、VOLATILE、LOOKUP、TRANSACTION、TAG METADATAで サポートします。表のTAG列のは、ALTERでTAG DATAの通常列は追加できず、TAG METADATAのみ サポートすることを示します。Cluster EditionではLOG経路のみをサポートします。正確な構文と 既存行へのDEFAULT規則はDDL構文数値ARRAY型を参照してください。

主な制約の詳細

TAGテーブルのUPDATE制約 (△, Standard Edition)

TAGテーブルのUPDATEは、次のすべての条件を満たす必要があります。

Cluster EditionではTAGデータUPDATEは使用できません。

  • WHERE句にタグ選択条件(name =name INname LIKE)を含める
  • WHERE句にBASETIME列の条件を含める
  • SET対象は実際のデータ列
  • time(BASETIME)列、name列、メタデータ列はデータUPDATEで変更不可
  • SETの右辺では既存行の列を参照できず、定数・バインド・列を含まない式のみ使用可能
-- 可能: タグ条件と時刻条件でデータ列を更新
UPDATE sensor_data
   SET value = 101
 WHERE name = 'sensor01'
   AND time >= TO_DATE('2026-07-01', 'YYYY-MM-DD');

-- 不可: BASETIME列を更新
UPDATE sensor_data
   SET time = SYSDATE
 WHERE name = 'sensor01'
   AND time >= TO_DATE('2026-07-01', 'YYYY-MM-DD');

詳細はTAGデータUPDATEサポート表を参照してください。

LOOKUPとVOLATILEのトランザクション範囲

LOOKUPとVOLATILEテーブルの各DMLは文単位で反映されます。複数のDMLをBEGINCOMMIT/ROLLBACKでまとめるTRANSACTIONテーブルのトランザクションには参加しません。

JSON列のサポート範囲

JSON列はTAG、LOG、LOOKUP、TRANSACTIONテーブルでサポートします。VOLATILEではJSON型列を作成できません。LOOKUPのJSON列は通常の列として使用できますが、主キーには使用できません。詳細はJSON型のテーブルタイプ別サポート範囲を参照してください。

TAGテーブルの最新値と 時間範囲の参照

TAGテーブルは、逆方向スキャンと時刻条件で最新値と時間範囲を参照します。

-- 特定タグの最新5件の値を参照
SELECT /*+ SCAN_BACKWARD(sensor_data) */ *
  FROM sensor_data
 WHERE name = 'sensor01'
 LIMIT 5;

-- 時間範囲の参照
SELECT * FROM sensor_data
WHERE name = 'sensor01'
  AND time BETWEEN TO_DATE('2024-01-01') AND TO_DATE('2024-01-02');
最終更新日