すべてのプロダクト
Search
ドキュメントセンター

Dataphin:Python コンピューティングノードの作成

最終更新日:Mar 06, 2026

Dataphin では、ネイティブの Python 構文を用いた Python コンピュートノードを作成することで、幅広い Python ベースのデータ処理シナリオをサポートします。本トピックでは、Dataphin における Python コンピュートノードの作成手順について説明します。

背景情報

Python 3.7 は、多様なビッグデータ処理要件をよりよくサポートします。たとえば、Python 3.7 では Python 2.7 にはない list.clear() メソッドが導入されています。詳細については、「Python」をご参照ください。

プロジェクトのコンピューティングソースで Databricks エンジンが使用されており、Python バージョンが 3.11 の場合、Databricks Connect を有効化できます。詳細については、「Databricks Connect とは」をご参照ください。Dataphin 外で Databricks Python Connect を使用する場合は、以下のコードを参照してください。

from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
from databricks.sdk import WorkspaceClient

# $HOME ディレクトリの .databrickscfg ファイルに以下を追加します
# [<profile-name>]
# host = <host-name>
# client_id = <client_id>
# client_secret = <client_secret>
# cluster_id = <cluster_id>

# 方法 1
config = Config(
profile    = "<profile-name>"
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
w = WorkspaceClient(profile = "DEFAULT")

# 方法 2
# spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()

# 方法 3
# 環境変数を作成します
# DATABRICKS_HOST = 
# DATABRICKS_CLIENT_ID = 
# DATABRICKS_CLIENT_SECRET = 
# DATABRICKS_CLUSTER_ID = 
# spark = DatabricksSession.builder.getOrCreate()

employees = [{"name": "John D.", "age": 30},
  {"name": "Alice G.", "age": 25},
  {"name": "Bob T.", "age": 35},
  {"name": "Eve A.", "age": 28}]

df = spark.createDataFrame(employees)
df.write.saveAsTable("bdec.dataphin_test.demo_connect")

df_demo = spark.read.table("bdec.dataphin_test.demo_connect")
df_demo.show()

spark.sql("select * from bdec.dataphin_test.demo_connect").show()
  
fs = w.dbutils.fs
fs.put(file = "/demo/first_file.txt", contents = "hello world")
fs.head("/demo/first_file.txt")

制限事項

  • Python 3.7 は Python 2.7 と下位互換性がありません。既存の Python 2.7 ノードを直接アップグレードすることはできません。

  • Dataphin バージョン 2.9.3 以降では、Python 3.7 コンピュートノードがデフォルトでサポートされます。Python バージョンの変更は、ドラフト状態のノードに対してのみ可能です。サポートされるバージョンは、Python 2.7、Python 3.7、および Python 3.11 です。

  • Databricks Connect を有効化できるのは、プロジェクトのコンピュートソースに Databricks エンジンが使用されており、かつ Python バージョンが 3.11 の場合のみです。

タスク実行

  • Dataphin で Python ノードを編集すると、Dataphin のスケジューリングクラスターがその実行を担当します。実行時、クラスターは共通の Python リソースパッケージをプリインストール済みの組み込みテンプレートイメージをクローンします。これらの事前にインストールされたパッケージを活用して、Python ノードの開発を行えます。詳細については、「付録:プリインストール済みの Python リソースパッケージ」をご参照ください。

    image

  • 組み込みリソースパッケージが要件を満たさない場合は、必要なリソースパッケージを管理センターでサードパーティのPythonパッケージとしてインストールできます。その後、インストールしたパッケージを参照できます。実行時に、システムは参照されたパッケージを自動的にノード実行用の実行時環境に配置します。Dataphin は各実行時に組み込みテンプレートイメージをクローンするため、リソースパッケージを使用するために pip install コマンドを使用すると、ノードが実行されるたびに pip install コマンドが実行されます。サードパーティのPythonパッケージを使用してください。

操作手順

  1. Dataphin のホームページ上部のメニューバーから、開発データ開発 を選択します。

  2. 開発 ページの上部メニューバーからプロジェクトを選択します。Dev-Prod モードを使用している場合は、環境も併せて選択します。

  3. 左側のナビゲーションウィンドウで、データ処理ジョブ を選択します。ジョブ リストで image アイコンをクリックし、Python を選択します。

  4. Python ノードの作成 ダイアログボックスで、以下のパラメーターを設定します。

    パラメーター

    説明

    タスク名

    コードノードの名前を入力します。

    名前の長さは最大 256 文字までで、縦棒 (|)、スラッシュ (/)、バックスラッシュ (\)、コロン (:)、疑問符 (?)、山括弧 (<>)、アスタリスク (*)、および二重引用符 (") を含めることはできません。

    スケジュールタイプ

    ノードのスケジュールタイプを選択します。スケジュールタイプ には以下の種類があります。

    • 定期タスク:システムによりノードが定期的にスケジュールされます。

    • ワンタイムタスク:ノードの実行を手動でトリガーする必要があります。

    ディレクトリの選択

    タスクを格納するフォルダを選択します。

    フォルダが作成されていない場合は、以下の手順で**新しいフォルダを作成**できます。

    1. コンピュートノードリストの上部にある image アイコンをクリックし、フォルダの作成 ダイアログボックスを開きます。

    2. フォルダの作成 ダイアログボックスで、名前 を入力し、必要に応じて ディレクトリの選択 を行います。

    3. OK をクリックします。

    テンプレートの使用

    効率的な開発のためにコードテンプレートを参照します。テンプレートノード内のコードは読み取り専用であり、編集できません。テンプレートパラメーターを設定するだけで、コード開発を完了できます。

    Python バージョン

    Python 2.7Python 3.7、または Python 3.11 を選択できます。

    サードパーティ製 Python パッケージ

    サードパーティ製 Python パッケージを使用するには、まず Python バージョンを選択し、次にインポートする Python サードパーティパッケージ を選択します。Python バージョンは、プラットフォーム設定開発 で設定した Python デフォルトバージョン がデフォルトとなります。Python 2.7、Python 3.7、または Python 3.11 を選択できます。複数のサードパーティ製 Python パッケージを選択した場合、下記のリストでアップロード順序を調整できます。

    サードパーティ製 Python パッケージの詳細については、「サードパーティ製 Python パッケージのインストールと管理」をご参照ください。

    説明

    サードパーティ製モジュールを Python サードパーティパッケージに追加した後は、タスク内で参照宣言を行う必要があります。これにより、コード内でモジュールをインポートできます。参照モジュールの設定は、「コンピュートタスクのプロパティ」>「Python サードパーティパッケージ構成項目」で行います。

    Databricks Connect

    このオプションを有効化した後は、開発 httpPath (クラスター) および 本番 httpPath (クラスター) も併せて選択する必要があります。Basic プロジェクトの場合は、本番 httpPath (クラスター) のみを設定すれば十分です。

    現在の開発または本番プロジェクトのコンピュートソースが所属する Databricks クラスターに設定されている任意の汎用コンピュートを選択できます。これらは、sql/protocolv1/o で始まる HTTP パスです。

    説明

    タスクの簡単な説明(最大 1000 文字)を入力します。

  5. OK をクリックします。

  6. 現在の Python ノードタブのコードエディタで、Python コンピュートノードのコードを記述します。コード編集が完了したら、コードエディタ上部の 実行 をクリックします。

    説明
    • Python コンピュートノードを開発する際には、通常、ビジネスシナリオに基づいてリソースパッケージをインストールする必要があります。Dataphin では、一般的なリソースパッケージがシステムに事前にインストールされています。開発中に、コードの先頭に import {package_name} 文を追加します(例: import configparser)。詳細については、「付録: 事前にインストール済みの Python リソースパッケージ」および「」をご参照ください。

    • Python コンピュートノードを開発する際は、ファイルの最初の 2 行にエンコーディングを指定するコメントを追加することを推奨します。これにより、システムがデフォルトのシステムエンコーディングを使用してしまうことを防ぎ、実行時のエラーを回避できます。

    • アップロード済みのリソースファイルを Python にインポートする方法については、「リソースのアップロードと参照」をご参照ください。

  7. 右側のサイドバーで プロパティ をクリックします。プロパティ パネルで、ノードの 基本情報実行時リソースPython サードパーティパッケージ実行時パラメータースケジュールプロパティ(定期タスクの場合)、スケジュール依存関係(定期タスクの場合)、実行時構成、および リソース構成 を設定します。

    • 基本情報

      ノード名、オーナー、説明などの基本情報を指定します。設定手順については、「ノードの基本情報を設定する」をご参照ください。

    • 実行時リソース

      ノード実行に割り当てる CPU およびメモリリソースを指定します。デフォルト値は 0.1 コアおよび 256 MB です。設定手順については、「オフラインノードの実行時リソースを設定する」をご参照ください。

    • Python サードパーティパッケージ

      インポートするサードパーティ製 Python パッケージを選択します。詳細については、「Python モジュールのインストール」をご参照ください。

    • 実行時パラメーター

      ノードがパラメータ変数を参照している場合、このセクションでそれらのパラメーターに値を割り当てます。スケジューリング時に、システムは変数を対応する値に置き換えます。設定手順については、「ノードパラメーターの設定と使用」をご参照ください。

    • スケジュールプロパティ(定期タスクの場合)

      オフラインコンピュートノードのスケジュールタイプが 定期タスク の場合、基本情報 に加えて、スケジュールプロパティを設定する必要があります。設定手順については、「スケジュールプロパティを設定する」をご参照ください。

    • スケジュール依存関係(定期タスクの場合)

      オフラインコンピュートノードのスケジュールタイプが 定期タスク の場合、基本情報 に加えて、スケジュール依存関係を設定する必要があります。設定手順については、「スケジュール依存関係を設定する」をご参照ください。

    • 実行時構成

      ビジネスシナリオに応じて、ノードレベルの実行時タイムアウトおよび失敗時のリトライポリシーを設定できます。設定しない場合、ノードはテナントレベルのデフォルト設定を継承します。設定手順については、「コンピュートノードの実行時設定を設定する」をご参照ください。

    • リソース構成

      現在のコンピュートノードにリソースグループを割り当てることができます。ノードは、このグループのリソースを使用してスケジューリングされます。設定手順については、「コンピュートノードのリソースを設定する」をご参照ください。

  8. 現在の Python ノードタブで、ノードを保存して提出します。

    1. コードエディタ上部の image アイコンをクリックしてコードを保存します。

    2. コードエディタ上部の image アイコンをクリックしてコードを提出します。

  9. 提出ログ ページで、提出内容 および 事前チェック の結果を確認し、必要に応じて備考を入力します。詳細については、「オフラインコンピュートノードを提出する」をご参照ください。

    説明

    Dataphin で Databricks Connect を使用する場合、システムはコード内で参照されるオブジェクトに対して、現在のユーザーが適切な権限を持っているかをチェックします。

    • `spark.sql()`

      • テーブルクエリの場合、システムは現在のユーザーがクエリ対象テーブルのフィールドに対する権限を持っているかをチェックします。

      • DML ステートメントの場合、システムは現在のユーザーがテーブルデータを変更する権限を持っているかをチェックします。

      • グローバル変数の場合、システムは変数に対してアクセスの制御が有効化されているか、および現在のユーザーがその変数を使用する権限を持っているかをチェックします。

    • spark.read.table("<table_name>") および spark.table("<table_name>"): システムは <table_name> 全体に対する読み取り権限を確認します。

    • df.write.saveAsTable("<table_name>"): システムは、<table_name> に対する書き込み権限を確認します。`df` は DataFrame オブジェクトです。

  10. 確認後、OK および提出 をクリックします。

    説明
    • データセキュリティを確保するため、Python ノードのコードに from dataphin import hivec または import dataphin が含まれている場合、提出時にコードレビューが自動的にトリガーされます。コードレビューのチケットが自動生成され、レビューが承認されるまではノードの提出は完了しません。

    • コードレビュー担当者は、現在のプロジェクトのプロジェクト管理者です。複数のプロジェクト管理者が存在する場合、いずれか 1 名の承認で十分です。

次のステップ

  • 開発モードが Dev-Prod モード の場合、ノードを提出した後、公開リストに移動して、ノードを本番環境に公開 します。詳細については、「公開済みノードの管理」をご参照ください。

  • 開発モードが Basic モード の場合、提出された Python ノードは本番環境で実行されます。公開済みノードはオペレーションセンターで確認できます。詳細については、「スクリプトノードの表示と管理」および「ワンタイムノードの表示と管理」をご参照ください。