Databricksとは何か？

[What is Databricks? \| Databricks on AWS](https://docs.databricks.com/introduction/index.html) [2022/11/3時点]の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

Databricksレイクハウスプラットフォームは、エンタープライズレベルの大規模データソリューションの構築、デプロイ、共有、維持のための統合されたツールセットを提供します。Databricksは、お使いのクラウドアカウントのクラウドストレージとセキュリティと連携し、あなたに代わってクラウドインフラストラクチャの管理、デプロイを行います。

# オープンソースとのマネージドインテグレーション

Databricksは、オープンソースコミュニティに対して強力にコミットしています。DatabricksはDatabricksランタイムリリースにおいて、オープンソースとのインテグレーションのアップデートを管理しています。以下のテクノロジーは、Databricksの従業員によって立ち上げられたオープンソースプロジェクトです。

- [Delta Lake](https://delta.io/)
- [Delta Sharing](https://delta.io/sharing)
- [MLflow](https://mlflow.org/)
- [Apache Spark](https://spark.apache.org/)と[構造化ストリーミング](https://spark.apache.org/streaming/)
- [Redash](https://redash.io/)

Databricksは、最適化されたパフォーマンスと使いやすさを提供するために、これらのテクノロジーとインテグレーション・拡張するために、以下の様に多数のプロプライエタリなツールをメンテナンスしています。

- [ワークフロー](https://qiita.com/taka_yayoi/items/f91b6ff0a2c7f892f401)
- [Unity Catalog](https://qiita.com/taka_yayoi/items/15aede468bdca58ec6a3)
- [Delta Live Tables](https://docs.databricks.com/workflows/delta-live-tables/index.html)
- [Databricks SQL](https://docs.databricks.com/sql/index.html)
- [Photon](https://qiita.com/taka_yayoi/items/6fdbcac84f88bdd14fee)

# DatabricksとAWSはどの様に動作するのか？

Databricksプラットフォームのアーキテクチャは2つの主要なパーツから構成されています: Databricksがプラットフォームとサービスをデプロイ、設定、管理するために使うインフラストラクチャと、Databricksとお客さまとで共同管理するお客さま所有のインフラストラクチャです。

数多くのエンタープライズデータベース企業と異なり、Databricksではプラットフォームを使うためにデータをプロプライエタリなストレージシステム移行することを強制しません。そうではなく、Databricksプラットフォームとお使いのクラウドアカウントの間でセキュアなインテグレーションを設定することでDatabricksワークスペースを構築すると、Databricksはオブジェクトストレージやあなたがコントロールしている連携済みサービスのデータを処理、格納するために、あなたのアカウントのクラウドリソースを用いて、一時的な計算クラスターをデプロイします。

Unity Catalogはこのリレーションシップをさらに拡張し、Databricks内から馴染み深いSQL構文を用いて、データアクセス権限を管理できるようになります。

Databricksは、世界最大かつ最もセキュリティ意識の高いいくつかの企業のセキュリティとネットワーク要件に応えるワークスペースをデプロイしてきています。Databricksは新規ユーザーが使い始めやすいものとなっており、エンドユーザーがクラウドインフラストラクチャを操作する際の負荷や懸念点を排除しますが、経験豊富なデータ、オペレーション、セキュリティチームが必要とするカスタマイズやコントロールを制限しません。

# Databricksは何に使うのか？

我々のお客様は、BIから機械学習に至るソリューションを用いて、自分のデータセットを処理、格納、クレンジング、共有、分析、モデリング、マネタイズするためにDatabricksを活用しています。様々なデータペルソナによる数多くのアプリケーションを構築するためにDatabricksプラットフォームを活用することができます。レイクハウスを完全に導入しているお客様は、企業におけるイノベーションと洞察を強化するデータエンジアリングのワークフロー、機械学習モデル、分析ダッシュボードの開発、デプロイに我々の統合プラットフォームを活用しています。

Databricksワークスペースは、以下の様なツールを含む、コアとなる多数のデータタスクのためのユーザーインタフェースを提供しています。

- インタラクティブなノートブック
- ワークフロースケジューラーとマネージャ
- SQLエディタとダッシュボード
- データ取り込みとガバナンス
- データ検索、注釈、探索
- 計算資源管理
- 機械学習(ML)エクスペリメントのトラッキング
- MLモデルのサービング
- 特徴量ストア
- Gitによるソースコントロール

ワークスペースのUIに加えて、以下のツールを用いることでプログラムからDatabricksとやり取りすることができます。

- REST API
- CLI
- Terraform

# Databricksの一般的なユースケースは何か？

Databricksにおけるユースケースは、プラットフォームで処理されるデータや、自分の業務のコアにおいてデータを操作する従業員の数多くのペルソナと同様に多岐にわたります。以下のユースケースでは、重要なビジネスファンクションと意思決定をドライブするデータの処理、蓄積、解析に重要なタスクを達成するために企業のユーザーがどのようにDatabricksを活用できるのかをハイライトします。

## エンタープライズデータレイクハウスの構築

データレイクハウスは、企業のデータソリューションを加速し、シンプルにし、統合するために、データウェアハウスとデータリエ区の強みを組み合わせたものです。データエンジニア、データサイエンティスト、アナリスト、そして、プロダクションシステムのすべては、データレイクハウスを信頼できる唯一の情報源としてデータレイクハウスを活用することができ、多数の分散したデータシステムの構築、維持、動機に関する複雑性を削減し、一貫性のあるデータにタイムリーにアクセスできる様になります。[Databricksレイクハウスとは何か？](https://qiita.com/taka_yayoi/items/883b29d4808874427464)をご覧ください。

## ETLとデータエンジニアリング

ダッシュボードを作成しようと、人工知能アプリケーションを強化しようと、データエンジニアリングは、データが利用でき、きれいな状態で、効率的に検索利用できる様なデータモデルであることを確実にすることで、データ中心企業のバックボーンとなります。Databricksは、比類なきETL(抽出、変換、ロード)体験を提供するために、Apache SparkとDelta Lakeとカスタムツールのパワーを組み合わせます。ETLロジックを組み立てるためにSQL、Python、Scalaを活用することができ、数クリックでスケジューリングされたジョブのデプロイメントをオーケストレーションすることができます。

[Delta Live Tables](https://docs.databricks.com/workflows/delta-live-tables/index.html)は、インテリジェントにデータセット間の依存関係を管理し、あなたの仕様に応じてデータをタイムリーかつ正確にデリバリーできる様に、プロダクションのインフラストラクチャをデプロイ、スケールさせることでさらにETLをシンプルなものにします。

Databricksでは、クラウドオブジェクトストレージやデータレイクからデータレイクハウスにインクリメンタルかつ冪等性をもってデータをロードするための効率的かつスケーラブルなツールである[オートローダー](https://qiita.com/taka_yayoi/items/df143647dcf5942b51c6)を含む数多くのカスタムツールとの[データ取り込み手段](https://docs.databricks.com/ingestion/index.html)を提供しています。

## 機械学習、AI、データサイエンス

Databricks Machine Learningは、データサイエンティストとMLエンジニアのニーズに仕立てたツールスイートを用いて、プラットフォームのコア機能を拡張します。これには、[MLflow](https://qiita.com/taka_yayoi/items/1a4e82f7e20c56ba4f72)や[Databricks機械学習ランタイム](https://qiita.com/taka_yayoi/items/824b507019d3ade7eedc)が含まれます。[Databricks機械学習ガイド](https://qiita.com/taka_yayoi/items/2d8ebdc9374696b24e0f)をご覧ください。

## データウェアハウス、アナリティクス、BI

Databricksは、分析クエリーを実行するためのパワフルなプラットフォームを提供するために、ユーザーフレンドリーなUIとコスト効率の高い計算資源、無限にスケールする安価なストレージを組み合わせます。管理者は、スケーラブルな計算クラスターを[SQLウェアハウス](https://qiita.com/taka_yayoi/items/23d7789198c2dcd66381)として設定することで、エンドユーザーはクラウドを操作する際の複雑性に心配することなしに、クエリーを実行できる様になります。SQLユーザーは、[SQLクエリーエディタ](https://docs.databricks.com/sql/user/queries/queries.html)やノートブックを用いて、レイクハウスのデータに対してクエリーを実行することができます。[ノートブック](https://qiita.com/taka_yayoi/items/24a897cf40bba6d9e305)は、SQLに加えてPython、R、Scalaをサポートしており、ユーザーはマークダウンで記述されたリンク、画像、コメントと共に[ダッシュボード](https://docs.databricks.com/sql/user/dashboards/index.html)で利用できるのと同じ[ビジュアライゼーション](https://qiita.com/taka_yayoi/items/b3f7bd30907967afee17)を埋め込むことができます。

## データガバナンスとセキュアなデータ共有

Unity Catalogはデータレイクハウスにおける統合データガバナンスモデルを提供します。クラウドの管理者は、Unity Catalogにおける大まかなアクセスコントロール権限を設定、インテグレーションし、Databricksの管理者はチームや個人向けのアクセス権を管理することができます。権限は、ユーザーフレンドリーなUIやSQL構文を通じてアクセスコントロールリスト(ACL)を用いて管理されるので、クラウドネイティブなアイデンティティアクセス管理(IAM)やネットワークに範囲を広げる必要なしに、データベース管理者はデータへのアクセスを簡単にセキュアにすることができます。

Unity Catalogを用いることで、クラウドにおける分析のセキュアな実行をシンプルにし、プラットフォームの管理者とエンドユーザーの両方に必要なリスキリング、アップスキリングの境界の役に立つ責任分担を実現します。[DatabricksのUnity Catalogとは？](https://qiita.com/taka_yayoi/items/15aede468bdca58ec6a3)をご覧ください。

レイクハウスは企業内のデータ共有を、テーブルやビューへのクエリーのアクセスを許可するのと同じくらいシンプルにします。お使いのセキュア環境外への共有においては、Unity Catalogではマネージドバージョンの[Delta Sharing](https://qiita.com/taka_yayoi/items/3a53516c4434c0ee76f0)を提供しています。

## DevOps、CI/CD、タスクオーケストレーション

ETLパイプライン、MLモデル、分析ダッシュボードそれぞれの開発ライフサイクルは、それぞれ固有の課題を表出させます。Databricksを用いることで皆様すべてのユーザーは、重複排除の工数や同期していないレポートを排除できる信頼できる唯一の情報源(single source of truth)を活用できる様になります。さらに、コードとプロダクションリソースのバージョン管理、自動化、スケジューリング、デプロイのための共通ツールスイートを提供することで、モニタリング、オーケストレーション、オペレーションのオーバーヘッドをシンプルにすることができます。[ワークフロー](https://qiita.com/taka_yayoi/items/f91b6ff0a2c7f892f401)は、Databricksノートブック、SQLクエリー、その他の任意のコードをスケジューリングすることができます。[Repos](https://qiita.com/taka_yayoi/items/b89f199ff0d3a4c16140)を用いることで、数多くの著名なgitプロバイダーとDatabricksプロジェクトを同期することができます。ツールの完全な概要については、[Developer tools and guidance](https://docs.databricks.com/dev-tools/index.html)をご覧ください。

## リアルタイム、ストリーミング分析

Databricksでは、ストリミーングデータとインクリメンタルなデータ変更を取り扱うために、Apache Sparkの構造化ストリーミングを活用しています。構造化ストリーミングは、Delta Lakeと密にインテグレーションされており、これらのテクノロジーはDelta Live TablesとAuto Loaderの両方の基盤を提供しています。[What is Apache Spark Structured Streaming?](https://docs.databricks.com/structured-streaming/index.html)をご覧ください。

### Databricks 無料トライアル

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