Databricks SQL管理者クイックスタート：Databricks SQLのオンボーディングタスク

[Admin quickstart: Onboarding tasks for Databricks SQL \| Databricks on AWS](https://docs.databricks.com/sql/get-started/admin-onboarding.html) [2022/8/17時点]の翻訳です。

> [Databricksクイックスタートガイド](https://qiita.com/taka_yayoi/items/125231c126a602693610)のコンテンツです。

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

設定不要のDatabricks SQLの機能の概要に関しては、[Databricks SQLクイックスタート：サンプルダッシュボードギャラリーからダッシュボードをインポートしてDatabricks SQLを学ぶ](https://qiita.com/taka_yayoi/items/0e3e0730b71de28e4c08)を参照ください。企業のデータを用いてDatabricks SQLを使い始める前に、管理者はオンボーディングのタスクを完了する必要があります。本書ではこれらのタスクをガイドします。

# 要件

- お使いのDatabricksアカウントは[プレミアムプラン以上](https://databricks.com/jp/product/aws-pricing)である必要があります。
- お使いのDatabricksワークスペースは[E2バージョン](https://qiita.com/taka_yayoi/items/7d209bc8d32bc5f2dba4#e2%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3)である必要があります。
- E2ワークスペースの作成方法に関しては、[Create and manage workspaces using the account console](https://docs.databricks.com/administration-guide/account-settings-e2/workspaces.html)を参照ください。すべての新規Databricksアカウントおよび、ほとんどの既存アカウントは今ではE2となっています。アカウントタイプが不明の場合には、Databricks担当者にお問い合わせください。
- Databricksの[管理者](https://qiita.com/taka_yayoi/items/3262ea8529ad96b920ce)である必要があります。

# サイドバーを使用

サイドバーからすべてのDatabricksアセットにアクセスすることができます。サイドバーの中身は選択されたペルソナ:**Data Science & Engineering**、**Machine Learning**、**SQL**に依存します。

- デフォルトではサイドバーは畳まれた状態であり、アイコンのみが表示されています。再度バーにカーソルを移動すると展開することができます。
- ペルソナを変更するには、Databricksロゴ![](https://docs.databricks.com/_images/databricks-logo.png)の下のアイコンをクリックし、ペルソナを選択します。
![](https://docs.databricks.com/_images/change-persona.gif)

- 次回ログイン時に表示されるペルソナを固定するには、ペルソナの隣の![](https://docs.databricks.com/_images/persona-pin.png)をクリックします。ピンを外すにはもう一度ピンをクリックします。
- サイドバーのモードを**Auto**(デフォルト)、**Expand**、**Collapse**に設定するには、サイドバーの下部にある**Menu options**を使用します。

# ステップ1: データアクセスの設定

クラウドストレージにテーブルを格納する場合、データへのアクセスを許可するためのインスタンスプロファイルをDatabricks SQLに設定する必要があります。それぞれのデータベース、テーブル、ビューに対してきめ細かいアクセス権を設定するために、[次のステップ](#ステップ2-アクセス権の設定)で標準的なSQL文を使用することができます。

[データアクセスの設定](https://docs.databricks.com/sql/user/security/cloud-storage-access.html)手順を完了し、[ステップ2: アクセス権の設定](#ステップ2-アクセス権の設定)に進んでください。

:::note
**注意**
Databricks[管理のテーブル](https://qiita.com/taka_yayoi/items/e7f6982dfbee7fc84894#%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%89%E3%82%A2%E3%83%B3%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%89%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB)を使用している場合は、クラウドストレージへのアクセスを設定する必要はありません。
:::

適切にデータアクセスが設定されると、管理者はデータエクスプローラー(サイドバーの**Data**)を用いて外部テーブルをブラウズすることができます。

# ステップ2: アクセス権の設定

Databricks SQLのセキュリティモデルは、GRANT、REVOKEのような標準的なSQL文を用いたきめ細かいアクセス権を設定できるようにSQLデータベースにおいて確立されているセキュリティモデルをベースとしています。

Databricks SQLでは、SQL標準をベースとしたきめ細かいアクセス権を設定するために、テーブルアクセスコントロールを使用します。テーブルアクセスコントロールを用いることで、管理者とオブジェクトの所有者はお使いのデータレイクにおけるエンドツーエンドのセキュリティ、監査可能性を提供する表現豊かな、クラウド非依存、きめ細かいセキュリティモデルを定義することができます。

このステップでは、[お使いのアイデンティティプロバイダーと同期されたグループ](https://docs.databricks.com/sql/user/security/data-access-overview.html#users-and-groups-overview)を用いてアクセス権を設定することを強くお勧めします。デフォルトでは、([ステップ1: データアクセスの設定](#ステップ1-データアクセスの設定)に基づいて)管理者のみが全てのデータを参照できます。データエクスプローラー(サイドバーの**Data**)、あるいはSQLエディタでSQLコマンドを用いることで、アクセスを許可することができます。以下の手順ではデータエクスプローラーを使用します。

1. サイドバーで**Data**をクリックします
1. データエクスプローラーが表示され、デフォルトカタログ(`hive_metastore`)のデフォルトデータベース(`default`)のテーブルが表示されます。

    別のデータベースを選択するには、**default**をクリックしデータベースを選択します。

    別のカタログのデータベースを選択するには、**hive_metastore**をクリックして別のカタログを選択し、データベースを選択するために**select database**をクリックします。

1. データベース全体のアクセス権を管理するには、**Permissions**をクリックします。テーブル、ビューのアクセス権を管理するには、テーブル、ビュー名をクリックし**Permissions**をクリックします。
1. アクセスを許可するには**Grant**をクリックします。
    1. ユーザー、グループを入力します。
    1. 許可する一つ以上のアクセス権を選択するか、全てのアクセス権を許可する際には**All**を選択します。
    1. **OK**をクリックします。
1. アクセス権を剥奪するには、リストから選択して**Revoke**をクリックします。

これで、ユーザーやグループがデータを参照、操作するために必要なアクセス権を許可しましたので、[ステップ3: SQLウェアハウス](#ステップ3-sqlウェアハウスの設定)の設定に進みます。

# ステップ3: SQLウェアハウスの設定

SQLウェアハウス(以前のSQLエンドポイント)は、Databricks環境のデータオブジェクトに対してSQLコマンドを実行する際に用いる計算リソースです。**Starter Warehouse**と呼ばれる小規模なSQLエンドポイントが作成済みですぐに利用することができます。より複雑なワークロードを取り扱うために、(レーテンシーを削減するために)容易にサイズを増やしたり、(多くの同時アクセスユーザーに対応するために)内部のクラスターの数を増やすことができます。コストを削減するために、スターターウェアハウスは120分のアイドル状態の後に停止するように設定されています。

ワークスペースで[サーバーレスコンピュート](https://qiita.com/taka_yayoi/items/685a11ea726b2b34a174)(ゲーテッドプライベートプレビュー)が有効化されており、[サーバーレスSQLエンドポイント](https://qiita.com/taka_yayoi/items/23d7789198c2dcd66381#%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AC%E3%82%B9sql%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%AE%E6%9C%89%E5%8A%B9%E5%8C%96)を有効化している場合、**Serverless Starter Warehouse**と呼ばれるサーバーレスSQLウェハウスも自動で作成され、ダッシュボード、ビジュアライゼーション、クエリーに使用することができます。サーバーレスSQLウェアハウスはクラシックなSQLエンドポイントよりも高速に起動し、10分アイドル状態が続くと自動で停止します。

スターターウェアハウスを設定したり、追加のSQLウェアハウスを作成するには、サイドバーの**SQL Warehouses**をクリックします。詳細は[Databricks SQLウェアハウスとはなんですか？](https://docs.databricks.com/sql/admin/sql-endpoints.html)を参照ください。

# 次のステップ

- [Databricks SQLクイックスタート：サンプルダッシュボードギャラリーからダッシュボードをインポートしてDatabricks SQLを学ぶ](https://qiita.com/taka_yayoi/items/0e3e0730b71de28e4c08)
- [Databricks SQL : 管理者向けクイックスタート](https://qiita.com/taka_yayoi/items/8b6154eb8bfe202951c6)の次ステップとなる[Databricks SQL : ユーザー向けクイックスタート](https://qiita.com/taka_yayoi/items/fd0d5e4de3c7f50de617)をトライしてみてください。
- [Databricks SQLのセキュリティモデルとデータアクセスの概要](https://qiita.com/taka_yayoi/items/90a464bcbebf9cf1eb6f)の詳細をご覧ください。

### Databricks 無料トライアル

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