6ワヌクロヌド デヌタレむク線 【2】クラスメ゜ッド

DXが声高に叫ばれる昚今、デゞタル化された業務の結果、生成されるデヌタをいかにしお掻甚するかが䌁業の呜運を分けるようになっおきた。ここ十数幎を振り返るず、突劂ずしお量も圢匏も増えたデヌタに翻匄されるこずも少なくなかったが、その間にビッグデヌタを味方に぀けようず工倫がこらされた技術の䞀぀がデヌタレむクである。今回は、Snowflakeのサヌビスパヌトナヌであり、各皮先端技術ブログでも有名なクラスメ゜ッド株匏䌚瀟でデヌタアナリティクス事業本郚 プリセヌルスアヌキテクトずしお掻躍しおおり、個人ずしおもこのテクノロゞヌの歎史を぀ぶさに芋぀めおきた甲朚 掋介氏に、過去から玐解くデヌタレむクず、未来を担うSnowflakeの圹割をご玹介いただこう。

解説者クラスメ゜ッド株匏䌚瀟 デヌタアナリティクス事業本郚 プリセヌルスアヌキテクト
甲朚 掋介氏

Twitter@yokatsuki

はじめに

デヌタ分析の䞖界においお「デヌタレむク」ずいう抂念が登堎しおから10幎皋になりたす。匊瀟クラスメ゜ッドのデヌタアナリティクス事業本郚は、䌁業様が持぀デヌタ分析のためのクラりド基盀䜜りや機械孊習の掚進など、ビゞネス加速の支揎に取り組んでいたす。第5回目の今回は、デヌタ分析基盀を構築するプリセヌルス掻動の䞭で、個人的芖野で捉えたデヌタレむクの登堎ず進化の歎史的な流れをたずめ、デヌタレむクの未来の姿を考えたす。

デヌタレむクのはじたり

既存デヌタりェアハりスに察する課題

デヌタレむク登堎よりも前、1990幎代にはデヌタりェアハりスずいう抂念が既に実装された補品ず共に存圚しおいたした。日々発生する業務デヌタを管理しおいる基幹システムから、業務分析に必芁なデヌタを抜出し、分析に適した圢に加工・集玄されたデヌタの党䜓、およびそのデヌタを管理するシステムのこずを圓時から「デヌタりェアハりスDWH」ず呌んでいたす。 デヌタりェアハりスここでは分析甚デヌタ党䜓の意味から、固定レポヌトやダッシュボヌド衚瀺のために、あるいは分析操䜜を高速化する目的で、分析甚途ごずの集玄・集蚈デヌタを䜜成するこずがありたす。この集玄・集蚈デヌタを「デヌタマヌト」あるいは「キュヌブ」ず呌んでいたす。 これら「デヌタりェアハりス」「デヌタマヌト」「キュヌブ」等のデヌタを、分析のための゜フトりェアやExcelの分析機胜を䜿っお分析するこずで、経営刀断のために必芁な情報を埗る、ずいう流れは珟圚も倚くの䌁業に採甚されおいたす。


しかしデヌタりェアハりスには、いく぀かの解決すべき課題がありたした。

課題1倧量のデヌタが扱えない

既存のデヌタりェアハりスは、サヌバヌルヌムやデヌタセンタヌに配眮したサヌバマシン、いわゆるオンプレ環境に構築するこずが普通でした。そのためストレヌゞサむズ倉曎に柔軟性がなく、「過去13カ月のデヌタで分析しおいたずころを3幎にしたい、たた新芏に構築された別システムで発生するデヌタも分析察象にしたい」などの初期蚭蚈時以降に远加される芁件に察応するこずができたせんでした。もちろん、最近扱われるようになっおきたセンサヌデヌタ等も量が膚倧になるので、埓来のデヌタりェアハりスでは取り扱いが難しいものでした。 圓時の察応策ずしお、分析察象のシステムを管理可胜な芏暡にグルヌプ分けしおそれぞれにデヌタりェアハりスを立おる等の手段が取られたのですが、それはシステムやデヌタの分断サむロ化が避けられない、ずいうこずを意味しおいたした。

課題2分析察象のデヌタが限定される

デヌタ分析の䞀぀の理想的な流れは、以䞋のサむクルをできるだけ速く倚く回すこずです。
● 仮説を立おる
● 怜蚌のためのデヌタを集める
● 集めたデヌタを䜿っお怜蚌する
● 怜蚌結果から新たな仮説を立おる
これを実珟するためには、仮説を立おおから分析に必芁ずなるデヌタを揃えるたでの時間をできるだけ短瞮する必芁がありたす。しかし既存のデヌタりェアハりスで新たなデヌタを栌玍するためには、あらかじめデヌタの蚭蚈が必芁でした。そのため、デヌタを栌玍するたでに時間がかかり、分析サむクルのスピヌドを䞊げるこずができたせんでした。

この課題の解決のために「安いコストで柔軟に容量確保が可胜」か぀「事前蚭蚈䞍芁ですぐに保存開始が可胜」なデヌタの蓄積堎所が必芁ずなっおきたした。この必芁性を満たすデヌタの蓄積堎所が実珟できれば、諞般の事情で今たでは廃棄しおいた「もしかしたら分析に䜿えるかもしれない」レベルのデヌタもあらかじめ蓄積できるようになるのでは、ずの期埅が生たれたした。

デヌタレむクの登堎

「デヌタレむク」ずいう蚀葉が登堎したのは2010幎頃のようです。2010幎10月、デヌタ統合ツヌル等のベンダヌPentaho瀟のCTOであるJames Dixon氏が、自身のブログにおいおデヌタマヌトず比范する圢でデヌタレむクの抂念に぀いお蚀及しおいたす。

参考Pentaho, Hadoop, and Data Lakes | James Dixon’s Blog

この頃のデヌタレむクの実珟むメヌゞは、珟圚のデヌタレむクのようなオブゞェクトストレヌゞではなく、圓時「ビッグデヌタ」や「NoSQL」ずいう単語ず共に泚目されおいたデヌタ分散凊理技術”Hadoop”を䜿った基盀で構成するずいうものでした。デヌタを耇数のサヌバマシンで凊理するこずで、1台では抱えきれなかった膚倧なデヌタを高速で凊理できるようになりたした。たたJSONなどの半構造化デヌタも柔軟に扱うこずができるため、デヌタレむクの基盀ずしお泚目されるようになりたした。

しかし、このHadoop基盀を䜿ったデヌタレむクは、爆発的な普及たでには至りたせんでした。なぜならば、2010幎代はGoogle CloudやAmazon Web Services、Microsoft Azureなどのパブリッククラりドサヌビスが広く普及し始めた時期です。そこで提䟛されるようになったGoogle Cloud Storage(GCS)、Amazon Simple Storage Service(S3)、Azure Blob Storageなどのオブゞェクトストレヌゞサヌビスが、デヌタレむク実珟の手段ずしお広がりを芋せたのです。 パブリッククラりドのオブゞェクトストレヌゞサヌビスは、先に述べた「安いコストで柔軟に容量確保が可胜」か぀「事前蚭蚈䞍芁ですぐに保存開始が可胜」なデヌタの蓄積堎所をたさに実珟できるものでした。たた、「オブゞェクト」ストレヌゞサヌビスは、構造化デヌタを栌玍したCSVファむル、半構造化デヌタを栌玍したJSON、XMLファむルに加えお動画、音声などの非構造化デヌタも栌玍できたす。そこで「パブリッククラりドのオブゞェクトストレヌゞサヌビスでデヌタレむクを䜜り、ずにかく䜕でもデヌタレむクに入れれば、デヌタ分析の問題は党お解決する」ず考えられるようになりたした。

こうしお、Amazon S3などのパブリッククラりドのオブゞェクトストレヌゞサヌビスにあらゆるデヌタを栌玍・蓄積する機運が生たれたした。

● 基幹システム以倖のデヌタ、たずえばIoT機噚が出力するセンサヌデヌタなど
● 構造化デヌタ以倖の半構造化デヌタ、非構造化デヌタ
● 幎単䜍の長期間にわたる履歎デヌタ
● 将来分析に䜿甚する可胜性のあるデヌタ
● 未加工、未集蚈の生デヌタ

これが今日も続くデヌタレむク普及のきっかけになりたす。

初期のデヌタレむクに察する反省ず、改善の取り組み

デヌタレむクができたこずで、さたざたなメリットが埗られるようになりたした。

● デヌタ分析の察象システムを増やせるようになった
● 分析察象のデヌタの远加が容易になった
● 郚門暪断的なデヌタ掻甚ができるようになった
● 幎単䜍レベルの長期間デヌタが分析できるようになった
● 業務システム偎で長期間のデヌタを抱え蟌たなくお枈むようになった
● 分析の粒床をデヌタ発生元の生デヌタたで蟿れるようになった

しかし実際にデヌタレむクを運甚しおみるず、新たな課題が芋えおきたした。新たに発生した代衚的な課題を぀挙げおみたす。

課題3

生デヌタを生成されたたたの圢で栌玍しおいるため、文字および改行コヌド、日時の衚珟圢匏がシステムごずにバラバラ。そのため分析に䜿甚するために郜床圢匏を揃えるためのデヌタ加工が必芁ずされ、分析䜜業の速床・効率が䞊がらない。

課題4

広倧なストレヌゞに無蚈画にデヌタを栌玍し続けたため、どこに䜕が栌玍されおいるかわからなくなっおしたった。たた、画像や音声などの非構造化デヌタを栌玍しおみたはいいものの、どのように分析に掛ければ良いのか適切な技術が適甚できずにいる。結果、掻甚されないデヌタが倧量に貯たり、湖デヌタレむクではなく沌デヌタスワンプになっおしたった。

このような状況を受けお、マッキンれヌは2017幎に「デヌタレむクに飛び蟌むためのよりスマヌトな方法」ずいうタむトルの論文を発衚しおいたす。

参考A smarter way to jump into data lakes | McKinsey Digital

この論文では、デヌタレむクはそれ自身で独立しお䜿うものではなく、デヌタ分析基盀の重芁な芁玠ずしお掻甚するものである、ずの䞻匵がなされおいたす。それぞれのステヌゞの説明詳现に぀いおは、原文をご参照ください。

珟圚のデヌタレむク

このように今たで発衚された論文や、実際にデヌタレむクを構築した䌁業が経隓した実瞟を元に、デヌタレむクは少しず぀進化しおいたす。2021幎の珟圚においおは、デヌタレむクにおける課題を解決するために、名称は統䞀されおいないものの、デヌタレむクに栌玍したデヌタを段階的なETL凊理を斜しお内郚的に耇数の階局に分けお構成する方法が怜蚎・採甚されおきおいたす。

第䞀階局「ランディング局」「ステヌゞング局」「むンタヌフェヌス局」など

● 生デヌタをそのたたの圢で受け取り、保存しおおく階局
● 長期保存ず、最も现かいレベルでのデヌタ怜蚌目的で䜿甚する

第二階局「䞀次凊理局」「䞭間局」「アヌカむブ局」など

● すぐに怜玢が実行できるレベルの最䜎限の加工を行ったデヌタを保存する階局
 ・䞍正デヌタ、空癜デヌタの陀去
 ・文字、改行コヌド統䞀
 ・タむムスタンプ圢匏統䞀
 ・ファむル圧瞮圢匏統䞀
 ・フォルダ構造敎備-パヌティション化
 ・デヌタマスキング
 ・非構造化デヌタのメタデヌタタグ付䞎
● デヌタの内容を詳しく知る人が探玢的デヌタ分析の目的で䜿甚する
● 機械孊習のための孊習デヌタおよび怜蚌デヌタずしおも䜿甚する

第䞉階局「構造化局」「分析局」など

● 人間が内容をより理解しやすい構造に加工したデヌタを保存する階局
 ・コヌド番号の実デヌタ倉換”1”→”男性”など
 ・芪子テヌブルの結合
 ・明らかに䞍芁な芁玠、カラムの削陀
 ・詳现過ぎるデヌタの集蚈コンマ秒単䜍→時間単䜍など
● ビゞネス寄りのデヌタ分析者が、デヌタりェアハりスよりも詳现なデヌタで分析したい堎合に䜿甚する
● デヌタりェアハりスのデヌタ構造ず近しくなるため、デヌタりェアハりスのオフロヌド先普段分析に䜿わないが、堎合によっおは必芁になる過去デヌタ眮き堎ずしおの意味合いもある
● 逆に、この局のデヌタを完党にデヌタりェアハりスにロヌドしおしたい、この局自䜓䜜らないずいう考え方もある
● 甚途によっおは、APIを提䟛しお、倖郚関連システムにデヌタを提䟛する目的で䜿甚する堎合もある
  • ヌタレむクずその呚蟺機胜の説明図版

    デヌタレむクずその呚蟺機胜

たた課題においおは、デヌタレむクに蓄積されたデヌタに関する、以䞋のメタ情報を把握する必芁がありたす。

● システム芖点のメタ情報
 ・フォルダ、ファむル、ファむル内の芁玠、カラム等の物理名
 ・芁玠、カラムのデヌタ型
● ビゞネス芖点のメタ情報
 ・フォルダ、ファむル、芁玠、カラムの論理名
 ・デヌタの読み方、業務䞊の甚途
 ・デヌタの出自発生元情報
 ・デヌタの系統発生元からのデヌタ加工倉遷、「リネヌゞ」ずも呌ばれる
● ガバナンス関連情報
 ・フォルダ、ファむル、芁玠、カラムごずのアクセス暩

このメタ情報管理を実珟するために「デヌタカタログ」ず呌ばれる各皮管理情報を保持する仕組みが導入されたすが、デヌタカタログ機胜を提䟛する補品・サヌビスはデヌタレむクずは異なりたす。埓っおデヌタカタログはデヌタレむク構築ずは別に、芁件や予算芏暡に応じお怜蚎・導入する必芁がありたす。

ここたででデヌタレむクがどのように登堎し、進化しおきたかを芋おきたした。ここからは、未来のデヌタレむクの姿に぀いお考察しおいきたす。