DX station

データレイクと Azure Databricks で AI 活用しよう【データレイク編】

藤 亮太

こんにちは。データサイエンスチームの藤 (トウ) です。

皆さんは社内にあるデータが貯まっている現状や、プロジェクトで大量のデータを扱う予定はありますか。データはたくさん貯めているけれど活用できていないという声はよく聞く話で、特に IoT 関連のデータや社内に集まるテキストデータなどは貯まりやすいデータです。大量にあるデータを効率よく処理して、 AI も活用してみたいということであれば Azure Databricks がオススメです。 Azure Databricks では、大規模データを分散処理して、 AI の予測結果を可視化するといった使い方が可能です。本記事では、 Part 1 として Blob Storage にあるデータを Data Factory で Data Lake にコピーするまで実施します。続編の Part 2 では、実際に Databricks でデータを読み込み、英語ニュース記事のカテゴリを分類する機械学習を実施します。
下記の URL でも Azure Databricks について触れています。 Azure Databricks とは何か知りたい方は先に読んでみてください。
※本記事では Data Lake を連携先にしていますが、下記記事では Blob Storage を連携先として設定しています。
https://www.softbanktech.co.jp/special/blog/dx_station/2022/0020



「CogEra」はこちら

「Knowledge Bot」はこちら

「ML Connect」はこちら

「機械学習導入支援サービス」はこちら


構成するアーキテクチャ

アーキテクチャの説明の前にシチュエーションとして以下を想定します。

社内にテキストデータ (例えば大規模アンケートデータや数年分の帳票など) が膨大にあり、活用できていないとします。デジタル化は済んでいたとしても、価値を見出せていない状況のため、データ分析をして価値があるか検討したい段階です。

上記のシチュエーションを解決する案として、今回想定するアーキテクチャは下図のようにします。緑の部分はすでに用意されているものとして、青の部分はこれから用意するものとして捉えてください。

既存ストレージに保管しているデータを Azure Data Lake に移します。今回はシンプルに 1 種類のデータを引っ張ってきますが、複数のデータを取り込むことも考えて Data Lake に格納することにします。格納されたデータを Azure Databricks で読み込み、分析します。今回は Blob Storage からデータを取得していますが、 Azure Data Factory では Azure だけでなく、 AWS などからもデータを取得できるので、興味ある方は下記 URL をご確認ください。
https://docs.microsoft.com/ja-jp/azure/data-factory/connector-overview



「CogEra」はこちら

「Knowledge Bot」はこちら

「ML Connect」はこちら

「機械学習導入支援サービス」はこちら


コピー元の Blob Storage に格納されているデータ

下図赤枠の既存ストレージにあたる Blob Storage に格納されているデータについて軽く触れておきます。

格納されているデータ

今回使用するデータは News Aggregator Data Set と呼ばれる英語のニュース記事のタイトルや出版社、 URL などが集まっているデータです。データ総数としては 422,937 件で、 4 つのニュースカテゴリ (ビジネス、科学技術、娯楽、健康) に分類されています。データの拡張子は csv です。
https://archive.ics.uci.edu/ml/datasets/News+Aggregator

※見やすいように元データを加工して掲載をしております。

ストレージの名前は stcopysource として コンテナーの名称は source にしています。

source コンテナーにデータが格納してあります。

Blob Storage の作成の仕方については冒頭でご紹介したブログをご参照ください。
https://www.softbanktech.co.jp/special/blog/dx_station/2022/0020



「CogEra」はこちら

「Knowledge Bot」はこちら

「ML Connect」はこちら

「機械学習導入支援サービス」はこちら


コピー先の Data Lake を作成する

それでは早速 Data Lake から作成していきます。下図赤枠の部分です。

Azure ポータルにアクセスし「リソースの作成」を選択します。

次に、「ストレージアカウント」を選択します。

「作成」を押下します。

基本設定をします。今回は以下の設定にしました。

  • サブスクリプション … ご自身の使用されているサブスクリプション
  • リソースグループ … ご自身の使用されているリソースグループ
  • ストレージアカウント名 … dlcopytarget
  • 地域 … East US
  • パフォーマンス … Standard
  • 冗長性 … ローカル冗長ストレージ (LRS)

詳細設計を以下のようにします。

  • Data Lake Storage Gen2 …「階層型名前空間を有効にする」にチェックをいれる
  • その他はデフォルト設定にする

これ以降の設定もデフォルト設定にします。
リソースを作成したら、当該リソースへ移動し、データストレージの「コンテナー」を押下します。

「+ コンテナー」を押下して target というコンテナーを作成します。

Data Lake の作成は以上です。



「CogEra」はこちら

「Knowledge Bot」はこちら

「ML Connect」はこちら

「機械学習導入支援サービス」はこちら


Data Factory で Blob Storage から Data Lake にデータをコピーする

データのコピー元とコピー先が用意できたので、 Data Factory で実際にデータを読み込み、コピーさせます。下図の赤枠の部分です。

同じく Azure ポータルから「リソースの作成」を押下し、「Data Factory」と入力します。その後「作成」を押下します。

基本設定をします。

  • サブスクリプション … ご自身の使用されているサブスクリプション
  • リソースグループ … ご自身の使用されているリソースグループ
  • ストレージアカウント名 … df-for-copy
  • 地域 … East US

Git 構成の設定は「後で Git を構成する」にチェックをいれます。

これ以降の設定はデフォルト設定にします。
リソースを作成したら、当該リソースへ移動し、「Open Azure Data Factory Studio」を押下します。

スタジオが開いたら、「取り込み」を押下します。

タスクの頻度またはタスクのスケジュールを「今すぐ1回実行する」にして「次へ」 を押下します。本格的に利用するならば定期的に実行できるようにスケジュールを選ぶ流れになります。

ソースデータストアは、今回で言うと csv ファイルを格納している Blob Storage にあたりますので、「Azure BLOB ストレージ」 を選択し、ストレージと接続する設定を行うために、「新しい接続」を選択します。

以下の設定をします。

  • Azure サブスクリプション … ご自身の使用されているサブスクリプション
  • ストレージアカウント名 … stcopysource

うまく接続ができるかテストしたい場合は、右下の「テスト接続」を押下して検証できます。

ファイルまたはフォルダーの「参照」を押下して source コンテナーを選択して「次へ」を押下します。

デフォルト設定のまま進めます。「次へ」を押下してください。今回の csv を開いてみると分かるのですが、中身は tsv です。それに伴い、列区切り記号はタブで問題ありません。

続いてはコピー先です。コピー元の設定と同じように進めます。

列区切り記号を「タブ (\t)」に、行区切り記号を「改行 (\n)」にして、「次へ」を押下します。

デフォルト設定のまま、「次へ」を押下します。

サマリーが出力されるので確認する。問題がなければ、「次へ」を押下します。

しばらくすると処理が完了し、すべて成功ステータスになることが確認できます。

実際に取り込みができているかは、 Data Lake にアクセスしてみると確認できます。
※ 今回はMicrosoft Azure Data Explorer で確認しました。

Data Factory を使って、 Blob Storage のデータを読み込み、 Data Lake にコピーすることができました!



「CogEra」はこちら

「Knowledge Bot」はこちら

「ML Connect」はこちら

「機械学習導入支援サービス」はこちら


さいごに

本記事では Azure Databricks を使用するためにデータ基盤の整備を中心に説明してきました。 Azure Data Factory で貯めているデータをインジェストして Azure Data Lake にコピーするフローは、今回のように一つのデータソースだけではなく、もっと多くのデータソースからテキストデータや外部データ集めることで真価を発揮します。この後は Part 2 として Azure Databricks を使ってデータを取得し、機械学習による分析を実施する流れをご説明する予定です。

Azure Databricks からは少し離れますが、温度計や振動計といったセンサーデータを活用して将来の需要を予測する、または異常波形が発生していないか監視する ML Connect という製品を当社ではご用意しています。貯める一方で活用できていない設備データを用いて、ロスの軽減や新しい価値を模索したい方はぜひ下記 URL をご確認ください。
https://www.softbanktech.co.jp/service/list/azure-iot/ml-connect

当社では、 AI 活用支援をはじめ、機械学習のモデル構築、クラウドを活用したシステム構築支援までご支援しています。現行の作業を軽減してより重要な作業に時間を充てたい、取得しているデータを活用して課題解決を行いたいなど AI 活用を検討中のご担当者の方、まず何からはじめればよいか悩んでいるといったお客様も、ぜひ一度お問い合わせください。


関連ページ

「CogEra」はこちら
「Knowledge Bot」はこちら
「ML Connect」はこちら
「機械学習導入支援サービス」はこちら

お問い合わせ

製品・サービスに関するお問い合わせはお気軽にご相談ください。