はじめての Azure Data Lake ~ そもそも Data Lake って何? ~
Microsoft Japan Data Platform Tech Sales Team
丹羽 勝久
1. はじめに
昨今、クラウドを中心としたトレンドとして、AI、IoT、機械学習などのキーワードが非常に盛んに取り上げられていますが、このような技術、手法が進化すればするほど、扱うデータの量、形態が多様になり、よりデータの蓄積基盤が重要になってきます。これらの領域が扱う大容量のデータ蓄積基盤の1つにデータウェアハウス(DWH)がありますが、このデータウェアハウスと併用して利用するデータレイク基盤が、現在注目されています。
そもそもデータレイク基盤とは何でしょうか?何故、データウェアハウスだけでなく、データレイク基盤も必要なのでしょうか?
Wikipedia(英語版)を見ると、以下のような記述があります。 ※引用:Wikipediaより( https://wikipedia.org )
The idea of data lake is to have a single store of all data in the enterprise ranging from raw data (which implies exact copy of source system data) to transformed data which is used for various tasks including reporting, visualization, analytics and machine learning.
The data lake includes structured data from relational databases (rows and columns), semi-structured data (CSV, logs, XML, JSON), unstructured data (emails, documents, PDFs) and even binary data (images, audio, video) thus creating a centralized data store accommodating all forms of data.
概訳)
データレイクの発想は、企業内の各システムのオリジナルのフォーマット形式である**生データ(raw data)** からレポートや仮想化、分析、機械学習を含めた様々なタスクのために**変換したデータまでの全データの**シングルストアを持つことです。
データレイクはリレーショナルデータベース(行と列で構成)からの派生した構造データ、セミ構造データ(CSV, ログ、XML、JSON)、非構造データ(e メール、ドキュメント、PDF)、時にはバイナリデータ(イメージ、オーディオ、ビデオ)などを対象とし、全形式を格納集約した統合データストアです。
この説明から、データウェアハウスとの大きな違いは、
- 生データ(raw data)をはじめとした様々なデータの蓄積
- 構造/セミ構造/非構造のデータ(イメージ、オーディオ、ビデオを含む)の全てを含む統合データストア
といえると思います。
2. データウェアハウスとデータレイクとの対比
前述したように大容量データを格納する基盤として、データウェアハウスがあります。このデータウェアハウスとビッグデータ基盤であるデータレイクを比較してみましょう。
データウェアハウス
データウェアハウスは、その目的に合わせてデータベースのテーブル構造を設計するスキーマ設計(構造化)を最初に行います。例えば売上情報に関する分析であれば、営業情報データウェアハウス。また経営(経理)に関わる分析であれば、経営(経理)情報データウェアハウスと言われる目的にあわせた設計を行います。このようにデータを投入する時にはスキーマ(構造)が決定して、データはこの構造に合わせて投入する形態を「schema on write」と呼びます。またスキーマ構造も一般的なOLTPデータベースの正規化モデル(第3正規化)ではなく、スタースキーマ、スノーフレークスキーマといったデータウェアハウスに向いた設計モデルを採用するのが一般的です。
データレイク
一方、データレイクは、ビジネスに関わる様々な種類、形態のデータ、関連する外部データをそのままのフォーマット(生データとして)で蓄積します。よって、データを格納、蓄積するための構造を定義する必要はありません。そして分析するときにデータが必要になったときに、そのデータの構造に合わせて読込を行ったり、分析しやすい形に変換しながら利用します。データレイク基盤は、Hadoop などのビッグデータ分析処理で多く利用されますが、「データを利用するときに形態(構造)を定義」します。データウェアハウスの場合と比較して、このような利用形態を「schema on read」と呼びます。
両基盤は上記のような利用形態の違いもありますが、分析の対象領域もそれぞれ異なります。データレイクはビッグデータ分析をするためのデータ蓄積基盤になりますがデータウェアハウスとの関係は、大きく以下の図のような分類が出来ると言われています。
まずデータウェアハウスは、過去発生した事象の確認と分析が主な対象領域になり、構築のアプローチも、
- まず分析をするための理論があり、
- そのためのデータが準備され、
- 事象の観察、確認を行う
といったトップダウン的な、演繹的であると言えます。
一方、ビッグデータ分析のアプローチは将来何が起こりそうか?どのようにすると実現出来るか?といった未来の予測分析が主な領域になります。構築アプローチもデータウェアハウスと対照的に
- 蓄積されているデータ、関連のありそうなデータを観察して
- データの観察結果に合わせて、その特徴、パターンを抽出し
- 仮説、理論を導き出していく
といったボトムアップ的な、帰納的なアプローチであると言えます。
上記のように両者は非常に対照的な関係ではありますが、「どちらの手法が優れているか?」「どちらの手法を採用するか?」という排他的な関係ではなく、上図のように一緒に利用することで、お互いの領域を補完しあう関係であるため、幅広く、精度の高い将来の予測のためには、両方の基盤を構築することが望ましいと言えます。
3. Microsoft Azure Data Lake
Azure Data Lake というと以下の3製品があり、それぞれ以下の図のような関係になります。
- Azure Data Lake Store
- Azure Data Lake Analytics
- Azure HDInsight
そして、Azure のデータサービスの中では以下のような位置づけになっています。
以下、それぞれのサービスの特徴を簡単に記述します。
Data Lake Store
- 実質無制限の容量のファイル群を格納出来るビッグデータストア(数十、数百ペタバイト以上のクラスのデータを格納可能)
- Azure のクラウド基盤上の HDFS (Hadoop Distributed File System: Hadoop 分散ファイルシステム) 互換のファイルシステム
→ Azure HDInsight や Hadoop 系のサービスから透過的にアクセス可能 - 全てのファイルをそのままの書式(raw data)で格納可能
- 「企業向けレベルのセキュリティ」に対応(セキュリティ、アクセス制御、暗号化など)
- 1つのデータオブジェクトに対して、2つのレプリカを同時に複製(全体で3つのコピーを保持)することで高可用性を実現
- 約4円/GB 程度の安価なコスト
Data Lake Analytics
- 分析時に柔軟にサーバーリソースを割り当てる「サーバーレス」のアーキテクチャで多くのノードで並列分析処理が可能
- C# ベースの言語で SQL を記述可能な新しい U-SQL という言語による分析
- U-SQL からは、Azure Congnitive Services、Python、R などの機能/モジュールも組込み可能
- Data Lake Store に最適
- 複数の Azure データサービスに対応(Data Lake Store、Blob Storage、SQL Database、SQL Data Warehouse、Azure VM 上の SQL Server など)
HDInsight
- Hadoop, Spark クラスタのマネージドサービスで数分でクラスタ環境を構築、起動可能
- 100% オープンソースの Hortonworks を利用
- 業界最高レベルの SLA でマイクロソフトが運用管理、監視、サポート
4. Azure Data Lake 以外の構成
Azure Data Lake 分析サービス(Data Lake Analytics、HDInsight)は YARN 対応であり、U-SQL、Hadoop、Spark などのクラスターリソースを柔軟に構成可能です。また Data Lake Store は、HDFS と互換性があるため、Data Lake Analytics、HDinsght 以外の分析基盤(Hortonworks, Cloudera、MAPR など)とも構築可能です。
5. まとめ
データウェアハウス基盤、データレイクを中心としたビッグデータ基盤をクラウド上に構築することで、コストを削減するだけでなく、マシンリソース手配も含む環境構築までのスピードを劇的に向上します。AI、IoT という手段を利用することが目的ではなく、自社が展開するビジネスの「デジタルトランスフォーメーション」(IT、AI、ビッグデータなどを利用した既存のビジネスの拡大、構造改革)を如何に迅速に確実に行うかが、ビジネスの成長の鍵であり、このような技術(AI、IoT など)を使う理由になると思われます。
今回紹介したデータレイク基盤は、これらの最新の技術を支える重要なデータ基盤のひとつであり、データウェアハウス基盤と組み合わせることで、その活用の範囲が広がり、予測分析の精度を向上することが可能です。クラウドの特徴を活かし、まず簡単にどのように活用できるか試してみては如何でしょうか?次回以降、Azure Data Lake を実際に利用する場合の環境構築の手順をご紹介する予定です。最後までご覧頂きありがとうございました。