やましーデータ活用クラウドエンジニアになるSQLも叩けない、クラウドも触ったことがない三十代元インフラエンジニアの私。2020年1月16日こんにちは。Learnの続きです。使ってデータの取り込みまでを実施しました。Databricks作って、前回データレイクに取り込んだを読み出してて見たいと思います。この記事を読むことで、モダンなデータ活用基盤をクラウド上に作成できるようになります。データ活用は今後、事業活動を行う上で絶対に必要です。している間にも他社はどんどんと分析を行い売り上げをアップコスト削減に努め競争力を高めています。Databricksは現在Microsoftが絶賛おすすめ中のPaaSサービスで、分散処理をお手軽簡単にできるサービスになっています。https://azure.microsoft.com/ja-jp/services/databricks/これを使いこなせるようになり、同僚に差をつけ上司を見返し、所属する会社の売り上げに貢献してどんどんあなたのキャリアアップを図っていってもらいたいと思います。データの取り込みについては前回の記事で解説していますので、こちらからどうぞ。今回の記事は以下のような方を読者として対象としてます。Databricksについて簡単に解説から始めたいと思います。Databricksとは一言でいうと「分散処理をするための基盤サービス」といったところでしょうか。具体的に言うと、1台のコンピュータでは処理に時間がかかってしまうような膨大なデータを複数台のコンピュータを使って手分けして処理を行うことができるサービスとなっています。これを分散処理といいます。Databricksでは分散処理を行うコンピュータのグループをクラスターといいます。上で利用することができるサービスとなっています。Sparkの開発元(OSSコントリビュータ)であるDatabricks社から来ています。Microsoft社とDatabricks社が共同開発したPaaSであるため、元はOSSでありながらMicrosoft社からサポートを受けることができます。使える分散処理をするクラスターはオートスケール機能でスケールアウトさせられる一定期間処理が行われない場合クラスターが自動削除されて費用がかからなくなるクラスターを削除してもNoteBookは消えないオンメモリで動作するため処理が高速テラバイト級より大きいのデータはメモリ上に乗りきらないので扱えない前置きはこのくらいにしておいて、ワークスペース作成から始めたいと思います。Databricksワークスペースを作成する1「すべてのサービス」を選択します。2「databricks」と検索します。Databricks」を選択します。Databricksのワークスペースの作成を開始します。適当なワークスペース名を設定します。2サブスクリプション:いつもお使いのもの指定します。前回作成したリソースグループを使用しました。今回はデモなのでTrialを選択しました。DataBricksの課金体系としてDBUsに対する料金とクラスター内のVMに対する料金の両方が課せられます。Trial版はDBUsに対する課金が14日間無料になるようです。通常はPremiumとStandardがあります。JDBC/ODBCエンドポイント認証などのセキュリティ周りの機能追加されています。:「No」こちらはクラスターをどこのVNETで作成するかを指定することができます。YESの場合はユーザーが作成した任意のVNETの使用できます。(VNETインジェクションと呼ばれる)8「作成」を選択しワークスペースを作成します。Workspace」を選択すると、Databricksのワークスペース画面へ遷移します。これでワークスペースの作成が完了です。今回は既に演習用に公開されたノートブックがあるのでそれをインポートします。1Workspaceを選択します。各ユーザーごとまたは共有で使えるワークスペースが与えられているので、そこにNotebookを作成していきます。1「Users」を選択します。23ユーザー名の右の▽を選択します。4Inportを選択します。from:「URL」を選択します。インポート元のULRを指定します。「https://github.com/MicrosoftDocs/mslearn-data-ingestion-with-azure-data-factory/blob/master/DBC/03-Data-Ingestion-Via-ADF.dbc?raw=true」3Importを選択します。インポートできたことを確認します。1ユーザー名を選択します。2ワークスペースに「03-Data-Ingestion-Via-ADF」というNotebookの一式がフォルダとして見えるようになりました。こちらを選択し展開します。3フォルダを展開しにNotebookがあることが確認できます。Factoryの環境構築手順と「02-Data-Ingestion」でコピーパイプライン作成して実行してみるところまでを紹介しました。4前回のブログの続きを行うなうため、「02-Data-ingestion」を選択します。本記事の対象のDatabricksを扱う演習です。ここではまずクラスターを起動してNotebookにアタッチするように促されています。作成していないので作成していきます。Databricksクラスターを作成するNotebookに書かれた処理を実行するためにはクラスターが必要なので作成していきます。1「Clusters」を選択し、クラスター管理画面に遷移します。Cluster」を選択し新規に作成します。Name:「ymstech-cluster01」任意のクラスター名を付けます。Mode:「Standard」一人で使用するためStandardとしました。concurrencyを選択します。3Pool:「None」仮想マシンをホットスタンバイさせておき、クラスターの起動やオートスケールを迅速に行いたい場合はあらかじめプールを作成してそれを指定します。2.4.4」いいろいろなソフトがセットになったランタイムです。2を使いたい場合や、GPUが使いたい場合はこちらを変更します。autoscaling:「チェックあり」実行する処理に応じて自動でスケールアウト(ワーカーの仮想マシンが増える)します。inactivity処理が行われなくなってから指定した時間経過すると自動でクラスタを削除する設定です。これにより料金を非常に抑えることができます。Databricks特有の機能です。「Standard_DS3_v2」ワーカー仮想マシンのサイズ(CPUやメモリ)を決定します。Workers:「1」スケールアウトしない場合のワーカー仮想マシンの数です。Workers:「2」スケールアウトした場合の最大のワーカー仮想マシンの数です。worker」ドライバー仮想マシンのサイズ(CPUやメモリ)を決定します。ドライバー仮想マシンとは分散処理をワーカーにさせる場合に統率を取る役割の仮想マシンです。そのため、クラスターの最小構成はドライバー1台、ワーカー1台の計2台となります。Cluster」を選択しクラスタを作成します。作成までに5分くらい時間がかかります。作ったクラスタをポータルから覗いてみる作ったクラスタポータルからその存在を確認することができます。1ワークスペースを作った時、実は、一緒にリソースグループが作られます。これはDatabricksに管理されたリソースグループなのでユーザーが直接操作することはできません。そのリソースグループのの中には「ストレージアカウント」と「ネットワークセキュリティーグループ」と「仮想ネットワーク」が作成された状態になります。クラスタを作成するとその仮想ネットワークの中に仮想マシンが作成されます。Notebookにクラスターをアタッチするアタッチお行わない限り処理が実行できないので必ずアタッチを行います。再度Notebookにアクセスします。1「Detached」を選択します。2先ほど作成したクラスタ「ymstech-cluster01」を選択します。すると3のような状態になります。これでNoteBook実行の準備が整いました。NoteBookに書かれた処理を実行するDatabricksを実行するにあたりストレージアカウントのキーを取得します。作成していない方は前回の記事を参照して下さい。1ポータルにアクセスし、ストレージアカウントの「アクセスキー」を選択します。2次に使うので「key1」をコピーします。6から実行用のコマンドがあります。ちなみに今回のNoteの言語はPythonです。新規にNotebookを作る場合は選ぶことができます。InportしたNotebookをそのままでは動作しないので少し書き換えていきます。今回視覚化するデータが入っているストレージアカウントのBLOBコンテナ名を記入します。前回の記事で作ったコンテナ名になります。今回視覚化するデータが入っているストレージアカウント名を記入します。4storageAccountKey:先ほどコピーしたストレージアカウントのキーを記入します。Enter」を実行します。これにより変数に代入されます。次にストレージにどんなファイルが入っているか覗いてみます。1Cmd8を修正して実行してみます。wasbs://demo-container01@ymstechsa01.blob.core.windows.net/03.02ちなみに「%fs」によりlinuxのシェルが実行できるようになります。今回はlsコマンドで指定の場所にどんなファイルがあるかを確認するコマンドです。書き換えたら実行してみましょう。3に実行結果が表示されます。parquetファイルがあることが確認できました。今回はアメリカの各都市における犯罪データがparquet(列指向フォーマット)としてまとめられています。次にparquetの中身を見ていきたいと思います。parquetの中身を変数に読み込みます。このコマンドはニューヨークの犯罪データを読み込みます。これはクラスタが実際にクラスタが処理を処理をしたということになります。JOBは分散処理を実行する単位となります。複数のJOBがある場合はワーカーにJOB振り分け分散処理が行われます。今回は1つなので分散されていません。この辺り別の記事で詳しく説明したいと思います。1つのJOBを構成する処理単位で逐次実行される小さな単位です。内の列名が表示されました。次も同様に、今度はボストンのデータを読みだしてみます。次は実際のデータを表示してみたいと思います。displayを実行することでデータの中身を見ることができます。ここで注意して見てほしいのはニューヨークとボストンで列名が違います。データ分析を行う上で列名が違うと処理がしにくいので次回はデータを整形してデータを統合していきます。長くなってきたので今回はこの辺でいったん終わりたいと思います。まとめDatabricksとは「分散処理をするための基盤サービス」でしたね。今回はDatabricksを作成しデータレイクの中身を覗いてみました。Factoryと連携させてデータ整形&統合&可視化です。Learnを使って実際に触ってみましょう!ぜひご自身でも実施してみてください。最後まで読んでいただきありがとうございました。以上、やましー@データ活用クラウドエンジニア(@yamashi18041)でした。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Directoryとテナントとサブスクリプションとユーザーアカウントの関係についてこんにちは。Analyticsを使ってWindowsイベントログを監視してみたこんにちは。システムを安定稼働させ、重大な問題を未然に防ぐためにも監視は非常に重要です。...クラウドとは?こんにちは。今日は【クラウド】っていったい何なのかについて説明したいと思います。Databricksでデータを整形&統合&可視化する方法こんにちは。Notebookがサクッと使えたこんにちは。...2020/01/25やましーのプロフィールこんにちは。やましー@データ活用クラウドエンジニア(@yamashi18041)です。私は現在クラウド技術を使ってお客様企業のデータ活用基盤を構築しています。Databricksでデータを整形&統合&可視化する方法こんにちは。Databricksを使ってデータレイクのデータを表示する方法こんにちは。...プロフィールはじめまして!やましー@データ活用クラウドエンジニアです。クラウド未経験状態で転職し、3ヵ月でデータ活用基盤をクラウド上に構築できるようになりました。エンジニアとして尖るためにはアウトプット必須だろ!ってことで2019年6月からブログ開始。日々勉強したことを同じように悩んでいる方の為に記事を更新してます。得意領域はAzure、C言語、TCP/IP、サーバーインフラ構築です。未分類やましーデータ活用クラウドエンジニアになるSQLも叩けない、クラウドも触ったことがない三十代元インフラエンジニアの私。