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

Dataphin:コードエディター入力ウィジェットの設定

最終更新日:Nov 19, 2025

コードエディタウィジェットを使用すると、システムコンポーネントではサポートされていない項目を構成し、特定のビジネスニーズに対応できます。

手順

  1. Dataphin ホームページで、トップメニューバーから [開発] > [Data Integration] を選択します。

  2. 統合ページで、トップメニューバーから [プロジェクト] を選択します(開発-本番モードでは環境の選択が必要です)。

  3. 左側のナビゲーションウィンドウで、[バッチパイプライン] をクリックします。次に、[バッチパイプライン] リストで、開発したい [オフラインパイプライン] をクリックして設定ページを開きます。

  4. ページの右上隅にある [コンポーネントライブラリ] アイコンをクリックして、[コンポーネントライブラリ] パネルを開きます。

  5. [コンポーネントライブラリ] パネルの左側のナビゲーションウィンドウで、[入力] を選択します。右側のリストで [コードエディタ入力] ウィジェットを見つけて、キャンバスにドラッグします。

  6. コードエディタ入力ウィジェットカードの image アイコンをクリックして、[スクリプトモード] [入力設定] ダイアログボックスを開きます。

  7. [スクリプトモード入力構成] ダイアログボックスで、パラメーターを構成します。

    パラメーター

    説明

    [ステップ名]

    これは、コードエディタ入力ウィジェットの名前です。Dataphin はステップ名を自動的に生成しますが、ビジネスシナリオに応じて変更することもできます。命名規則は次のとおりです。

    • 中国語の文字、英字、アンダースコア(_)、および数字のみを含めることができます。

    • 64 文字を超えることはできません。

    データソースタイプ

    データソースの種類を選択します。

    データソース

    対応するデータソースインスタンスを選択します。

    同期設定ファイルの生成

    [同期設定ファイルの生成] をクリックします。選択したデータソースの種類に基づいて、システムは右側の [設定ファイル] 領域に設定 JSON テンプレートを自動的に生成します。実際のビジネスニーズに応じて、設定項目を削除または変更できます。

    設定ファイル

    image アイコンをクリックしてエディターを展開し、全画面で設定ファイルを表示または記述します。

    テンプレート設定は、主に 3 つの部分で構成されます。

    • tabletables: コンポーネントの単一入力テーブルと複数入力テーブル。複数入力テーブルのキーは `tables` です。単一入力テーブルのキーは `table` です。コンポーネントにテーブルが含まれていない場合、このパラメーターは使用できません。

    • column: 入力テーブルの入力フィールド。フィールドには、少なくとも nametype が必要です。

    • parameter: 同期設定に関連するパラメーター。設定はデータソースによって異なります。コンポーネントのパラメーターについては、特定のコンポーネントのドキュメントをご参照ください。

    {
      "table":"tableName",// "tables":["tableName"]
      "column":[{
        "name":"",
        "type":""
      }],
      "parameter":{}
    }
  8. [確認] をクリックして、[スクリプトモード] 入力ウィジェットのプロパティ構成を確定します。

ベストプラクティス

コードエディタウィジェットは、設定 JSON を使用してオフライン統合タスクを設定します。主に次のようなシナリオで使用されます。

  • グラフィカルインターフェイスでは設定できないコンポーネントの高度な項目の設定。

  • エラーや停止時など、メタデータのサポートが利用できない場合に、テーブルとフィールドを手動で設定する。

  • テーブル名とフィールド名の特別なキーワードに関する問題への対処。

  • データベース関数の活用。

  • シャーディング戦略の実装。

  • クエリ SQL 文の直接実行。

以下では、同期 MySQL 複数テーブル JOIN 結果データを使用する方法を例として説明します。他のシナリオも同様に設定できます。

1 つ目:設定の概要

[スクリプトモード入力設定] ダイアログボックスで、パラメータを設定します。

パラメータ

説明

ステップ名

コードエディタ入力ウィジェットの名前を入力します。

データソースの種類

MySQL を選択します。

データソース

対応するデータソースインスタンスを選択します。

同期設定ファイルの生成

[同期設定ファイルの生成] をクリックします。選択したデータソースの種類に基づいて、システムは右側の [設定ファイル] 領域に設定 JSON テンプレートを自動的に生成します。実際のビジネスニーズに応じて、設定項目を削除または変更できます。

設定ファイル

テンプレート設定は、主に次の 3 つの部分で構成されます。

  • table: 入力テーブルを設定します。複数のテーブルがある場合は、そのうちの 1 つだけを入力できます。

  • column: 入力テーブルの入力フィールド。フィールドには、少なくとも nametype の値が必要です。一部の入力コンポーネントでは、フィールドリスト内のフィールドのインデックス位置も必要になる場合があります。これは index の値です。

  • parameter: 同期設定に関連するパラメーター。設定はデータソースによって異なります。コンポーネントのパラメーターについては、特定のコンポーネントのドキュメントをご参照ください。

{
    "table":"tableName", 
    "column":[ 
        {
            "name":"",
            "type":""
        }
    ],
    "parameter":{

    }
}

2 つ目:ウィジェットの使用法

ウィジェットの使用法は、以下の例に示すように、シナリオによって異なります。

クエリ SQL の使用

たとえば、複数テーブル JOIN の結果データやその他のカスタム SQL クエリの結果データを同期するには、設定ファイルの内容は次のとおりです。

{
    "table": "sff_id_name",
    "parameter": {
        "connection": [
            {
                "querySql": [
                    "select a.id, b.name from sff_id_name a join sff_id_name_1 b on a.id = b.id"
                ]
            }
        ]
    },
    "column": [
        {
            "name": "id",
            "type": "Long"
        },
        {
            "name": "name",
            "type": "String"
        }
    ]
}

複雑な SQL 文の場合は、querySql 設定項目を使用します。この項目は、同じ構造を持つ複数の SELECT 文をサポートする文字列配列であり、connection 内にネストする必要があります。複数の connection 項目を使用して、複数のデータベースに接続できます。

シャーディング

シャーディングでは、テーブル構造の一貫性を維持しながら、複数のデータベースとテーブルにデータを分散します。

  • querySql の使用

    {
        "table": "sff_id_name",
        "parameter": {
            "connection": [
                {
                    "querySql": [
                        "select a.id, b.name from sff_id_name a join sff_id_name_1 b on a.id = b.id"
                    ]
                },
                {
                    "jdbcUrl": [
                        "jdbc:mysql://ip:3306/dataphin"
                    ],
                    "querySql": [
                        "select id,name from sff_id_name"
                    ]
                }
            ]
        },
        "column": [
            {
                "name": "id",
                "type": "Long"
            },
            {
                "name": "name",
                "type": "String"
            }
        ]
    }
  • テーブル名を直接設定する

    {
        "table": "sff_id_name1",
        "parameter": {
            "connection": [
                {
                    "table": [
                        "sff_id_name1","sff_id_name2"
                    ]
                },
                {
                    "jdbcUrl": [
                        "jdbc:mysql://xxx:3306/dataphin1"
                    ],
                    "table": [
                        "sff_id_name3","sff_id_name4"
                    ]
                },
                {
                    "jdbcUrl": [
                        "jdbc:mysql://xxx:3306/dataphin2"
                    ],
                    "table": [
                        "sff_id_name5","sff_id_name6"
                    ]
                }
            ]
        },
        "column": [
            {
                "name": "id",
                "type": "Long"
            },
            {
                "name": "name",
                "type": "String"
            }
        ]
    }

関数の使用

MySQL の upper 関数など、データベースがサポートする関数を直接使用できます。

{
  "tables":[
    "sff_id_name_2"
  ],
  "parameter":{
    "where":"id>0",
    "splitPk":"id"
  },
  "column":[
    {
      "name":"id",
      "type":"Long"
    },
    {
      "name":"upper(name)",
      "type":"String"
    }
  ]
}

キーワード

MySQL では、キーワードを識別するためにバックティック (``) を使用します。たとえば、キーワードが id の場合、`id` を使用できます。

{
	"tables":[
		"sff_id_name_2"
	],
	"parameter":{
		"where":"id>0",
		"splitPk":"id"
	},
	"column":[
		{
			"name":"`id`",
			"type":"Long"
		},
        {
			"name":"upper(name)",
			"type":"String"
		}
	]
}