これはなに?
Databricksをデータ分析で利用してみたので、備忘録のため所感をまとめてみました。
利用したのはAzure Databricksですが、AWSなど他のプラットフォーム上のDatabricksでも機能的に大きな違いはないと思います。
Databricksとは
一言で言うとデータ分析に必要な機能をオールインパッケージで提供している Spark ベースの分析プラットフォームって感じです。 データ取り込み、ETL、分析、可視化がDatabricksだけで実施できます。
ガートナーの評価でもデータサイエンスおよび機械学習プラットフォーム部門で、リーダーとして位置づけられているので世界的にも信頼できるサービスだと思います。
構成例
クラウドプラットフォームごとの構成例です。 Databricksは各プラットフォームの分析関連機能と容易に連携できるようになっています。
Azure
AWS
機能紹介
幾つか実際に触ってみて気に入った機能の紹介です。
UI
Databricksでは、基本的にDatabricks Notebookという機能上でコマンドの実行を行っていくのですが、見ていただくと分かる通りJupyterNotebookやApache ZeppelinとUIが似通っています。
私はJupyterNotebookをちょくちょく触る機会があったので、直感的にすぐ利用できるようになりました。
ショートカットも充実しているので、覚えてしまえば作業がとても楽に。
言語
一つのDatabricks Notebook上で複数の言語が利用できます。
'%sql' のようなマジックコマンドをセルの先頭に入力し、言語を切り替えることができます。
MarkDownも利用できます。
利用できる言語
- Python
- SQL
- R
- Scala
これがすごい便利で、データ分析者によって得意な言語が異なると思うのですが、同じデータソースに対して自身が利用したい言語を選択することができます。
利用例として、Python作成したデータフレームをDatabricksでテーブル化し、SQLで読み込むなんてことができます。
◆参考リンク
言語ガイド - Azure Databricks | Microsoft Docs
可視化
Notebookの標準機能で簡単なものであれば、様々な形式で可視化できます。
PowerBI等のBIツールまではいきませんが、素早くデータの傾向を見たりするのに便利です。
線グラフ
棒グラフ
SQLやDFの実行結果の下部に可視化の選択画面があり、可視化の形式を指定できます。
Excelのピボットテーブル的な感じで、Key/Valueやグルーピングの指定ができます。
◆参考リンク
Visualizations — Databricks Documentation
データ取り込み
CSVやJSONデータをDBFS(Databricks ファイル システム)に取り込みの方法は幾つかあるのですが、UIでの取り込みが簡単で便利でした。
CSVをアップロードするとテーブル定義をある程度自動でやってくれて、CSVにヘッダー行があれば、列名として認識してくれます。イメージとしては、AWS Glue Crawlerの機能がDatabricksに搭載されている感じで、ものすごく楽にデータ取り込みできました。
データの概要-Azure Databricks | Microsoft Docs
コラボレーション
権限管理
ノートブックに対する権限管理ができます。 特定のユーザーに読み込み専用で共有したり、グループに対して実行を許可したりできます。WIKI的なノートを作成して、ユーザーに共有したり、サンプルコードや分析結果の共有するのに利用できそうです。
コメント
結構便利だなと思ったのがコメント機能です。レビュー結果をノートブック自体に残せるのはいいですね。実際コードの中にコメントを残すこともできますが、コードが読みづらくなるので、このコメント機能は結構嬉しい。
バージョニング
Databricks ノートブックではデフォルトでバージョン管理がされているため、過去のバージョンもすぐ確認することができます。
データ分析するときって、パラメータやコードを変えて何度も実行するため、バージョン管理とかしておかないと迷子になるんですよね、、、。特に設定なしで、バージョン機能があるのはとても嬉しい。
Githubと連携することもできるようです。
GitHub version control — Databricks Documentation
ライブラリ
データ分析でPythonを利用しているのですが、PandasやNumpyなどの基本的なライブラリはすべて入っている印象でした。
Azure Databricksでしたが、AWS SDKの boto3 が普通にインポートできたので驚きました笑
もし、必要なライブラリがデフォルトでない場合でも、EGGなどからインポートできるので、基本的に必要なライブラリは揃えることができそうです。
最後に
これ以外にもMLのモデルの作成やバッチ実行やクラスター管理等々、Databricksには様々な機能があります。データの取り込みからETL、データ分析までデータ分析、可視化をするにあたって必要な機能がすべて揃っているのは?という印象でした。データ分析者が本来注力すべきところに注力できるそんな製品だなと思いました。今後も使っていきたい。
より詳細が知りたい場合は、MSドキュメントがまとまっているのでこちらを確認してください。Databricks社のドキュメントを綺麗に日本語化してくれています。
Azure Databricks のドキュメント | Microsoft Docs