本記事の目的
Azure Data Factoryの前処理で、MeCabを利用した簡単な自然言語処理(形態素解析+α程度)をしたい。
関数として実装して、後々LogicAppsとか色々なサービスから呼び出せれば便利そう。ということで2つの実装方法を検討した。
- Azure Functions (Azure FunctionsでPythonとMeCabを使う)
- Azure Databricks (本記事)
当面はAzure Functionsで十分そうだが、将来的に機械学習のように重たい処理を行う場面を想定すると、Databricksのサービスも把握しておきたい、ということでDatabricksも試してみた。
先に結論を書くと、
・Azure Databricks初心者は以下のMicrosoft Learn(無償)が分かりやすい
Azure Databricks を使用して Data Engineering を実行する
https://docs.microsoft.com/ja-jp/learn/paths/data-engineering-with-databricks/
・MeCabはクラスターに対して「mecab-python3」をPyPIでインストールすれば使える
・ブラウザでAzure PortalとDatabricksにアクセスすれば完結、ローカルの環境設定は不要
理解不足の点も多々あるので、間違いなどあればご指摘下さい。
適宜、修正・追記します。
Databricks概要
Apache Spark ベースの分析プラットフォーム。コンピューティングリソースを必要に応じてスケールアウトして分散処理することができる。
課金体系
やや分かりづらい部分もあるが、大まかに以下の2つに対する課金となる。
・クラスターにプロビジョニングされた仮想マシン (VM)
・選択した VM インスタンスに基づく Databricks の単位 (DBU)
ほかにマネージド ディスク、Blob Storage、パブリック IP アドレスにも少額だが課金される。
Azure Databricks の価格
https://azure.microsoft.com/ja-jp/pricing/details/databricks/
ちなみに14日間の「試用版」を利用した場合は、DBUに対する課金が免除。
一方、VMに対しては通常通り課金されるため注意が必要。
(Azureではない)Databricksであれば14日間、コンピューティングリソースも含めて無償で試せる。インターフェイスはAzure DatabricksもDatabricksも同じなので、こちらを試しても良いと思う。
https://databricks.com/try-databricks
言語
ノートブックを作成するタイミングで、Python, Scala, SQL, Rから選択できる。
Databricks Magic commandを利用することで、ノートブック内に複数の言語を混在させることも可能。
(セルの頭に %python と書いておくと、そのセルはpythonで実行してくれるなど)
Azure PortalからDatabricksを作成
普通にAzure Portalから検索して作成すれば、特に迷うことはない。
一点だけ、価格レベルをStandardにするかPremiumにするか迷うが、【ノートブック、ユーザー、およびクラスター構成は保持】した状態で、後で価格レベルの変更も可能らしいので、あまり神経質にならなくてよい。なおPremiumではアクセス制御や認証、監査ログの機能が強化される。
Azure Databricks ワークスペースのアップグレードまたは ダウングレード
https://docs.microsoft.com/ja-jp/azure/databricks/administration-guide/account-settings/account#upgrade-or-downgrade-an-azure-databricks-workspace
それと前述した通り、試用版を選んで使いまくっていると、VM料金でしっかり課金されるので注意。(DBU課金は免除)
Databricksでクラスタを作成
Databricksの展開が完了したら、リソースに移動してワークスペースを起動。
Databricksの画面からClustersを選択し、Create Clusterする。
プロビジョニングするVMの種類や数などを設定してClusterを作成。
DatabricksのクラスタにMeCabをインストール
作成したClusterに対して、詳細画面からLibraryのインストールが可能。
WorkspaceからNotebookを作成して使う
Workspace > Create > Notebook から、PythonでNotebookを作成。
あとはimport MeCabで形態素解析できる。
まとめ
FunctionsでPythonを使う場合と比較すると、全てWebで完結するので設定がすごく楽だった。
複数の担当者で管理する場合も、ローカル環境を合わせたりする必要もないので楽。
費用
デフォルトで指定されているインスタンス「DS3 v2」の費用は以下の通り。
インスタンスが起動されている時間(分単位)で課金される。
高負荷でスケールアウトされ、例えばコンピュートノード(Worker)の数が2倍になると課金額も2倍に増える。
(VMもDBUも費用が2倍になる)
Azure Databricks の価格
https://azure.microsoft.com/ja-jp/pricing/details/databricks/