【エッジコンピューティング第4回】マイクロデータレイクの実装
Machbase代表 キム・ソンジン
本シリーズを初めてお読みになる方は、先に以下の記事をご覧ください。
はじめに
本記事では、Machbaseが実装した実際に稼働するマイクロデータレイクと、そのアーキテクチャの構成要素を説明します。顧客の導入事例を紹介できれば理想的ですが、セキュリティや情報開示上の制約があります。そこで後の回では、同様の構造で稼働している環境を取り上げます。その前に、構築にどの技術を選び、どのような根拠で実装したのかを詳しく見ていきましょう。
エッジの中核を担う処理技術:時系列データベースMachbase Neo
いよいよ中心的なテーマです。前回までに、エッジ機器は限られたハードウェア資源で大量のリアルタイムデータを処理する必要があると述べました。その実現が難しいため、クラウドやサーバーでデータを一元管理するモデルが主流になったのではないか、と考えました。
Machbaseは、自社開発の時系列データベースエンジンが、この制約の中でもデータレイクに必要な性能と機能を提供できるため、中核のデータ処理ソフトウェアに採用しました。実際にエッジ機器でどの程度の性能が得られるのでしょうか。複数の機器でテストし、結果を数値化しました。より高性能なエッジ機器やサーバーでは、以下の数倍の性能も期待できます。

エッジハードウェアごとの性能比較
低スペックの小型機器から、ある程度の性能を備えたエッジ機器まで、仕様とデータ処理性能をまとめました。
INSERTは、CPUとI/Oを最大限に使った取り込み性能です。SELECTは、全レコードの投入後に、特定の時間範囲からセンサーデータ8万件を抽出する時間を測定しています。
実際のエッジサーバーには、厳しい現場条件に対応し、長期間の稼働と耐久性を考慮した産業用PC(IPC)がよく使われます。以下の機器はすべてがIPCではありませんが、エッジ処理の性能を把握する参考になります。
機器 | CPU / OS | メモリ | 取り込み性能(件/秒) | 総レコード数(保存容量) | 8万件の検索時間(秒) |
TURCK IM18-CCM60(eMMC) | 32bit ARM・1コア(Linux) | 1GB | 41,582 | 1,000万件(44MB) | 0.06 |
Raspberry Pi 4(USB SSD) | 64bit ARM・4コア(Linux) | 8GB | 199,547 | 1億件(500MB) | 0.04 |
vRaptor PEC (SSD) | 64bit ARM・24コア(Linux) | 16GB | 492,219 | 10億件(4.5GB) | 0.048 |
ODROID-M1(SSD) | 64bit ARM・4コア(Linux) | 8GB | 809,644 | 3,133億件(1.8TB) | 0.021 |
ODROID-H3(SSD) | 64bit Intel・4コア(Linux) | 8GB | 2,317,972 | 1兆件(3.5TB) | 0.015 |
保存装置にはeMMCまたはSSDを使用しました。Raspberry Piでは、直接の取り付けが難しかったため、USB 3.0接続の外付けSSDを利用しています。これが取り込み性能を抑える要因になりました。PCIeで直接接続できれば、2〜3倍以上の改善も期待できます。
データスキーマ
センサーデータの基本となる3つの列で構成しています。
CREATE TAG TABLE tagtbl (name VARCHAR(20) PRIMARY KEY, time DATETIME BASETIME, value DOUBLE SUMMARIZED)抽出クエリ
1,000万件、1億件、あるいは1兆件の全データから、特定のセンサーの30分間分、8万件を抽出します。
select count(*) from (select * from tag where name = 'EQ0^TAG1' and time between to_date('2019-01-01 00:00:00') and to_date('2019-01-1 00:30:00'));使用したエッジ機器
結果を表で比較したところで、テストに使った機器を簡単に紹介します。

ドイツのTurckが開発した、設備キャビネット内に設置してデータを収集・監視する超小型機器です。DBMSの稼働を想定していないため、低速のARM CPUが1コア、メモリは1GB、OSはカスタマイズされた32bit Linux、保存容量は合計約8GBです。それでもMachbaseを組み込むと、毎秒4万件以上のセンサーデータを収集し、リアルタイムに検索できました。マイクロデータレイクと呼ぶには小さすぎるかもしれませんが、非常に限られたハードウェアでの性能を示す好例です。

小型エッジ機器の代表として広く知られています。テストだけでなく現場でも利用され、情報が豊富で、応用範囲も広い機器です。Machbaseもデータベースを導入して各種テストを行いました。UbuntuなどのLinux環境と豊富な周辺資源を利用できるため、保存装置と筐体の課題を解決すれば、低コストで高度なマイクロデータレイクを構築できます。
注意点は、標準のmicroSDです。データベースのようにI/O負荷が高い用途では信頼性に課題があり、筆者は1年以内の故障にも言及しています。SSDを適切に接続するため、別途ハードウェアを用意する必要があります。対応するモジュールもあります。

V-Raptorは、韓国のXSLABが開発した小型ARMサーバーのシリーズです。テストしたモデルは24コアを備え、価格と性能のバランスに優れています。小型のV-Raptor SQ Nanoシリーズも提供されています。コア数は多いものの、動作周波数は約1GHzのため、単一セッションで高速処理を求める用途では注意が必要です。ファンレス、低消費電力、長期間の稼働への適性から、Intelサーバーの代替として注目されています。

韓国のHardkernelが製造する、Raspberry Piと同種の小型コンピューターです。仕様はRaspberry Pi 4に近く、低コストで構築でき、関連情報も豊富です。SSDの取り付けも簡単なため、MachbaseのテストではSamsung製SSDから直接動作させました。長期供給を考慮したRockchip製CPUを採用しており、CPU性能は比較的控えめです。大量の振動データをリアルタイムに抽出する用途には向かない場合がありますが、一般的なセンサーデータの収集・利用では、優れた性能と安定性を示します。

同じメーカーが提供する、Intel Celeron搭載のエッジ機器です。ARM機と比べて消費電力は高めですが、全体の処理性能も大幅に高く、冷却ファンを備えています。
Samsung製SSDをPCIe接続したテストでは、毎秒200万件を超える取り込み性能を記録しました。長期間のデータが1兆件に達しても、0.1秒未満で検索結果を取得できました。
実際の現場では、Lenovo ThinkEdgeやAdvantechのIPCシリーズなど、完成品の産業用機器がよく使われます。筆者は、こうした製品で少なくともODROID-H3相当以上の性能を期待できると考えています。


時系列データベースは中核ストレージとして十分か
前回までに述べたとおり、マイクロデータレイクは特定の目的に特化します。大量のセンサーデータを処理するという業務範囲であれば、時系列データベース自体が、その中核として十分な能力を持っているといえるでしょう。
リアルタイム圧縮により、約1,000億件のセンサーデータを512GBに保存できます。また、8GBのメモリと4〜8コアのCPUで、毎秒数十万件の取り込みを処理できます。
同程度の保存・処理をクラウドサービスで実現すると、ストレージ管理費用が大きくなる可能性があります。その後のリアルタイム抽出や加工にかかるAPI費用も考えると、この構成の経済性が見えてきます。
1,000億件とは、毎秒1,000件を休みなく保存した場合のおよそ3年分です。それだけのデータが512GBに収まります。
ストレージ以外の機能はどうするか
時系列データベースが優れた保存基盤であるとしても、データレイクにはほかにも多くの機能が必要です。構築上の制約と合わせて、どう対応すればよいでしょうか。
例えば、エッジの指定データをリアルタイムにサーバーへ送る機能、両階層の通信を暗号化する機能、数十台のエッジを遠隔操作・管理しソフトウェアを更新する機能などです。利用者が毎回実装・検証するには複雑なので、これらもマイクロデータレイクのサービスの一部として備える必要があります。
そこでMachbaseは、エッジコンピューティングのデータ基盤であるCEMS(Cloud-Edge Management Solution)を開発し、構築に利用しています。本記事では製品仕様の詳細には立ち入らず、エッジ側のデータレイクがどう実現され、動作するかに焦点を当てます。
要件と実装の対応
これまで説明した要件を、Machbaseでどのように満たせるか、技術面から確認します。ここでは、大量のセンサーデータを処理するデータレイクをエッジ機器上に構築することを目的とします。
詳細な対応関係
一般的な要件と、それを支える技術をまとめました。
要件 | 実装技術 |
ハードウェア要件 | Machbase Neoの対応環境:ARM・Intel、小規模なリソース、複数のOS |
構造化センサーデータの処理 | タグテーブルを使用 |
取り込み性能:保存 | 毎秒約4万〜200万件 |
取り込み性能:インデックス作成 | 毎秒最大200万件のリアルタイムインデックス作成 |
取り込み性能:圧縮 | 最大100分の1にリアルタイム圧縮。1データポイント当たり平均4.5〜7バイト |
抽出・検索性能(1,000億件保存時) | 特定のセンサー・時間範囲の1万件を0.1秒未満で抽出 |
統計処理性能(1,000億件保存時) | ロールアップで、特定センサーの月間・年間チャートを0.1秒未満で計算 |
データ保護:ストレージの暗号化 | OSの暗号化機能を利用し、保存装置が物理的に持ち去られた場合に備える |
データ保護:通信の暗号化 | X.509証明書によるエンドツーエンドの暗号化通信 |
データ保護:物理的な分散 | マイクロデータレイクの基本的な特徴 |
拡張性 | この用途ではスケールアウトは不要。スケールアップは可能 |
高可用性 | 今後の対応またはカスタマイズが必要 |
クラウドとのデータ統合 | CEMSで実現可能 |
このように、Machbase Neoの基本機能で、エッジ機器上のマイクロデータレイクを構築できます。さらに、次のような機能も利用できます。
追加機能
エッジで利用できるNeoの機能 | 内容 |
MQTTサーバーを内蔵 | 別のサーバーを用意せず、MQTTクライアントからDBMSへ直接取り込み |
ウェブサーバーを内蔵 | 別のウェブサーバーなしで、HTTPのREST APIや独自サービスを利用 |
SSHサーバーを内蔵 | 安全なSSH接続でエッジのデータベースへアクセス・操作 |
X.509による暗号化接続 | データ保護を強化 |
複数のCPU・OSに対応 | Windows(Intel)、Linux・macOS(ARM・Intel) |
ダッシュボードを内蔵 | 高速なデータ可視化 |
外部ツールとの連携 | Grafana、Telegrafに対応 |
外部DBMSとの連携 | SQLite、SQL Server、MySQL、PostgreSQLなどへ接続し、データを入力・抽出 |
データ変換言語TQL | 別のアプリケーションをプログラミングせずに、バックエンドAPIを構築・提供 |
分析ツールを内蔵 | Tag Analyzerで短期・長期の可視化と分析、2D・3D FFTチャートを利用。FFTの記事も参照してください。 |
完全にウェブベースのDBMS管理 | ブラウザー上でデータベースを操作 |
次の動画では、Machbase Neoの機能全体を紹介しています。詳しく知りたい方はご覧ください。
これらの機能は、手のひらサイズの機器から大型サーバーまで、同じように利用できます。さまざまな場所でデータレイクを実現するデータ基盤です。
おわりに
第4回では、マイクロデータレイクの実装にMachbase Neoを選んだ理由と、全体の要件との対応を説明しました。話題を絞るため、追加のソフトウェア基盤であるCEMSは簡単な紹介にとどめました。最終回では、実際に稼働するデータレイクを取り上げ、今後の発展を考えます。
執筆時点では、市場の多くがこうした可能性を知らないか、技術的に難しい、あるいは3年ほど先の話だと捉えています。こうした革新が早く普及し、韓国が未来を先導する国になることを願っています。


