Oracle 23AI Fast Ingest: 高速データ・ロード — 使用するタイミング (2025/03/26)

Oracle 23AI Fast Ingest: 高速データ・ロード — 使用するタイミング (2025/03/26)

https://medium.com/oracledevs/oracle-23ai-fast-ingest-high-speed-data-loading-when-should-you-use-it-a0284a2b25b2

投稿者:vijay balebail

FastInjest — no redologs.


Oracle 23AIのFast Ingestは、小規模で頻繁な挿入をブレークネック速度で取り込むという、ニッチ・ジョブに特化したツールです。アプリケーションがACID保証なしで稼働し、高速データを処理する必要がある場合は、一見の価値があります。スイッチを反転する前に、トレードオフを明確にしてください。



ACIDとは何ですか、そしてなぜそれが重要なのですか?


この用語を初めて使用する場合、ACIDは信頼できるデータベース・トランザクションのゴールド・スタンダードです。意味は次のとおりです。


  • 原子性: トランザクション内のすべての操作は単一の単位であり、すべてが成功するか、何も行われないかのどちらかです。
  • 一貫性: データは有効なままであり、すべてのトランザクションの前後にルールに従います。
  • 分離: 同時に実行されるトランザクションは、お互いのつま先をステップアップしません。
  • 耐久性: トランザクションがコミットされると、システムがクラッシュしても永続的になります。


Fast Ingestは、生のパフォーマンスに優先順位を付けるために、これらを保証します。従来のREDO/UNDOロギングをスキップし、最初にディスクにヒットするかわりにデータをメモリーに書き込みます。トレードオフ? ロールバックなし、新しいデータの即時可視性なし、データが停電を乗り越えることを保証しません。これにより、重要なオンライン・トランザクション処理(OLTP)や財務アプリケーションには無駄になりません。ただし、IoTやテレメトリ・データ収集などの高速で低コストのシナリオにとってはスーパースターです。



Oracle Fast Ingestとは


その中核となるのは、高速収集です。単一行挿入をディスクに直接書き込むのではなく、メモリー(特にラージ・プール)にバッファリングします。バックグラウンド・プロセスでは、このデータを非同期にフラッシュします。これは、実際には次のようになります。


  • 各挿入のREDO/UNDOログはありません。
  • 即時ディスクI/Oがありません。
  • フラッシュが発生するまで、挿入された行は表示されません。


これは「insert now、 commit later」のアプローチと考えてください。数百万の小規模なインサートでデータベースをスラミングしているワークロード向けに構築されており、そのデータをすぐに問い合せる必要はありません。



高速取り込みブレーク理由ACID


通常のセーフガード(REDO/UNDOロギングおよび即時ディスク書込み)をスキップすることで、Fast Ingestは、耐久性と分離のコストで非常に高速になります。フラッシュの前にシステムがクラッシュすると、データが消失する可能性があります。フラッシュされるまで、他のセッションではこれらの行は表示されません。だからこそ、すべての仕事にふさわしくない。


高速収集を使用するタイミング


この機能は、次のシステムに表示されます。


  • 数百万の小規模で頻繁な挿入を処理します。
  • 汗をかくことなく、潜在的なデータ損失に対処できます。
  • 新しく挿入されたデータにすぐにアクセスする必要はありません。
  • トランザクションの整合性に依存しません。


センサー・リーディングまたはテレメトリ・システム・ロギング・イベントを大規模に出力するIoTデバイスを検討してください。それがあなたのユースケースのように聞こえるなら、Fast Ingestはあなたの新しい親友かもしれません。



✅ 高速収集のユースケース

Use Case Why Fast Ingest Works
🔧 IoT Sensor Data Handles millions of inserts per minute with ease
🧾 Application Logging Speed matters more than durability in some log types
📉 Time-series Metrics Append-only structure benefits from ingest buffering
🎮 Game Telemetry Delivers high-speed, low-overhead event recording
📊 Real-time Analytics Pipelines Fast ingest reduces bottlenecks in ETL pipelines

view raw Fastinject.md hosted with ❤ by GitHub


高速収集の有効化


ステップ1: WRITEのMEMOPTIMIZEの有効化

CREATE TABLE iot_data (
id NUMBER PRIMARY KEY,
sensor_id VARCHAR2(50),
reading NUMBER,
reading_time TIMESTAMP
) SEGMENT CREATION IMMEDIATE
MEMOPTIMIZE FOR WRITE;


ステップ2: 挿入でのヒントの使用

INSERT /*+ MEMOPTIMIZE_WRITE */ INTO iot_data
VALUES (1001, 'sensor-xyz', 27.5, SYSTIMESTAMP);


ステップ3:(オプション)手動でフラッシュ

EXEC DBMS_MEMOPTIMIZE.WRITE_END;


ベンチマーク: 通常挿入と高速収集挿入


Pythonを使用して100,000行の挿入ワークロードで実行したテストを次に示します:

[root@ai15-agentics fastInject]# python fastInjest1.py
Running performance test...

[1] Running WITHOUT Fast Ingest...
Time taken (regular inserts): 186.47 seconds

[2] Running WITH Fast Ingest...
Time taken (fast ingest): 44.77 seconds

🔍 Comparison:
Fast Ingest Speedup: 4.17x


これは、従来の挿入よりも4xよりも高速です。

自分で試してみる


完全なソース・コードおよび設定スクリプトは、GitHubにあります。


👉 GitHub: Oracle FastInjectテスト・プログラム



知っておく必要がある制限事項


速攻は魔法の弾丸ではない。次に注意すべき点を示します。


  • Not Durable: フラッシュの前にシステムがクラッシュすると、データが消失する可能性があります。
  • 非表示: 他のセッションでは、データがフラッシュされるまでデータは表示されません。
  • 不適当: バルク・ロード(INSERT INTO…SELECT)、バッチ・コミットまたはミッション・クリティカルなトランザクション・システム。
  • サポートされていない機能: トリガー、LOB、ビットマップ索引およびパーティション化が表外です。



ファイナル思考


Oracle 23AIのFast Ingestは、小規模で頻繁な挿入をブレークネック速度で取り込むという、ニッチ・ジョブに特化したツールです。アプリケーションがACID保証なしで稼働し、高速データを処理する必要がある場合は、一見の価値があります。スイッチを反転する前に、トレードオフを明確にしてください。



コメント

このブログの人気の投稿

Oracle Database 19cサポート・タイムラインの重要な更新 (2024/11/20)

Oracle GoldenGate 23aiでMicrosoft Fabricでのオープン・ミラーリングがサポートされるようになりました (2024/11/19)

Oracle Database Service for Azure(ODSA)とOracle Interconnect for Azureの比較 (2022/08/15)