SAP TechDays 2018 セッションハイライト~SAP Data Hubで実現するビジネスデータとビッグデータの上手な連携


SAP Data Hubで実現するビジネスデータとビッグデータの連携

SAPでは企業のビッグデータ活用を促すデータソリューション「SAP Data Hub」を2017年9月に発表し、日本でも11月から提供開始しています。5月に開催された「SAP TechDays 2018」では、SAPジャパンのシニア アーキテクトの新久保浩二がSAP Data Hubで実現するビジネスデータとビッグデータの連携について、デモを交えて解説しました。

SAP Data Hub:あらゆるデータを必要な場所に届ける
企業のデータ管理といえばデータベースが大半を占め、現在でも王座は揺るぎません。一方、Amazon S3やGoogle Cloud Storage、Azure Data Lakeなどのクラウドストレージにもさまざまなデータが蓄積されるようになりました。さらに分散環境、ストリーミング環境として、Hadoop、Spark、Kafkaなどが登場し、機械学習やデータサイエンスのツールとしてもSAP Leonardo、TensorFlow、Rなどが登場しています。これらのデータを効果的に管理しながら、新たな価値に結びつけることが求められています。データ管理における具体的な課題として、以下の4つが挙げられます。

(1)必要な場所に必要なデータを迅速に届ける「データのパイプライン」

(2)既存のETLジョブなども合わせてデータの流れを一元的に管理し、それらの作業を自動化する「データのオーケストレーション/オートメーション」

(3)DB、クラウドストレージ、Hadoopなどのデータがどこにどのような形で存在しているか、ランドスケープ全体のメタデータを管理する「メタデータのカタログ管理」

(4)データの特徴を理解して、届け先の要件に合うデータを把握する「データのプロファイリング」

これらのデータ管理の課題を解決するソリューションとして登場したのがデータソースを統合的に管理する「SAP Data Hub」です。ランドスケープ内のすべてのデータを共有し、パイプライン処理やガバナンスの強化を支援します。
SAP Data Hubの役割には、狭義と広義の2つがあります。狭義の意味としてはデータを集めて保存し、変換してから相手に配送するまでの、「収集」「保存」「変換」「配送」の4つです。既存のETLジョブを使ってHadoopに蓄積したデータ、あるいはGoogle Cloud Storage(GCS)に蓄積されたデータをTensorFlowやSAP Voraなどの機械学習用ツールで分析すること、メタデータの分析を効率化するためにHadoopとGCSをひとまとめに管理することも狭義の意味でのSAP Data Hubと捉えることができます。

DataHub役割1
広義の意味でのSAP Data Hubは上記の「収集」「保存」「変換」「配送」に「ガバナンス」「メタデータの収集、検索」「ジョブの監視」の3つを加えた7つとなります。データを必要な場所に届けることは同じですが、データを誰が扱っているかを特定し、ガバナンスを確保します。また、HadoopとGCSに蓄積されているデータを効率よく管理するため、メタデータの収集と管理が必要です。さらにデータが左から右に流れていく中で、パイプラインの中身をモニタリングすることも求められます。
DataHub役割2
SAP Data Hubによる「データパイプライン」と「データオーケストレーション」
ここからは、データパイプラインの例を用いてデモを実施しました。パイプラインのシナリオは、以下の3つです。

(1)テストデータを生成してKafkaにメッセージを送信
(2)Kafkaのメッセージを受信して、HDFS(Hadoopの分散ファイルシステム)とクラウドストレージにデータを保存
(3)データ分析をSQL/Sparkで実行するためにSAP Voraにデータをロード

データ処理のワークフローは、GUIベースのSAP Data Hubのコックピット画面で作成し、画面の左側から必要なタスクを選び、パイプラインモデラーを作成します。今回のデモでは、Data GeneratorからJavaScriptを介してデータをまとめ、変換しながらKafkaに転送、10秒おきに分岐させてHDFSとGCSに書き込むまでを実行しました。デモではSAP Voraにデータをロードするまではたどり着きませんでしたが、Hadoopに追加されていくデータに対しては分散処理エンジンのSAP Voraがタスクを実行します。

データパイプライン
加えてデータオーケストレーションのデモも実施しました。データオーケストレーションとは、2つのパイプラインをつなげて最終的にSAP Voraで全体管理をするものです。SAPではWeb IDEという独自の開発環境を用意し、Data Hubによるモデリングを実施しています。Web IDE上には、オーケストレーションできるリストがあり、GCS、HDFS、SAP Vora上のデータのいずれかを選ぶことができます。フローの作成は、パイプラインを1つのタスクとして登録します。手順としては、ダミーのデータを作ってそれを読み込み、これをツリー化して1つのパスとして登録します。複数のタスクを作成し、同期を実行させるタイミングをそれぞれ指定すれば完成です。対象はパイプラインだけでなく、ファイルでも他のジョブでも構いません。今回のデモはパイプラインのデータオーケストレーションを作成しましたが、HDFSのファイルとGCSのファイルを結合して結果をHDFSに書き出し、フローグラフで生成されたHDFS上のデータをSAP Voraに渡すこともできます。
データオーケストレーション
データパイプラインによる画像認識と自然言語分析への応用
続いて新久保は、非構造化データや機械学習を使った応用例として、0から9まで書かれた手書きの数字を画像認識してデジタル化するまでのプロセスを紹介しました。具体的には、TensorFlowを用いてスコアリングを実施し、画像情報から数値情報に変換するという流れです。デモでは、「画像データを作る」という学習ジョブを作り、トレーニングモデルを読み込んでスコアリングした結果を書き出すまでを実行しました。
データパイプライン2
SAP Data Hub上ではPythonもネイティブに利用できるため、データパイプラインを自然言語解析に適用することもできます。そこで、英語のテキストに対してPythonを使ったセンチメント分析を実施し、書かれている内容がネガティブかポジティブかを判定するデモも実施しました。その結果「good」という言葉を解析すると極性が+0.875、「Bad」という言葉は極性が-0.875と数値化されることがわかり、感情分析に使えることもわかったといいます。
データパイプライン3
同様に、英語のテキストブログを日本語に翻訳する処理でもPythonを使ってパイプラインを実行した結果、「This is good」は「これはいい」、「This is not good」は「これは良くない!」、「This is bad」は「これは悪い」、「This is not bad」は「これは悪くない」と正しく翻訳されました。

SAP Data HubにはSAP HANAとKubernetes Clusterが必須
最後に、SAP Data Hubのアーキテクチャーの概要を解説しました。今回のデモ用SAP Data HubはGCP上で稼動するものでした。GCPをはじめ様々なPublic IaaS上で稼働します。またオンプレミスでSAP Data Hubを稼働させることも可能です。アーキテクチャーとしてはSAP HANAとKubernetes Clusterの2つが必要で、その上にData Hubが載っている形です。ワークフローはSAP HANA上で実行され、パイプラインはKubernetes Cluster上で実行されます。パイプラインを実行するとボットが2、3個立ち上がりKubernetes上で実行され、不要になったら消えていきます。Kubernetes上で実行されるのは、分散DBのSAP Voraで、SQLが実行できるほかにクエリーエンジンとしてRelational、Document(JSON)、Graphなどをサポートしています。
DataHub2
広義のSAP Data Hubとしては、ランドスケープ管理の機能があり、ここではポリシーと合わせたアクセス権限、メタデータカタログ、プロファイリングを管理します。ランドスケープは「Zone」から「system」に分かれ、systemがHDFSやGCPをつなぐ役割を果たします。その中の1つがプロファイリングとして公開されます。メタデータカタログでは、HDFSに入っている項目や、テーブル形式などのメタデータを管理します。ポリシー管理では、ユーザーにどのリソースへのアクセスを許可するかコントロールすることが可能です。

SAPではSAP Data Hubを初めて触れる人のために、30日間無料のtrial editionを公開しており、SAP CAL(Cloud App Library)を利用してGCP上に自動で構築することができます。新久保は「触ってみないとわからないことが多いので、この機会にぜひSAP Data Hubを体験してください」と新久保は呼びかけました。