1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Databricksにおける利用課金ログデータの分析

Last updated at Posted at 2022-10-03

Analyze billable usage log data | Databricks on AWS [2022/9/15時点]の翻訳です。

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

本書では、Databricksアカウントの利用データをどのように読み込み、分析するのかを説明します。

アカウントコンソールで利用課金データを直接参照することができます。

複数の方法で利用課金ログをダウンロードしたり、デリバリーをスケジュールすることができます。

いずれの場合においても、CSVファイルのスキーマは同じものとなります。

これらのログをパース、解析するためにDatabricksを使うことができます。

CSVファイルのスキーマ

カラム 説明 サンプル
workspaceId string ワークスペースID 1234567890123456
timestamp datetime 当該の利用における最終の時刻 2019-02-22T09:59:59Z
clusterId string クラスターID 0405-020048-brawl507
clusterName string ユーザーが指定したクラスター名 Shared Autoscaling
clusterNodeType string クラスターのインスタンスタイプ m4.16xlarge
clusterOwnerUserId string クラスター作成者のID 12345678901234
clusterCustomTags string("がエスケープされたjson) この時間でクラスターに関連づけられたカスタムタグ "{""dept"":""mktg"",""op_phase"":""dev""}"
sku string 課金のSKU。値の一覧については課金SKUテーブルをご覧ください。 STANDARD_ALL_PURPOSE_COMPUTE
dbus double この時間でユーザーによって使用されたDBUの数 1.2345
machineHours double このクラスターのすべてのコンテナで使用されたマシンアワーの総数 12.345
clusterOwnerUserName string クラスター作成者のユーザー名(メールアドレス) user@yourcompany.com
tags ("がエスケープされたjson) この時間でクラスターに関連づけられたデフォルト・カスタムクラスタータグ、デフォルト・カスタムインスタンスプールタグ。クラスタータグプールタグをご覧ください。これは、clusterCustomTagsのスーパーセットです。 "{""dept"":""mktg"",""op_phase"":""dev"", ""Vendor"":""Databricks"", ""ClusterId"":""0405-020048-brawl507"", ""Creator"":""user@yourcompany.com""}"

課金のSKU

  • AWS_ENHANCED_SECURITY_AND_COMPLIANCE
  • ENTERPRISE_ALL_PURPOSE_COMPUTE
  • ENTERPRISE_ALL_PURPOSE_COMPUTE_(DLT)
  • ENTERPRISE_ALL_PURPOSE_COMPUTE_(PHOTON)
  • ENTERPRISE_DLT_ADVANCED_COMPUTE
  • ENTERPRISE_DLT_ADVANCED_COMPUTE_(PHOTON)
  • ENTERPRISE_DLT_CORE_COMPUTE
  • ENTERPRISE_DLT_CORE_COMPUTE_(PHOTON)
  • ENTERPRISE_DLT_PRO_COMPUTE
  • ENTERPRISE_DLT_PRO_COMPUTE_(PHOTON)
  • ENTERPRISE_JOBS_COMPUTE
  • ENTERPRISE_JOBS_COMPUTE_(PHOTON)
  • ENTERPRISE_JOBS_LIGHT_COMPUTE
  • ENTERPRISE_SERVERLESS_SQL_COMPUTE
  • ENTERPRISE_SERVERLESS_SQL_COMPUTE_AP_SYDNEY
  • ENTERPRISE_SERVERLESS_SQL_COMPUTE_EUROPE_FRANKFURT
  • ENTERPRISE_SERVERLESS_SQL_COMPUTE_EUROPE_IRELAND
  • ENTERPRISE_SERVERLESS_SQL_COMPUTE_US_EAST_N_VIRGINIA
  • ENTERPRISE_SERVERLESS_SQL_COMPUTE_US_EAST_OHIO
  • ENTERPRISE_SERVERLESS_SQL_COMPUTE_US_WEST_OREGON
  • ENTERPRISE_SQL_COMPUTE
  • PREMIUM_ALL_PURPOSE_COMPUTE
  • PREMIUM_ALL_PURPOSE_COMPUTE_(DLT)
  • PREMIUM_ALL_PURPOSE_COMPUTE_(PHOTON)
  • PREMIUM_DLT_ADVANCED_COMPUTE
  • PREMIUM_DLT_ADVANCED_COMPUTE_(PHOTON)
  • PREMIUM_DLT_CORE_COMPUTE
  • PREMIUM_DLT_CORE_COMPUTE_(PHOTON)
  • PREMIUM_DLT_PRO_COMPUTE
  • PREMIUM_DLT_PRO_COMPUTE_(PHOTON)
  • PREMIUM_JOBS_COMPUTE
  • PREMIUM_JOBS_COMPUTE_(PHOTON)
  • PREMIUM_JOBS_LIGHT_COMPUTE
  • PREMIUM_SERVERLESS_SQL_COMPUTE
  • PREMIUM_SERVERLESS_SQL_COMPUTE_AP_SYDNEY
  • PREMIUM_SERVERLESS_SQL_COMPUTE_EUROPE_FRANKFURT
  • PREMIUM_SERVERLESS_SQL_COMPUTE_EUROPE_IRELAND
  • PREMIUM_SERVERLESS_SQL_COMPUTE_US_EAST_OHIO
  • PREMIUM_SERVERLESS_SQL_COMPUTE_US_EAST_N_VIRGINIA
  • PREMIUM_SERVERLESS_SQL_COMPUTE_US_WEST_OREGON
  • PREMIUM_SQL_COMPUTE
  • STANDARD_ALL_PURPOSE_COMPUTE
  • STANDARD_ALL_PURPOSE_COMPUTE_(DLT)
  • STANDARD_ALL_PURPOSE_COMPUTE_(PHOTON)
  • STANDARD_DLT_ADVANCED_COMPUTE
  • STANDARD_DLT_ADVANCED_COMPUTE_(PHOTON)
  • STANDARD_DLT_CORE_COMPUTE
  • STANDARD_DLT_CORE_COMPUTE_(PHOTON)
  • STANDARD_DLT_PRO_COMPUTE
  • STANDARD_DLT_PRO_COMPUTE_(PHOTON)
  • STANDARD_JOBS_COMPUTE
  • STANDARD_JOBS_COMPUTE_(PHOTON)
  • STANDARD_JOBS_LIGHT_COMPUTE

2020/3以前の利用課金ログでは、以下のSKUを使用しています。

  • LIGHT_AUTOMATED_NON_OPSEC
  • LIGHT_AUTOMATED_OPSEC
  • STANDARD_AUTOMATED_NON_OPSEC
  • STANDARD_AUTOMATED_OPSEC
  • STANDARD_INTERACTIVE_NON_OPSEC
  • STANDARD_INTERACTIVE_OPSEC

Databricksで利用ログを分析する

このセクションでは、分析のためにどのように利用課金CSVファイルのデータをDatabricksで利用できる様にするのかを説明します。利用量テーブルの作成の選択肢を説明し、利用分析ダッシュボードの実行に使用できるサンプルノートブックを提供しています。

CSVファイルは商用のスプレッドシートアプリケーションの標準ではありますが、Apache Sparkで読み込むためには修正が必要となります。Databricksで利用量テーブルを作成する際には、option("escape", "\"")を使用する必要があります。

合計DBUはdbusカラムの合計となります。

テーブル作成UIを用いてログをインポートする

分析するためにCSVファイルをDatabricksにインポートするには、Databricks SQLのデータアップロード、テーブル作成を使用することができます。

Sparkデータフレームの作成

また、CSVファイルへのパスから利用量テーブルを作成するために以下のコードを使用することができます。

Python
df = (spark.
      read.
      option("header", "true").
      option("inferSchema", "true").
      option("escape", "\"").
      csv("/FileStore/tables/usage_data.csv"))

df.createOrReplaceTempView("usage")

例えば、ログデリバリーを使用している際など、ファイルがS3バケットに格納されている場合には、コードは以下の様になります。ファイルパスやディレクトリを指定することができます。ディレクトリを指定すると、すべてのファイルがインポートされます。以下の例ではファイルを指定しています。

Python
df = (spark.
      read.
      option("header", "true").
      option("inferSchema", "true").
      option("escape", "\"").
      load("s3://<bucketname>/<pathprefix>/billable-usage/csv/workspaceId=<workspace-id>-usageMonth=<month>.csv"))

df.createOrReplaceTempView("usage")

以下の例では、利用課金ファイルを格納するディレクトリをインポートしています。

Python
df = (spark.
      read.
      option("header", "true").
      option("inferSchema", "true").
      option("escape", "\"").
      load("s3://<bucketname>/<pathprefix>/billable-usage/csv/"))

df.createOrReplaceTempView("usage")

Deltaテーブルの作成

上の例のデータフレーム(df)からDeltaテーブルを作成するには以下のコードを使用します。

Python
(df.write
    .format("delta")
    .mode("overwrite")
    .saveAsTable("database_name.table_name")
)

警告!
新規CSVを追加、置換した際には、保存したDeltaテーブルは自動で更新されません。最新のデータが必要であれば、Deltaテーブルを使用する前にこれらのコマンドを再実行してください。

使用量分析ダッシュボードのノートブック

利用課金データのデリバリーを使用している場合、CSVファイルが格納されるS3バケットのへのパスを指定し、ウィジェットにレポートのパラメーターを入力することで、利用量分析ダッシュボードを実行することができます。

ノートブックをDatabricksワークスペースにインポートした際、最初のノートブックセルの上部にレポートパラメーターを入力するウィジェットが表示されます。ウィジェットはノートブックのブラウザオンリーのビューでは表示されません。以下のウィジェットのイメージを示します。

使用量分析ダッシュボードノートブック

Databricks 無料トライアル

Databricks 無料トライアル

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?