TiDB Cloudとn8nを統合する
n8nは拡張可能なワークフロー自動化ツールです。2 フェアコード配布モデルにより、n8nは常にソースコードを公開し、セルフホストが可能になり、カスタム関数、ロジック、アプリを追加できるようになります。
このドキュメントでは、 TiDB Cloud Starter クラスターを作成し、Hacker News RSS を収集して TiDB に保存し、ブリーフィング メールを送信するという自動ワークフローの構築方法を紹介します。
注記:
このドキュメントの手順は、 TiDB Cloud Starter クラスターに加えて、 TiDB Cloud Essential クラスターでも機能します。
前提条件: TiDB Cloud APIキーを取得する
- TiDB Cloudコンソールで、左上隅のコンボ ボックスを使用して対象の組織に切り替えます。
 - 左側のナビゲーション ペインで、 [組織設定] > [API キー]をクリックします。
 - 「API キー」ページで、 「API キーの作成」をクリックします。
 - API キーの説明を入力し、 「次へ」をクリックします。
 - 作成した API キーを n8n で後で使用するためにコピーし、 [完了]をクリックします。
 
詳細についてはTiDB CloudAPI の概要参照してください。
ステップ1:n8nをインストールする
セルフホスティングn8nをインストールするには2つの方法があります。ご都合の良い方をお選びください。
ワークスペースにノード.jsインストールします。
npxで n8n をダウンロードして起動します。npx n8n
ワークスペースにドッカーインストールします。
dockerで n8n をダウンロードして起動します。docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n
n8nを起動したら、 ローカルホスト:5678アクセスしてn8nを試すことができます。
ステップ2: n8nにTiDB Cloudノードをインストールする
TiDB Cloudノードはnpmリポジトリでn8n-nodes-tidb-cloud名前です。n8nでTiDB Cloudを制御するには、このノードを手動でインストールする必要があります。
- ローカルホスト:5678ページで、セルフホスティング n8n の所有者アカウントを作成します。
 - [設定] > [コミュニティ ノード]に移動します。
 - 「コミュニティ ノードのインストール」をクリックします。
 - npm パッケージ名フィールドに
n8n-nodes-tidb-cloud入力します。 - [インストール]をクリックします。
 
次に、ワークフロー> 検索バーでTiDB Cloudノードを検索し、ワークスペースにドラッグしてTiDB Cloudノードを使用できます。
ステップ3: ワークフローを構築する
このステップでは、 「実行」ボタンをクリックしたときに TiDB にデータを挿入する新しいワークフローを作成します。
この使用例のワークフローでは、次のノードが使用されます。
最終的なワークフローは次の画像のようになります。

(オプション) TiDB Cloud Starter クラスターを作成する
TiDB Cloud Starter クラスターをお持ちでない場合は、このノードを使用して作成できます。そうでない場合は、この操作をスキップしてください。
- ワークフローパネルに移動し、ワークフローの追加をクリックします。
 - 新しいワークフロー ワークスペースで、右上隅の+をクリックし、 [すべてのフィールド] を選択します。
 TiDB Cloud検索し、ワークスペースにドラッグします。- TiDB TiDB Cloud TiDB Cloud API キー) を入力します。
 - プロジェクトリストでプロジェクトを選択します。
 - 操作リストで
Create Serverless Cluster選択します。 - [クラスタ名]ボックスにクラスター名を入力します。
 - 「リージョン」リストで地域を選択します。
 - [パスワード]ボックスに、TiDB クラスターにログインするために使用するパスワードを入力します。
 - ノードを実行するには、 「ノードの実行」をクリックします。
 
注記:
新しいTiDB Cloud Starter クラスターを作成するには数秒かかります。
ワークフローを作成する
ワークフローのスターターとして手動トリガーを使用する
ワークフローがまだない場合は、 「ワークフロー」パネルに移動し、 「最初から始める」をクリックします。そうでない場合は、この手順をスキップしてください。
右上の+をクリックして
schedule trigger検索します。手動トリガーノードをワークスペースにドラッグし、ダブルクリックします。パラメータダイアログが表示されます。
ルールを次のように設定します。
- トリガー間隔: 
Days - トリガー間の日数: 
1 - トリガー時刻: 
8am - トリガー時間: 
0 
- トリガー間隔: 
 
このトリガーは、毎朝午前 8 時にワークフローを実行します。
データを挿入するためのテーブルを作成する
手動トリガー ノードの右側にある+をクリックします。
TiDB Cloud検索してワークスペースに追加します。パラメータダイアログで、 TiDB Cloudノードの認証情報を入力します。認証情報はTiDB Cloud APIキーです。
プロジェクトリストでプロジェクトを選択します。
操作リストで
Execute SQL選択します。クラスターを選択します。リストに新しいクラスターが表示されない場合は、クラスターの作成が完了するまで数分お待ちください。
「ユーザー」リストでユーザーを選択します。TiDB TiDB Cloud は常にデフォルトのユーザーを作成するため、手動で作成する必要はありません。
データベースボックスに
test入力します。データベースのパスワードを入力してください。
SQLボックスに次の SQL を入力します。
CREATE TABLE IF NOT EXISTS hacker_news_briefing (creator VARCHAR (200), title TEXT, link VARCHAR(200), pubdate VARCHAR(200), comments VARCHAR(200), content TEXT, guid VARCHAR (200), isodate VARCHAR(200));実行ノードをクリックしてテーブルを作成します。
ハッカーニュースRSSを入手
- TiDB Cloudノードの右側にある+ をクリックします。
 RSS Read検索してワークスペースに追加します。- URLボックスに
https://hnrss.org/frontpage入力します。 
TiDBにデータを挿入する
- RSS 読み取りノードの右側にある+ をクリックします。
 TiDB Cloud検索してワークスペースに追加します。- 以前のTiDB Cloudノードに入力した資格情報を選択します。
 - プロジェクトリストでプロジェクトを選択します。
 - 操作リストで
Insert選択します。 - クラスタ、ユーザー、データベース、およびパスワードの各ボックスに、対応する値を入力します。
 - テーブルボックスにテーブル
hacker_news_briefing入力します。 - 「列」ボックスに
creator, title, link, pubdate, comments, content, guid, isodateと入力します。 
ビルドメッセージ
RSS フィード読み取りノードの右側にある+ をクリックします。
code検索してワークスペースに追加します。Run Once for All Itemsモードを選択します。JavaScriptボックスに次のコードをコピーして貼り付けます。
let message = ""; // Loop the input items for (item of items) { message += ` <h3>${item.json.title}</h3> <br> ${item.json.content} <br> ` } let response = ` <!DOCTYPE html> <html> <head> <title>Hacker News Briefing</title> </head> <body> ${message} </body> </html> ` // Return our message return [{json: {response}}];
Gmailでメッセージを送信
コード ノードの右側にある+ をクリックします。
gmail検索してワークスペースに追加します。Gmailノードの認証情報を入力してください。詳細な手順については、 n8n ドキュメントを参照してください。
リソースリストで
Message選択します。操作リストで
Send選択します。[宛先] ボックスにメールアドレスを入力します。
[件名]ボックスに
Hacker News Briefingと入力します。[**電子メールの種類]**ボックスで、
HTMLを選択します。メッセージボックスで、
Expressionクリックし、{{ $json["response"] }}入力します。注記:
メッセージボックスの上にマウスを移動して、式パターンを選択する必要があります。
ステップ4: ワークフローを実行する
ワークフローを構築した後、 「ワークフローの実行」をクリックしてテスト実行できます。
ワークフローが期待通りに実行されると、Hacker Newsのブリーフィングメールが届きます。これらのニュースコンテンツはTiDB Cloud Starterクラスターに記録されるため、失われる心配はありません。
ワークフローパネルでこのワークフローを有効化できるようになりました。このワークフローを使えば、Hacker Newsのトップページ記事を毎日取得できるようになります。
TiDB Cloudノードコア
サポートされている操作
TiDB Cloudノードは通常ノードとして機能し、次の 5 つの操作のみをサポートします。
- サーバーレスクラスタの作成: TiDB Cloud Starter クラスターを作成します。
 - SQL の実行: TiDB で SQL ステートメントを実行します。
 - 削除: TiDB 内の行を削除します。
 - 挿入: TiDB に行を挿入します。
 - 更新: TiDB 内の行を更新します。
 
フィールド
異なる操作を使用するには、それぞれの必須フィールドに入力する必要があります。以下に、対応する操作の各フィールドの説明を示します。
- TiDB Cloud APIの認証情報: TiDB Cloud APIキーのみをサポートします。APIキーの作成方法については、 TiDB CloudAPIキーを取得するを参照してください。
 - プロジェクト: TiDB Cloudプロジェクト名。
 - 操作: このノードの操作。サポートされているすべての操作については、 サポートされている操作を参照してください。
 - クラスタ: TiDB Cloudクラスター名。新しいクラスターの名前を入力してください。
 - リージョン: リージョン名。クラスターをデプロイするリージョンを選択します。通常は、アプリケーションのデプロイメントに最も近いリージョンを選択します。
 - パスワード: ルートパスワード。新しいクラスターのパスワードを設定してください。
 
- TiDB Cloud APIの認証情報: TiDB Cloud APIキーのみをサポートします。APIキーの作成方法については、 TiDB CloudAPIキーを取得するを参照してください。
 - プロジェクト: TiDB Cloudプロジェクト名。
 - 操作: このノードの操作。サポートされているすべての操作については、 サポートされている操作を参照してください。
 - クラスタ: TiDB Cloudクラスター名。既存のクラスターを 1 つ選択してください。
 - パスワード: TiDB Cloudクラスターのパスワード。
 - ユーザー: TiDB Cloudクラスターのユーザー名。
 - データベース: データベース名。
 - SQL : 実行される SQL ステートメント。
 
- TiDB Cloud APIの認証情報: TiDB Cloud APIキーのみをサポートします。APIキーの作成方法については、 TiDB CloudAPIキーを取得するを参照してください。
 - プロジェクト: TiDB Cloudプロジェクト名。
 - 操作: このノードの操作。サポートされているすべての操作については、 サポートオペレーションを参照してください。
 - クラスタ: TiDB Cloudクラスター名。既存のクラスターを 1 つ選択してください。
 - パスワード: TiDB Cloudクラスターのパスワード。
 - ユーザー: TiDB Cloudクラスターのユーザー名。
 - データベース: データベース名。
 - テーブル: テーブル名。2 
From listでテーブル名を選択するか、Nameモードでテーブル名を手動で入力できます。 - 削除キー: データベース内のどの行を削除するかを決定するアイテムのプロパティ名。アイテムとは、あるノードから別のノードに送信されるデータです。ノードは、受信データの各アイテムに対してアクションを実行します。n8nにおけるアイテムの詳細については、 n8n ドキュメント参照してください。
 
- TiDB Cloud APIの認証情報: TiDB Cloud APIキーのみをサポートします。APIキーの作成方法については、 TiDB CloudAPIキーを取得するを参照してください。
 - プロジェクト: TiDB Cloudプロジェクト名。
 - 操作: このノードの操作。サポートされているすべての操作については、 サポートオペレーションを参照してください。
 - クラスタ: TiDB Cloudクラスター名。既存のクラスターを 1 つ選択してください。
 - パスワード: TiDB Cloudクラスターのパスワード。
 - ユーザー: TiDB Cloudクラスターのユーザー名。
 - データベース: データベース名。
 - テーブル: テーブル名。2 
From listでテーブル名を選択するか、Nameモードでテーブル名を手動で入力できます。 - 列: 入力アイテムのプロパティをカンマ区切りでリストしたもので、新しい行の列として使用されます。アイテムとは、あるノードから別のノードに送信されるデータです。ノードは、入力データの各アイテムに対してアクションを実行します。n8nにおけるアイテムの詳細については、 n8n ドキュメント参照してください。
 
- TiDB Cloud APIの認証情報: TiDB Cloud APIキーのみをサポートします。APIキーの作成方法については、 TiDB CloudAPIキーを取得するを参照してください。
 - プロジェクト: TiDB Cloudプロジェクト名。
 - 操作: このノードの操作。サポートされているすべての操作については、 サポートオペレーションを参照してください。
 - クラスタ: TiDB Cloudクラスター名。既存のクラスターを 1 つ選択してください。
 - パスワード: TiDB Cloudクラスターのパスワード。
 - ユーザー: TiDB Cloudクラスターのユーザー名。
 - データベース: データベース名。
 - テーブル: テーブル名。2 
From listでテーブル名を選択するか、Nameモードでテーブル名を手動で入力できます。 - 更新キー: データベース内のどの行を更新するかを決定するアイテムのプロパティ名。アイテムとは、あるノードから別のノードに送信されるデータです。ノードは、受信データの各アイテムに対してアクションを実行します。n8nにおけるアイテムの詳細については、 n8n ドキュメント参照してください。
 - 列: 更新する行の列として使用される、入力項目のプロパティのコンマ区切りリスト。
 
制限事項
- 通常、 SQL実行操作では1つのSQL文のみが許可されます。1回の操作で複数のSQL文を実行する場合は、 
tidb_multi_statement_mode手動で有効にする必要があります。 - 削除および更新操作では、キーとして1つのフィールドを指定する必要があります。例えば、 
Delete Keyidに設定され、これはDELETE FROM table WHERE id = ${item.id}実行するのと同じです。現在、削除および更新操作では、1つのキーの指定のみがサポートされています。 - 挿入および更新操作の場合、列フィールドにコンマ区切りのリストを指定する必要があり、フィールド名は入力項目のプロパティと同じである必要があります。