はじめに

この記事では、電気、水道、ガスのユーティリティソリューションをグローバル展開されている米国のスマートメーターソリューション提供会社の事例をご紹介します。

導入背景

こちらのお客様では、日々増え続けるスマートメータデータの監視や分析を行うための分析基盤を運用されていました。その分析基盤には、世界100ヵ国以上の電気、水道、ガスのデータが集約されており、将来的にはペタバイト級のデータサイズになることが想定されていました。そのような中で、さらなる機能改善や不正検知等、より良くしていくための最適なプラットフォームを探されていました。

Verticaの導入効果

Verticaの導入により、大量データに対する処理が既存システムと比べて最大174倍パフォーマンス向上を実現させることができ、チューニング等の運用負荷も削減することができました。

Verticaでどのように実現されたのか、お客様の課題と合わせてご紹介します。

既存システムの課題

従来の分析システムでは、一部の分析処理で大量データのJOIN処理がボトルネックとなり、パフォーマンス低下を引き起こしていました。



皆さんも大量データのJOIN処理で同じような経験をされたことはないでしょうか。

JOINがパフォーマンスのボトルネックとなる場合の解決策


JOINによるパフォーマンス低下を改善する方法の1つとして、予めJOINした結果を非正規化テーブルに作成しておき、パフォーマンスを向上させる方法があります。



しかし、非正規化テーブルの追加は、パフォーマンスが向上する一方で、次のようにメンテナンスコストやリスクを発生させる要因となります。

・非正規化テーブルへのデータ連携処理の作り込みが必要
・マスターテーブルが更新された場合に手動での更新が必要
・データ連携が上手くいかなかった場合にデータ不整合が発生

Verticaのフラッタンテーブルによる解決

Verticaでは、フラッタンテーブル機能を利用することで、このような課題を解決することができます。フラッタンテーブル機能で、元々持っている正規化されたテーブルをソースに非正規化テーブルを作成することができます。元々のテーブルと作成した非正規化テーブルは紐付いています。




また、フラッタンテーブル独自の管理コマンドを使えば、元々のテーブルに更新されたデータをコマンド1つでフラッタンテーブルに更新することができます。




課題となっていたJOINがボトルネックになっていた処理は、フラッタンテーブル機能の利用により、パフォーマンスが向上しただけではなく、独自の管理コマンドで運用負荷も削減することができました。





こちらのお客様では、フラッタンテーブル機能だけでなく、テーブルの自動最適化やライブアグリゲートプロジェクション機能も使用して高速化を実現しています。

大量データの複雑な処理をVerticaの機能で簡単に高速化した事例としてご参考ください。


参考情報

フラッタンテーブルとは
http://vertica-tech.ashisuto.co.jp/flattened-table1/

プロジェクション最適化に関するまとめ記事
http://vertica-tech.ashisuto.co.jp/optimize-projection/

ライブアグリゲートプロジェクションの作成方法
http://vertica-tech.ashisuto.co.jp/lap/


更新履歴

2020/1/31 本記事を公開