blog

ビッグデータプラットフォームのデータ処理に関する詳細分析

ビッグデータプラットフォームの最終目標は、データ収集でもデータ保存でもありません。データ処理なしには、金鉱のような貴重なデータでさえ、ただの鉄くずの山に過ぎません。データ処理はビッグデータ産業の核心的...

May 26, 2020 · 4 min. read
シェア

データ収集もデータ保存も、ビッグデータプラットフォームの最終目標ではありません。データ処理のリンクを失うと、たとえ金鉱のような貴重なデータであっても、ただの鉄くずの山になります。データ処理こそがビッグデータ産業の核心であり、そこにデータの可視化という最後の1キロが加わることで、チェーン全体が完全に完結するのです。

下図に示すように、データ処理はビジネス、テクノロジー、プログラミングモデルの3つの観点から分類することができます:

ビジネスの観点からの分類は、特定のビジネスシナリオに関連しますが、最終的にはテクノロジーの選択、特にデータストレージの選択を制約することになります。例えば、全文検索でのクエリ検索では、ElasticSearchが最適な選択となり、統計分析では、演算が含まれるため、売上高などのデータの列の合計演算のためである可能性があり、データのこの列全体の売上高は、この時点で、列型ストレージ構造の選択がより適切な場合があります。

技術的な観点からの分類では、厳密に言えば、SQLアプローチは別のカテゴリーに分類することはできません。実際には、データ処理スクリプトの移行コストを削減するために、SQLのようなDSLで特定の処理技術をラッピングしたAPIのカプセル化と見なすことができます。結局のところ、ビッグデータ時代に移行するにつれて、ほとんどの組織内のデータ処理システムのほとんどは、SQLの形式で保存されたデータにアクセスします。大抵の場合、SQLはHive、Impala、Spark SQLなどのMapReduce用にラップされています。

ストリーミング・ストリーム処理は、上流から定常的なデータのストリームをリアルタイムで受信し、そのデータをある小さなウィンドウで処理します。消費される上流のデータは、ネットワーク経由で配信されるバイトのストリーム、HDFSから読み込まれるデータのストリーム、メッセージキューからのメッセージのストリームなどです。典型的には、プログラミングモデルのリアルタイムプログラミングモデルに相当します。

機械学習とディープラーニングは、どちらもディープアナリティクスのカテゴリーに属します。GoogleのAlphaGoとTensorFlowフレームワークのオープンソース化により、ディープラーニングは明らかな分野になりました。私はあまり詳しくないので、ここでは手の内を見せません。機械学習は一般的なデータ分析とは少し異なり、通常、満足のいく結果を得るためには、複数のフェーズを何度も繰り返す必要があります。

蓄積されたデータについては、データサンプルを収集し、特徴を抽出した後、サンプルデータを学習し、データモデルを取得する必要があります。モデルが要件を満たすことがテストされれば、データ分析シナリオで使用することができます。

オフラインプログラミングモデルはhadoopのMapReduceに代表され、インメモリプログラミングモデルはSparkに代表され、リアルタイムプログラミングモデルは主にストリーム処理を指します。また、オフラインプログラミングモデルで処理されるビッグデータは、データを書き込みながら、事前に計算され、高速なクエリや計算のためにデータベースに格納された一種のフュージョンビューを形成します。

ビジネス・シナリオが異なれば、必要とされるデータ処理技術も異なるため、ビッグデータ・システムにはさまざまな技術が必要になります。

某メーカーの世論分析を実施する際、お客様の要望により、データ処理に関わる部分として、セマンティック分析、全文検索、統計分析があります。ウェブクローラでクロールされたデータはKafkaに書き込まれ、コンシューマ側ではSpark Streamingで重み付けとノイズ除去が行われた後、SASのECCサーバに引き渡され、テキストのセマンティック分析が行われます。分析されたデータは、同時にHDFSとElasticSearchに書き込まれます。同時に、有用なデータの一部が "誤って殺された "強調除去のためにデノイズアルゴリズムのエラーを回避するために、MongoDBにもデータの完全な量のコピーを保存します。下図のように:

Airbnbのビッグデータプラットフォームは、ビジネスシナリオに応じて様々な処理オプションも提供しています。

PanoramixはAirbnbにデータプロービング機能と結果の視覚化を提供し、Airpalはウェブベースのクエリ実行ツールで、どちらもHDFSに対してデータクエリを実行するPrestoによって支えられています。Sparkクラスタは、Airbnbのエンジニアとデータサイエンティストが機械学習とストリーム処理を実行するためのプラットフォームを提供します。

この時点で、ビッグデータプラットフォームシリーズはほぼ終了です。最後に、データソース、データ収集、データストレージ、データ処理の4つのリンクを組み合わせた全体構造図を示しました。

この図は、クエリ検索シナリオ、OLAPシナリオ、統計分析シナリオ、詳細分析シナリオの4つのシナリオをコアシナリオとし、異なるプログラミングモデルを識別するために色を変えています。



Read next

コマンドラインツール

日常的な開発プロセスでは、cd、Clutchなどの多くのコマンドラインツールの使用は、これらのツールは、ターミナルで実行することができます。そして、これらのツールの本質は実はMach-O型の実行可能ファイルです。 Xcodeを通してプロジェクトをコンパイルし、生成された.appパッケージの中にプロジェクトの実行ファイルを見つけることができ、このようにして生成された実行ファイルを直接実行することができます...

May 26, 2020 · 5 min read