Databricksチュートリアル

Databricksを使い始めた際に最初に体験すべき流れをステップバイステップで説明するシリーズです。「◯◯をしたい！」というケースもカバーしていきます。

こちらは、Databricksの環境構築が終わった後に体験いただく手順となります。環境構築の手順に関しては[こちら](https://qiita.com/taka_yayoi/items/c53beee557ae4a9643ac)を参照ください。

# Databricksの登場人物と主要機能を理解する

Databricksには大きく分けて管理者とユーザーが存在します。管理者が環境の設定を行い、ユーザーが環境を利用するという分担になります。

![](https://camo.qiitausercontent.com/60246512e661a0e951129ec8748e17c79482e94f/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f313136383838322f37363337376536662d356239622d666464612d333135372d3561303438653735323366302e706e67)

- **アカウントオーナー**(Account Owner): Databricksのアカウント全体を管理する最も強い権限を持つ管理者です。ワークスペースの作成、削除などを行うことができます。多くの場合、IT部門の管理責任者がアカウントオーナーになります。
    - **アカウント管理者**(Account Admin): アカウントオーナーから権限を移譲される管理者です。アカウントオーナーと同等の権限を持ちます。
- **ワークスペース管理者**(Workspace Admin): ワークスペースごとの管理者です。下のユーザーに管理権限を与えることでワークスペース管理者になります。ワークスペース上の資産に対する完全な権限を持ちます。多くの場合、IT部門のインフラエンジニア、あるいはデータ分析部門のインフラ管理担当者がワークスペース管理者になります。
- **ユーザー**(User): ワークスペースにアクセスしてDatabricksの機能を利用するユーザーです。機械学習モデルを構築するデータサイエンティスト、データパイプラインを構築するデータエンジニア、BIダッシュボードを作成するデータアナリストなどが該当します。

以降で説明する手順および機能と上記登場人物のとの関連付けを以下に示します。

| 手順 | 機能|アカウントオーナー | ワークスペース管理者 | ユーザー(データサイエンティスト) |ユーザー(データエンジニア) |ユーザー(データアナリスト) |
|:--|:--|:--|:--|:--|:--|:--|
|[Databricks環境を準備する](#databricks環境を準備する)   | <ul><li>ワークスペースの作成<li>クラスターの作成</ul>  | ○  | ○  |   |   ||
|[ユーザーを招待する](#ユーザーを招待する)   |  <ul><li>ユーザーの追加</ul> |   |  ○ |   |   ||
|[Databricksワークスペースにログインする](https://qiita.com/taka_yayoi/items/d8355c0c8363b3c6658a#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E4%BD%9C%E6%A5%AD)   | <ul><li>ワークスペースへのログイン</ul>  |   |   | ○  |  ○ |○|
|[グループを管理する](#グループを管理する)   | <ul><li>グループの作成</ul>  |   | ○  |   |   ||
|[ワークスペースの画面に慣れる](#ワークスペースの画面に慣れる)   |  <ul><li>サイドバー<li>ペルソナスイッチャー<li>ノートブックの作成<li>クラスターへのアタッチ</ul> | ○  | ○  | ○  | ○  |○|
|[ライブラリをインストールする](#ライブラリをインストールする)   |   |   |  ○ |   ○|  ○ ||
|[データにアクセスする](#データにアクセスする)   | <ul><li>Databricksファイルシステム<li>データのアップロード<li>データベース・テーブルの作成</ul>  |   |  ○ |   ○|  ○ |○|
|[PySparkの操作に慣れる](#pysparkの操作に慣れる)   |<ul><li>Spark</ul>   |   |   |  ○ |○   ||
|[機械学習モデルをトレーニングする](#機械学習モデルをトレーニングする)   |<ul><li>MLflow</ul>   |   |   |  ○ |   ||
|[ダッシュボードを作成する](#ダッシュボードを作成する)  | <ul><li>Databricks SQL</ul>  |   |   |   |   |○|
|[画像を取り扱う](#画像を取り扱う)   | <ul><li>画像データソース</ul>  |   |   | ○  |○   ||


# Databricks環境を準備する

Databricksの管理者が行う主な作業、その際に必要な機能を紹介します。

**対象者** アカウントオーナー、ワークスペース管理者

https://qiita.com/taka_yayoi/items/090879d59ae74ccaa12e

# ユーザーを招待する

Databricksをユーザーとして利用するには、管理者からワークスペースに招待してもらう必要があります。招待する手順、招待されたユーザーが利用を開始するまでの手順を紹介します。

**対象者** ワークスペース管理者、ユーザー

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

招待されたユーザーの方は以下の手順から実施してください。

https://qiita.com/taka_yayoi/items/d8355c0c8363b3c6658a#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E4%BD%9C%E6%A5%AD

# グループを管理する

部署、役割ごとにユーザーをまとめることができるグループに関して説明します。

**対象者** ワークスペース管理者

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

# ワークスペースの画面に慣れる

Databricksの用語、Databricksワークスペースの基本的な操作方法に慣れます。

**対象者** ユーザー

https://qiita.com/taka_yayoi/items/6fc2438df3df1a775d76

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

# ノートブックの操作に慣れる

Databricksノートブックの基本的な操作方法に慣れます。

**対象者** ユーザー

https://qiita.com/taka_yayoi/items/24a897cf40bba6d9e305

# ライブラリをインストールする

Databricksノートブックで使用するサードパーティのライブラリをインストールします。

**対象者** ユーザー

https://qiita.com/taka_yayoi/items/66cec8cf4c159666c4e0

# データにアクセスする

Databricksのデータベースの操作方法を体感します。

**対象者** ユーザー

**参考資料**
- [Databricksのデータベースを可能な限りわかりやすく解説](https://qiita.com/taka_yayoi/items/9d68dd5a3b070774d9a2)
- [Databricksにおけるデータベースおよびテーブル](https://qiita.com/taka_yayoi/items/e7f6982dfbee7fc84894)
- [データエンジニアとしてDatabricksを使い始める](https://qiita.com/taka_yayoi/items/a18adea4959b885783c6)
- [Databricksのサンプルデータ](https://qiita.com/taka_yayoi/items/dcf77d0b007fae774ce5)

## ローカルからアップロードしたデータにアクセスする

ローカルからファイルをアップロードしてDatabricks上からデータにアクセスする手順です。

https://qiita.com/taka_yayoi/items/9d98eee6e46a3469b638

## サンプルデータにアクセスする

Databricks環境に準備されている[サンプルデータ](https://qiita.com/taka_yayoi/items/3f8ccad13c6efd242be1)にアクセスします。

**対象者** ユーザー

https://qiita.com/taka_yayoi/items/52f38084a1d161d74732

# PySparkの操作に慣れる

SparkのPython APIであるPySparkの基本的な操作に慣れます。

**対象者** ユーザー

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

# 機械学習モデルをトレーニングする

scikit-learnを用いた機械学習モデルのトレーニングの手順を説明します。

**対象者** ユーザー

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

# ダッシュボードを作成する

Databricks SQLを活用してBIダッシュボードを作成する手順を説明します。

**対象者** ユーザー

https://qiita.com/taka_yayoi/items/143ee2b53c2a9696add7

# 画像を取り扱う

Databricksで画像ファイルを取り扱う手順を説明します。

**対象者** ユーザー

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

### Databricksクイックスタートガイド

[Databricksクイックスタートガイド](https://www.amazon.co.jp/dp/B09V1YXFVQ/)


### Databricks無料トライアル

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