LoginSignup
2
1

More than 1 year has passed since last update.

Databricksクラスターポリシーの管理

Posted at

Manage cluster policies | Databricks on AWS [2022/3/2時点]の翻訳です。

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

プレビュー
本機能はパブリックプレビューです。

クラスターポリシーは、ルールセットに基づいてクラスターの設定を行う能力を制限します。ポリシールールはクラスター作成で利用できる属性や属性値を制限します。クラスターポリシーには利用を特定のユーザーやグループに制限するACLがあります。

クラスタポリシーを用いることで以下のことが可能となります。

  • ユーザーによるクラスターの作成を事前に定義された設定に限定する。
  • (いくつかの値を固定値にし非表示にすることで)ユーザーインタフェースをシンプルにし、より多くのユーザーが自身のクラスターを作成できるようにする。
  • (時間あたりの価格に影響する属性値に制限をかけることで)クラスターあたりの最大コストを制限することによるコストコントロール

クラスターポリシーの紹介と推奨設定に関しては、以下のDatabricksクラシターポリシーの動画をご覧ください。

クラスターポリシーのアクセス権によって、ユーザーがクラスターを作成する際のポリシードロップダウンで、どのポリシーを選択できるのかを制限することができます。

  • クラスターの作成権限を持つユーザーは、制限なしポリシーを選択でき、完全に設定可能なクラスターを作成することができます。
  • クラスター作成権限を持ちクラスターポリシーにアクセスできるユーザーは制限なしポリシーとアクセス権があるポリシーを選択することができます。
  • クラスターポリシーにのみアクセスできるユーザーは、アクセス権があるポリシーを選択することができます。

注意
ワークスペースでポリシーが作成されていない場合、ポリシーのドロップダウンは表示されません。

管理者ユーザーのみが、ポリシーを作成、編集、削除することができます。また、管理者ユーザーは全てのポリシーにアクセスできます。

本書では、UIによるポリシーの管理にフォーカスします。ポリシーを管理するためにCluster Policies API 2.0を活用することもできます。

要件

クラスターポリシーを使うには、プレミアムプラン以上が必要です。

強制ルール

ポリシールールでは以下のタイプの制約を表現することができます。

  • 無効化された制御要素に対する固定値
  • UIで非表示にされた制御要素に対する固定値(JSONビューでは値は見えます)
  • 値のセットに限定された属性値(許可リストあるいはブロックリスト)
  • 指定された正規表現に合致する属性値
  • 特定のレンジに限定された数値属性
  • 有効化された制御要素においてUIで使用されるデフォルト値

管理できるクラスター属性

クラスターポリシーはClusters API 2.0で制御される全てのクラスター属性をサポートしています。(タイプとクラスターのフォームのUI要素との関係に基づいて)サポートされる特定のタイプの制約は、フィールドごとに異なる場合があります。

さらに、クラスターポリシーでは以下の合成属性をサポートしています。

  • 時間単位でクラスターが使用できる最大DBUである"max DBU-hour"メトリック。このメトリックは個々のクラスターレベルでのコストを直接コントロールする方法となります。
  • クラスターを作成するソースの制限: ジョブサービス(jobクラスター)、クラスターUI、クラスターREST API(all-purposeクラスター)。

管理できないクラスター属性

以下のクラスター属性をクラスターポリシーで制限することはできません。

  • Libraries API 2.0で管理されるライブラリ。ワークアラウンドはカスタムコンテナinitスクリプトを使うというものです。
  • ユーザーあたり作成できるクラスターの数(合計も同時に存在する数も)。ポリシーのスコープは単一のクラスターであり、ユーザーによって作成されたクラスターを知ることができません。
  • 別のAPIで管理されるクラスターのアクセス権(ACL)

クラスターポリシーの定義

クラスターポリシーを作成する際に追加する、JSONのポリシー定義でクラスターポリシーを定義します。

クラスターポリシーの作成

クラスターポリシーのUIあるいはCluster Policies API 2.0を用いてクラスターポリシーを作成します。UIでクラスターポリシーを作成するには以下の手順を踏みます。

  1. サイドバーのクラスターをクリックします。
  2. クラスターポリシータブをクリックします。
  3. クラスターポリシーを作成ボタンをクリックします。
  4. ポリシーに名前をつけます。ポリシー名は大文字小文字を区別します。
  5. 定義タブにポリシー定義を貼り付けます。
  6. 作成をクリックします。

既存クラスターポリシーのクローン

既存のポリシーをクローンすることでクラスターポリシーを作成することができます。UIでクラスターポリシーをクローンするには以下のステップを踏みます。

  1. サイドバーのクラスターをクリックします。
  2. クラスターポリシータブをクリックします。
  3. クローンしたいポリシー名をクリックします。
  4. クローン作成をクリックします。
  5. 次のページでは、既存のポリシーの値を用いて全てのフィールドが埋められています。変更したい箇所の値を変更し、作成をクリックします。

クラスターポリシーのアクセス権の管理

定義上、管理者は全てのポリシーへのアクセス権を持っています。クラスターポリシーのUIあるいはCluster Policy Permissions APIを用いてクラスターポリシーのアクセス権を管理することができます。

クラスターポリシーのアクセス権の追加

UIを用いてクラスターポリシーのアクセス権を追加するには以下の手順を踏みます。

  1. サイドバーのクラスターをクリックします。
  2. クラスターポリシータブをクリックします。
  3. 権限タブをクリックします。
  4. Nameカラムでプリンシパルを選択します。
  5. Permissionカラムでアクセス権を選択します。
  6. 追加をクリックします。

クラスターポリシーのアクセス権の削除

UIを用いてクラスターポリシーのアクセス権を削除するには以下の手順を踏みます。

  1. サイドバーのクラスターをクリックします。
  2. クラスターポリシータブをクリックします。
  3. 権限タブをクリックします。
  4. アクセス権の行のアイコンをクリックします。

UIを用いたクラスターポリシーの編集

クラスターポリシーUIあるいはCluster Policies API 2.0を用いてクラスターポリシーを編集します。UIを用いてクラスターポリシーを編集するには以下の手順を踏みます。

  1. サイドバーのクラスターをクリックします。
  2. クラスターポリシータブをクリックします。
  3. ポリシー名をクリックします。
  4. 編集をクリックします。
  5. 定義タブでポリシー定義を編集します。
  6. 更新をクリックします。

UIを用いたクラスターポリシーの削除

クラスターポリシーUIあるいはCluster Policies API 2.0を用いてクラスターポリシーを削除します。UIを用いてクラスターポリシーを削除するには以下の手順を踏みます。

  1. サイドバーのクラスターをクリックします。
  2. クラスターポリシータブをクリックします。
  3. ポリシー名をクリックします。
  4. 削除をクリックします。
  5. 確認して削除をクリックします。

クラスターポリシーの定義

クラスターポリシー定義はJSONで表現される個々のポリシー定義のコレクションです。

ポリシー定義

ポリシー定義属性を定義するパス文字列制限タイプのマッピングです。属性ごとに一つの制限のみが存在し得ます。パスはリソースタイプ固有で、リソース作成APIの属性名を反映しています。リソース作成でネストされた属性を使用している場合、パスはドットを使ってネストされた属性を結合します。ポリシー定義で定義されていない属性は、ポリシーを用いてクラスターを作成す際に制限を受けません。

interface Policy {
  [path: string]: PolicyElement
}

ポリシー要素

ポリシー要素は指定された属性でサポートされている制限タイプの一つとオプションでデフォルト値を指定します。ポリシーの属性に制限を定義することなしに、デフォルト値を指定することができます。

type PolicyElement = FixedPolicy | ForbiddenPolicy | (LimitingPolicyBase & LimitingPolicy);
type LimitingPolicy = AllowlistPolicy | BlocklistPolicy | RegexPolicy | RangePolicy | UnlimitedPolicy;

このセクションではポリシーのタイプを説明します。

固定ポリシー

値と指定されたものに限定します。数値、ブール値以外の属性値においては、属性の値は文字列あるいは文字列に変換可能なものである必要があります。オプションでhiddenフラグをtrueに設定することで、属性をUI上で非表示にすることができます。固定ポリシーではデフォルト値を指定することはできません。

interface FixedPolicy {
    type: "fixed";
    value: string | number | boolean;
    hidden?: boolean;
}

サンプル

JSON
{
  "spark_version": { "type": "fixed", "value": "7.3.x-scala2.12", "hidden": true }
}

禁止ポリシー

選択可能な属性に対して、属性の使用を禁止します。

interface ForbiddenPolicy {
    type: "forbidden";
}

サンプル

このポリシーはクラスターのワーカーノード用のプールへのアタッチを禁止します。また、driver_instance_pool_idはポリシーを継承するので、ドライバーノードに対してもプールが禁止されます。

JSON
{
  "instance_pool_id": { "type": "forbidden" }
}

制限ポリシー:共通フィールド

制限ポリシーでは2つの追加フィールドを指定することができます。

  • defaultValue - UIでクラスター作成時のフォームを埋める値
  • isOptional - 属性を必須にする制限ポリシー。属性をオプションにするには、isOptionaltrueに設定します。
interface LimitedPolicyBase {
    defaultValue?: string | number | boolean;
    isOptional?: boolean;
}

サンプル

JSON
{
  "instance_pool_id": { "type": "unlimited", "isOptional": true, "defaultValue": "id1" }
}

このサンプルポリシーは、ワーカーノード用プールに対してデフォルト値id1を指定しますが、値はオプションとなります。クラスターを作成する際、違うプールを選択したり、プールを使用しないことも可能です。ポリシーでdriver_instance_pool_idが指定されていない場合、クラスターを作成する際にはワーカーノードとドライバーノードで同じプールが使用されます。

許可リストポリシー

許可される値のリストです。

interface AllowlistPolicy {
  type: "allowlist";
  values: (string | number | boolean)[];
}

サンプル

JSON
{
  "spark_version":  { "type": "allowlist", "values": [ "7.2.x-scala2.12", "7.3.x-scala2.12" ] }
}

ブロックリストポリシー

許可しない値のリストです。値は完全一致なので、値をどのように表現するのかに関して寛大な属性(例えば、先頭、末尾の空白を許可)においては、期待した通りにポリシーが動作しない場合があります。

interface BlocklistPolicy {
  type: "blocklist";
  values: (string | number | boolean)[];
}

サンプル

JSON
{
  "spark_version":  { "type": "blocklist", "values": [ "4.0.x-scala2.11" ] }
}

正規表現ポリシー

正規表現にマッチする値に限定します。念の為、正規表現でマッチングする際には、常に文字列の値の先頭と末尾に合致するようにしてください。

interface RegexPolicy {
  type: "regex";
  pattern: string;
}

サンプル

JSON
{
  "spark_version":  { "type": "regex", "value": "5\\.[3456].*" }
}

レンジポリシー

minValuemaxValue属性で指定されるレンジの値に限定します。値は整数値でなくてはなりません。数値の制限はdoubleの浮動小数点で表現可能なものではなくてはなりません。特定の制限がないことを示すために、minValuemaxValueを省略することができます。

interface RangePolicy {
  type: "range";
  minValue?: number;
  maxValue?: number;
}

サンプル

JSON
{
  "num_workers":  { "type": "range", "maxValue": 10 }
}

無制限ポリシー

値の制限を定義しません。UIで属性を必須にするかデフォルト値に設定するためにこのポリシータイプを使用できます。

interface UnlimitedPolicy {
  type: "unlimited";
}

COST_BUCKETタグの追加を要求するには以下のポリシーを用います。

サンプル

JSON
{
  "custom_tags.COST_BUCKET":  { "type": "unlimited" }
}

Spark設定の変数に対するデフォルト値を設定し、省略(削除)を許可するには以下のポリシーを用います。

JSON
{
  "spark_conf.spark.my.conf":  { "type": "unlimited", "isOptional": true, "defaultValue": "my_value" }
}

クラスターポリシー属性パス

以下のテーブルでは、サポートされているクラスターポリシー属性パスを一覧しています。

属性パス 説明
autoscale.max_workers 数値、オプション 非表示の場合、UIから最大ワーカー数のフィールドは削除されます。
autoscale.min_workers 数値、オプション 非表示の場合、UIから最小ワーカー数のフィールドは削除されます。
autotermination_minutes 数値 値0は自動停止しないことを意味します。非表示の場合、UIから自動停止のチェックボックスと入力フォームは削除されます。
aws_attributes.availability 文字列 AWSインスタンスの可用性(SPOT, ON_DEMAND, SPOT_WITH_FALLBACK)を指定します。
aws_attributes.ebs_volume_count 数値 AWS EBSボリュームの数
aws_attributes.ebs_volume_size 数値 AWS EBSボリュームのサイズ(GB)
aws_attributes.ebs_volume_type 文字列 AWS EBSボリュームのタイプ
aws_attributes.first_on_demand 数値 オンデマンドインスタンスにするノード数をコントロール
aws_attributes.instance_profile_arn 文字列 AWSインスタンスプロファイルをコントロール
aws_attributes.spot_bid_price_percent 数値 AWSスポットインスタンスに対する最大価格をコントロール
aws_attributes.zone_id 文字列 AWSゾーンIDをコントロール
cluster_log_conf.path 文字列 ログファイルの送信先URL
cluster_log_conf.region 文字列 S3ロケーションのリージョン
cluster_log_conf.type S3, DBFS, NONE ログ送信先のタイプ
cluster_name 文字列 クラスター名
custom_tags.* 文字列 例えば、custom_tags.<mytag>のように、タグ名を追加することで特定のタグの値をコントロール
docker_image.basic_auth.password 文字列 Databricks Container Servicesイメージのbasic認証のパスワード
docker_image.basic_auth.username 文字列 Databricks Container Servicesイメージのbasic認証のユーザー名
docker_image.url 文字列 Databricks Container ServicesイメージのURLをコントロール。非表示にした場合、UIからDatabricks Container Servicesのセクションは削除されます。
driver_node_type_id 文字列、オプション 非表示にした場合、UIからドライバーノードタイプのセクションは削除されます。
enable_elastic_disk ブール 非表示にした場合、UIからEnable autoscaling local storageのチェックボックスは削除されます。
enable_local_disk_encryption ブール クラスターローカルにアタッチされるディスクの暗号化を有効化するにはtrueを設定し、無効化するにはfalseを設定します(APIでの指定と同様です)。
init_scripts.*.s3.destination
init_scripts.*.dbfs.destination
init_scripts.*.file.destination
init_scripts.*.s3.region
文字列 *は属性配列におけるinitスクリプトのインデックスを参照します。配列属性を参照ください。
instance_pool_id 文字列 driver_instance_pool_idも定義されている場合はワーカーノードで使用されるプールをコントロールします。そうでない場合はすべてのクラスターノードのプールをコントロールします。ワーカーノードに対してプールを使用している場合、ドライバーノードに対してもプールを使用する必要があります。非表示の場合、UIからプールの選択機能が削除されます。
driver_instance_pool_id 文字列 指定されている場合、ドライバーノードではワーカーノードとは別のプールを使用します。指定されない場合、instance_pool_idを継承します。ワーカーノードに対してプールを使用している場合、ドライバーノードに対してもプールを使用する必要があります。非表示の場合、UIからドライバー向けプールの選択機能が削除されます。
node_type_id 文字列 非表示の場合、UIからノードタイプの選択機能が削除されます。
num_workers 数値、オプション 非表示の場合、UIでワーカー数の指定はできません。
single_user_name 文字列 シングルユーザーアクセスのクレディンシャルパススルーのユーザー名
spark_conf.* 文字列、オプション 設定キーの名前を追加することで特定の設定値コントロールします。例えばspark_conf.spark.executor.memory
spark_env_vars.* 文字列、オプション 環境変数を追加することで特定のSpark環境変数をコントロールします。例えばspark_env_vars.<environment variable name>
spark_version 文字列 Sparkのイメージバージョン名(APIでの指定と同じです)
ssh_public_keys.* 文字列 *は属性配列の公開キーのインデックスを参照します。配列属性を参照ください。

クラスターポリシー仮想属性パス

属性パス 説明
dbus_per_hour 数値 ドライバーノードを含むクラスターのDBUコスト(オートスケーリングクラスターの場合は最大値)を表現する計算される属性。レンジ制限で使用。
cluster_type 文字列 作成できるクラスターのタイプを表現。
  • all-purpose Databricks all-purposeクラスター
  • job ジョブスケジューラによって作成されるjobクラスター
  • dlt Delta Live Tablesパイプラインで作成されるクラスター
ポリシーから許可、ブロックするタイプのクラスターを指定します。all-purposeの値が許可されない場合、all-purposeクラスターの作成フォームにはこのポリシーは表示されません。jobの値が許可されない場合、新規ジョブクラスターフォームにはこのポリシーは表示されません。

配列属性

2つの方法で配列属性のポリシーを指定することができます。

  • 全ての配列要素に対して一般的な制限をかけます。これらの制限では、ポリシーパスに*ワイルドカード記号を使用します。
  • 特定のインデックスにある配列要素に対して固有の制限をかけます。これらの制限では、パスで番号を使用します。

例えば、配列属性ssh_public_keysに対しては、一般的なパスはssh_public_keys.*となり、特定のパスはssh_public_keys.<n>の形態をとり、<n>は配列の整数インデックス(0スタート)となります。一般的な制限と固有の制限を組み合わせることができ、この場合、固有の制限が適用されていない配列要素のそれぞれに一般的な制限が適用されます。それぞれのケースでは、1つのみポリシーが適用されます。

配列ポリシーの典型的なユースケースは以下のようなものとなります。

  • 以下のように包含されているもの固有のエントリー。

    JSON
    {
      "ssh_public_keys.0": {
        "type": "fixed",
        "value": "<required-key-1>"
      },
      "ssh_public_keys.1": {
        "type": "fixed",
        "value": "<required-key-2>"
      }
    }
    

    順序を指定することなしに固有のキーを要求することはできません。

    • 以下のようにリスト全体固有値を要求する。

      JSON
      {
        "ssh_public_keys.0": {
          "type": "fixed",
          "value": "<required-key-1>"
        },
        "ssh_public_keys.*": {
          "type": "forbidden"
        }
      }
      
    • 完全に利用を禁止する。

      JSON
      {
        "ssh_public_keys.*": {
          "type": "forbidden"
        }
      }
      
  • 任意のエントリーの数を許可するが、以下のように固有の制限意思違うことを強制する。

    JSON
    {
      "ssh_public_keys.*": {
        "type": "regex",
        "pattern": ".*<required-content>.*"
      }
    }
    

init_scriptsパスの場合、配列にはユースケースに応じて取り扱われる必要がある全ての要素に対する構造が含まれます。例えば、特定のinitスクリプトのセットを要求する場合、以下のパターンを使うことができます。

JSON
{
  "init_scripts.0.s3.destination": {
    "type": "fixed",
    "value": "s3://<s3-path>"
  },
  "init_scripts.0.s3.region": {
    "type": "fixed",
    "value": "<s3-region>"
  },
  "init_scripts.1.dbfs.destination": {
    "type": "fixed",
    "value": "dbfs://<dbfs-path>"
  },
  "init_scripts.*.s3.destination": {
    "type": "forbidden"
  },
  "init_scripts.*.dbfs.destination": {
    "type": "forbidden"
  },
  "init_scripts.*.file.destination": {
    "type": "forbidden"
  },
}

クラスターポリシーのサンプル

一般的なクラスターポリシー

タグを要求し、インスタンスの最大数を制限し、タイムアウトを強制することで、ユーザーをガイドし、いくつかの機能を制限することを意図した一般的な目的のクラスターポリシーです。

JSON
{
  "spark_conf.spark.databricks.cluster.profile": {
    "type": "fixed",
    "value": "serverless",
    "hidden": true
  },
  "instance_pool_id": {
    "type": "forbidden",
    "hidden": true
  },
  "spark_version": {
    "type": "regex",
    "pattern": "7\\.[0-9]+\\.x-scala.*"
  },
  "node_type_id": {
    "type": "allowlist",
    "values": [
      "i3.xlarge",
      "i3.2xlarge",
      "i3.4xlarge"
    ],
    "defaultValue": "i3.2xlarge"
  },
  "driver_node_type_id": {
    "type": "fixed",
    "value": "i3.2xlarge",
    "hidden": true
  },
  "autoscale.min_workers": {
    "type": "fixed",
    "value": 1,
    "hidden": true
  },
  "autoscale.max_workers": {
    "type": "range",
    "maxValue": 25,
    "defaultValue": 5
  },
  "enable_elastic_disk": {
    "type": "fixed",
    "value": true,
    "hidden": true
  },
  "autotermination_minutes": {
    "type": "fixed",
    "value": 30,
    "hidden": true
  },
  "custom_tags.team": {
    "type": "fixed",
    "value": "product"
  }
}

シンプルな中サイズのポリシー

最低限の設定で中サイズのクラスターを作成できるポリシーです。作成時に必要なフィールドはクラスター名のみです。他の設定は固定で非表示となります。

JSON
{
  "instance_pool_id": {
    "type": "forbidden",
    "hidden": true
  },
  "spark_conf.spark.databricks.cluster.profile": {
    "type": "forbidden",
    "hidden": true
  },
  "autoscale.min_workers": {
    "type": "fixed",
    "value": 1,
    "hidden": true
  },
  "autoscale.max_workers": {
    "type": "fixed",
    "value": 10,
    "hidden": true
  },
  "autotermination_minutes": {
    "type": "fixed",
    "value": 60,
    "hidden": true
  },
  "node_type_id": {
    "type": "fixed",
    "value": "i3.xlarge",
    "hidden": true
  },
  "driver_node_type_id": {
    "type": "fixed",
    "value": "i3.xlarge",
    "hidden": true
  },
  "spark_version": {
    "type": "fixed",
    "value": "7.3.x-scala2.12",
    "hidden": true
  },
  "enable_elastic_disk": {
    "type": "fixed",
    "value": false,
    "hidden": true
  },
  "custom_tags.team": {
    "type": "fixed",
    "value": "product"
  }
}

ジョブオンリーのポリシー

クラスターを用いてジョブクラスターを作成し、ジョブを実行することを許可します。このポリシーでは、ユーザーはall-purposeクラスターを作成することはできません。

JSON
{
  "cluster_type": {
    "type": "fixed",
    "value": "job"
  },
  "dbus_per_hour": {
    "type": "range",
    "maxValue": 100
  },
  "instance_pool_id": {
    "type": "forbidden",
    "hidden": true
  },
  "num_workers": {
    "type": "range",
    "minValue": 1
  },
  "node_type_id": {
    "type": "regex",
    "pattern": "[rmci][3-5][rnad]*.[0-8]{0,1}xlarge"
  },
  "driver_node_type_id": {
    "type": "regex",
    "pattern": "[rmci][3-5][rnad]*.[0-8]{0,1}xlarge"
  },
  "spark_version": {
    "type": "regex",
    "pattern": "7\\.[0-9]+\\.x-scala.*"
  },
  "custom_tags.team": {
    "type": "fixed",
    "value": "product"
  }
}

シングルノードのポリシー

ローカルモードで有効化されたSparkが動作する、ワーカーノードなしのシングルノードクラスターの作成を許可します。サンプルポリシーに関しては、シングルノードクラスターポリシーを参照ください。

ハイコンカレンシーパススルーのポリシー

デフォルトでパススルーが有効化されたハイコンカレンシークラスターの作成を許可します。このようにすることで、ユーザーは手動で適切なSparkパラメーターを設定する必要がなくなります。

JSON
{
  "spark_conf.spark.databricks.passthrough.enabled": {
    "type": "fixed",
    "value": "true"
  },
  "spark_conf.spark.databricks.repl.allowedLanguages": {
    "type": "fixed",
    "value": "python,sql"
  },
  "spark_conf.spark.databricks.cluster.profile": {
    "type": "fixed",
    "value": "serverless"
  },
  "spark_conf.spark.databricks.pyspark.enableProcessIsolation": {
    "type": "fixed",
    "value": "true"
  },
  "custom_tags.ResourceClass": {
    "type": "fixed",
    "value": "Serverless"
  }
}

外部メタストアのポリシー

管理者が定義済みのメタストアがすでにアタッチされた状態でクラスターの作成を許可します。これは、追加の設定なしにユーザーが自身でクラスターを作成できるので有用です。

JSON
{
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionURL": {
      "type": "fixed",
      "value": "jdbc:sqlserver://<jdbc-url>"
  },
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionDriverName": {
      "type": "fixed",
      "value": "com.microsoft.sqlserver.jdbc.SQLServerDriver"
  },
  "spark_conf.spark.databricks.delta.preview.enabled": {
      "type": "fixed",
      "value": "true"
  },
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionUserName": {
      "type": "fixed",
      "value": "<metastore-user>"
  },
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionPassword": {
      "type": "fixed",
      "value": "<metastore-password>"
  }
}

Databricks 無料トライアル

Databricks 無料トライアル

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1