Databricksに対するFAQ

Databricksソリューションアーキテクトの弥生です。

前回は私が使用した[Databricks学習コンテンツ](https://qiita.com/taka_yayoi/items/4bd998434a1aaf278a03)をシェアさせていただきましたが、こちらでは2020年の入社後、多くのお客様とのやりとりの中でいただいたご質問および回答をまとめました。

「Databricksって聞くけど、一体何なの？」と感じている方にとって、本書が一助になれば幸いです。

# Databricksの概要

## レイクハウスとは何ですか？

Databricksが提供するプラットフォームの名称です。Databricksが作った造語であり、由来は従来型データプラットフォームであるデータウェアハウスとデータレイクであり、両者の長所を兼ね備えたプラットフォームであるという意味を込めてレイクハウスとしています。

https://qiita.com/taka_yayoi/items/438f762126f57868aa35

https://qiita.com/taka_yayoi/items/09e980756f9ccca3f32f

## 想定されるエンドユーザーは誰ですか？

データエンジニア、データサイエンティスト、SQLアナリスト、MLエンジニアなど機械学習/AIプロジェクトに関わる方すべてです。なお、SQL/Python/Rの知識を有している方を主たるユーザーとしていますが、最近ではシチズンデータサイエンティストの方向けの機能を提供するように機能を拡張しています。

https://qiita.com/taka_yayoi/items/3bf4f4e89990b299c6c9

https://qiita.com/taka_yayoi/items/252390232c47f6576256

## 日本語のドキュメントはありますか？

鋭意準備中です。以下のドキュメントもご活用ください。

https://qiita.com/taka_yayoi/items/125231c126a602693610

https://docs.microsoft.com/ja-jp/azure/databricks/

なお、最近GUIが日本語に対応しました。

https://qiita.com/taka_yayoi/items/ff4127e0d632f5e02603

## どのようなアーキテクチャですか？

Databricksはコントロールプレーンとデータプレーンから構成されています。

コントロールプレーンには、DatabricksのAWSアカウント上でDatabricksが管理するバックエンドサービスが含まれます。あなたが実行する全てのコマンド(ノートブックのセル)は、完全に暗号化された状態でコントロールプレーンに存在することになります。保存されたコマンドはデータプレーンに格納されます。

データプレーンはあなたのAWSアカウントで管理され、あなたのデータが格納される場所になります。また、ここでデータが処理されます。この図では、既にデータがDatabricksに登録されていることを仮定していますが、イベントデータ、ストリーミングデータ、IoTデータなど外部のデータソースからデータを取り込むことが可能です。Databricksコネクターを用いることで、あなたのAWSアカウント外の外部データソースにも接続することができます。

あなたのデータは常に、データプレーンのあなたのAWSアカウントに存在します。このため、あなたのデータがロックインされることなく、常にフルコントロール、オーナーシップを維持することができます。

https://qiita.com/taka_yayoi/items/7d209bc8d32bc5f2dba4

# 機能

## Delta Lakeとは何ですか？

上述したレイクハウスの根幹とも呼べるコンポーネントがDelta Lakeです。Delta Lakeはデータレイクの抱える課題を解決するために、データウェアハウスで培われた技術をデータレイクに提供します。

- データウェアハウスでは当たり前のACIDトランザクションをデータレイクで実現することで、データが不完全な状態になることを回避します。
- データベースで当たり前のスキーマ適用を行うことで、スキーマに合致しないデータの流入を防ぎます。
- データベースで培われたインデックス、パーティショニングをデータレイク上で実現することで、大規模データに対する高速な処理を実現します。

https://qiita.com/taka_yayoi/items/345f503d5f8177084f24

## Sparkとは何ですか？

Databricksの創業者が開発した分散処理フレームワークです。Databricksにおける処理エンジンとなっています。Sparkを活用することで、大量データに対するETL処理、機械学習、BIを高速に実施することが可能となります。

https://databricks.com/jp/spark/about

https://qiita.com/taka_yayoi/items/bf5fb09a0108aa14770b

## MLflowとは何ですか？

エンドツーエンドの機械学習モデル管理をサポートするソフトウェアです。トレーニングされたモデルを自動でトラッキングし、本格運用としてモデルを簡単にデプロイすることが可能となります。

https://qiita.com/taka_yayoi/items/2d8ebdc9374696b24e0f

## Databricksでファイルはどの様に管理されますか？

Databricksで取り扱うファイルは、Databricksのワークスペースを構築する際に指定した(1)S3バケット(DBFSルートバケットと呼ばれます)に格納されます。加えて、稼働しているクラスターの(2)ローカルストレージにファイルを保存することができますが、こちらはクラスターが停止すると全て失われます。

https://qiita.com/taka_yayoi/items/897264c486e179d72247

## データベースの様な使い方はできますか？

できます。Hiveメタストアにデータを登録することでSQLベースでのデータ操作が可能となります。

https://qiita.com/taka_yayoi/items/e7f6982dfbee7fc84894

## matplotlib/seabornなどを用いて可視化を行うことができますか？

できます。さらにはビルトインの可視化機能を用いてお手軽にグラフを作成することができます。

https://qiita.com/taka_yayoi/items/36a307e79e9433121c38

## 画像データを取り扱うことはできますか？

できます。専用のデータソースを活用することで、画像サムネイルを簡単に参照することもできます。

https://qiita.com/taka_yayoi/items/8d4b1b61699d68a34e58

## テキストデータを取り扱うことはできますか？

できます。Sparkを活用することで、大量テキストデータを高速に処理することも可能です。

https://qiita.com/taka_yayoi/items/3b5836853eac8ac248c1

## Githubと連携できますか？

できます。Reposをご活用ください。

https://qiita.com/taka_yayoi/items/b89f199ff0d3a4c16140

## VSCodeなどのIDEをローカルで使いたいのですが

Databricks Connectを使うことでIDEからDatabricksクラスターを利用いただけます。

https://qiita.com/taka_yayoi/items/a9781c0a871a5a4fcf2e

# Databricksの導入

## AWSでDatabricksを導入したいのですがどうしたら良いですか？

以下の手順に従って環境を導入ください。複雑な構成が必要な場合には[Databricks](mailto:sales-jp@databricks.com)までご連絡ください。導入をサポートします。

https://qiita.com/taka_yayoi/items/fb4f57c069e1f272e88a

## AzureでDatabricksを導入したいのですがどうしたら良いですか？

マーケットプレースから導入してください。

https://docs.microsoft.com/ja-jp/azure/databricks/scenarios/quickstart-create-databricks-workspace-portal?tabs=azure-portal

## GCPででDatabricksを導入したいのですがどうしたら良いですか？

マーケットプレースから導入してください。

https://qiita.com/taka_yayoi/items/cff8460e3864121a0e4a

# ソリューションアクセラレータ

## ソリューションアクセラレータとは何ですか？

Databricksがお客様との共創を通じて生み出したソリューションを他の会社の方でも利用できる様にインターネットに公開しているサンプルノートブックと説明資料(ブログ記事)です。

https://databricks.com/solutions/accelerators

## ソリューションアクセラレータは有償ですか？

いいえ、すべて無料です。

# セキュリティ

## Databricksでユーザーはどの様に管理されますか？

ユーザー、グループ単位で管理されます。アイデンティティプロバイダーと連携したシングルサインオンもサポートしています。

https://qiita.com/taka_yayoi/items/3262ea8529ad96b920ce

## Databricks上のオブジェクト(ノートブック、フォルダなど)のセキュリティはどうなっていますか？

ロールベースのアクセス権管理が可能です。

https://qiita.com/taka_yayoi/items/2dd6711b7b254505e4a3

## 閉域網で環境を構築したいのですがどうしたら良いですか？

AWSであればPrivateLinkを活用して閉域網で環境を構築することができます。

https://qiita.com/taka_yayoi/items/c6bdbb6452f6a0895961

## データベースのテーブルの行列レベルでアクセス制御を行うことはできますか？

できます。テーブルアクセスコントロールを有効化したクラスターを使用してください。

https://qiita.com/taka_yayoi/items/ca0673f6b7b6ca38a08f

https://qiita.com/taka_yayoi/items/f0b999e69b9fef5065d8

## クラウドストレージ上のファイルに対するアクセス制御を行うことはできますか？

できます。インスタンスプロファイル、あるいはIAMクレディンシャルパススルーをクラスターに設定してください。

https://qiita.com/taka_yayoi/items/ca0673f6b7b6ca38a08f

https://qiita.com/taka_yayoi/items/446c7971be354f88c679

## ユーザーの操作履歴など監査ログを記録することはできますか？

はい、監査ログの設定をしていただくことでDatabricks上のユーザーの操作を記録することができます。

## アクセストークン、パスワードなど機密性の高い情報をノートブックに記載したくないのですがどうしたら良いですか？

シークレットに格納してください。

https://qiita.com/taka_yayoi/items/338ef0c5394fe4eb87c0

# 価格

## 価格体系はどうなっていますか？

従量課金と年額事前契約があります。前者はクレジットカードの登録が必要となります。後者はプロフェッショナルサービスによるサポート、ディスカウントのメリットがあります。

https://databricks.com/jp/product/pricing

## どの様なケースでDatabricksの課金が発生しますか？

クラスターが起動している期間のみDBU(Databricks Unit)に基づく課金が発生します。クラスターを起動しなければ、Databricksからの課金は発生しません。なお、インスタンス、ネットワーク、ストレージなどクラウドプロバイダーの課金が別途発生します。

## 無償で機能を試すことはできますか？

できます。機能制限のあるDatabricks Community Editionあるいは、2週間のフリートライアル期間でフル機能を試していただくことが可能です。

https://qiita.com/taka_yayoi/items/fb4f57c069e1f272e88a

# 運用

## 毎回クラスターを停止する必要がありますか？

いいえ、自動停止(Auto Termination)の設定をしていただければ、クラスターが利用されていない状態が一定期間継続した場合に自動で停止されます。

https://qiita.com/taka_yayoi/items/8f64b632529bbffa8d33

## どのようにクラスターを設定したら良いのでしょうか？

ベストプラクティスを参照してください。

https://qiita.com/taka_yayoi/items/ef3dc37143e7b77b50ad

## 定期的に処理を実行したいのですが

ジョブを活用ください。

https://qiita.com/taka_yayoi/items/b3275a1983c51a8bbe1a

# メリット

## リモートワーク主体になっているのですがDatabricksは使えますか？

使えます。むしろ、各種コラボレーション機能はリモートワークのシーンにおいて威力を発揮します。

https://qiita.com/taka_yayoi/items/2c7790fdbc5e4fd02611

## 人的リソースが少ないのですがDatabricksは使えますか？

SaaSで提供されるDatabricksでは、インフラ管理の工数を劇的に引き下げることができます。1名の管理者で複数部門にサービスを提供した事例もあります。また、分析者はコラボレーション機能、プロジェクト管理機能を活用することで、少ない分析者リソースであっても複数のAIプロジェクトを回すことができます。

## Jupyter Notebookを使っているのにDatabricksを利用するメリットはありますか？

たくさんあります。

https://qiita.com/taka_yayoi/items/d5ea3dede05a180091b2

https://qiita.com/taka_yayoi/items/dfb53f63aed2fbd344fc

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)