top of page

【エッジコンピューティング第4回】マイクロデータレイクの実装

4 日前
読了時間: 9分

Machbase代表 キム・ソンジン

本シリーズを初めてお読みになる方は、先に以下の記事をご覧ください。



はじめに

本記事では、Machbaseが実装した実際に稼働するマイクロデータレイクと、そのアーキテクチャの構成要素を説明します。顧客の導入事例を紹介できれば理想的ですが、セキュリティや情報開示上の制約があります。そこで後の回では、同様の構造で稼働している環境を取り上げます。その前に、構築にどの技術を選び、どのような根拠で実装したのかを詳しく見ていきましょう。


エッジの中核を担う処理技術:時系列データベースMachbase Neo

いよいよ中心的なテーマです。前回までに、エッジ機器は限られたハードウェア資源で大量のリアルタイムデータを処理する必要があると述べました。その実現が難しいため、クラウドやサーバーでデータを一元管理するモデルが主流になったのではないか、と考えました。

Machbaseは、自社開発の時系列データベースエンジンが、この制約の中でもデータレイクに必要な性能と機能を提供できるため、中核のデータ処理ソフトウェアに採用しました。実際にエッジ機器でどの程度の性能が得られるのでしょうか。複数の機器でテストし、結果を数値化しました。より高性能なエッジ機器やサーバーでは、以下の数倍の性能も期待できます。


Machbase Neoのウェブサイト: https://neo.machbase.com
Machbase Neoのウェブサイト: https://neo.machbase.com

エッジハードウェアごとの性能比較

低スペックの小型機器から、ある程度の性能を備えたエッジ機器まで、仕様とデータ処理性能をまとめました。

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相当以上の性能を期待できると考えています。


Lenovo ThinkEdgeシリーズ
Lenovo ThinkEdgeシリーズ
Advantech IPCシリーズ
Advantech IPCシリーズ

時系列データベースは中核ストレージとして十分か

前回までに述べたとおり、マイクロデータレイクは特定の目的に特化します。大量のセンサーデータを処理するという業務範囲であれば、時系列データベース自体が、その中核として十分な能力を持っているといえるでしょう。

リアルタイム圧縮により、約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年ほど先の話だと捉えています。こうした革新が早く普及し、韓国が未来を先導する国になることを願っています。



 
 
電話
英語
bottom of page