メインコンテンツへスキップ

Datastore ノード

Datastore ノードを使用すると、管理されたデータストア内に構造化データを保存・取得・更新・削除し、フロー内で利用できます。外部データベースに接続せずにフロー実行間で情報を永続化したい場合に便利です。たとえば、フローがすでに処理したクラウドリソースを記録したり、プロジェクト ID とその予算閾値のテーブルを保持したり、アカウントやリージョンごとにスケジュールされたフローが最後に実行された時刻を追跡する、といった用途です。作成したテーブルには、お客様の組織内のフローからのみアクセスできます。

テーブルの作成と管理

フローで Datastore ノードを使用する前に、データを保存するためのテーブルを 1 つ以上作成してください。CloudFlow のランディングページで Tables を選択し、テーブルを管理する Datastore タブを開きます。

Cloudflow main page with tables highlighted

テーブルを作成する

  1. CloudFlow のランディングページで Tables を選択し、Datastore タブを開きます。

  2. Create table を選択します。

    Create table dialog with table name, description, and manual column definition (name, data type, unique checkbox)

  3. Table name にテーブル名を入力します。テーブル名は作成後に変更できません。

  4. (任意)Description に、そのテーブルが保存する内容の簡単な説明を入力します。

  5. 列を手動で定義するか、CSV ファイルをアップロードします。

    • Manually define columns: 1 つ以上の列を、名前とデータタイプとともに定義します。列を Unique としてマークすると、その列で同じ値を持つレコードが 2 つ存在しないように強制できます。Upsert アクションを使用する場合は、少なくとも 1 つの一意列が必要です。Upsert キーとして使用できるのは、一意列のみです。

    • CSV ingestion: Upload CSV を選択し、.csv ファイルを選択します。CSV ファイルには次の要件があります。

      • 最大ファイルサイズは 5 MB。

      • 最大 50 列。

      • 最大 5,000 行。

      • CSV ファイルは圧縮されていてはいけません(例: ZIP や GZ は不可)。

      • 先頭行にヘッダー行を使用します。新しいテーブルでも列の順序は保持されます。

      • 列名は、先頭が英字またはアンダースコアで始まり、その後に英数字またはアンダースコアを続ける必要があります。

      • 列名の重複は不可。

      • CSV アップロード時に、列のデータタイプは自動検出されます。テーブルを保存する前に、正しいかを必ず確認してください。

      • 日付およびタイムスタンプ値は RFC3339/ISO 8601 UTC format に従う必要があります(例: タイムスタンプは YYYY-MM-DDTHH:MM:SSZ、日付のみのフィールドは YYYY-MM-DD)。

      Save をクリックすると、まずテーブルが作成され、その後 CSV の行が挿入されます。挿入処理(たとえば無効なデータや接続問題が原因)が失敗した場合、テーブル自体はすでに存在しているものの行が 0 件の状態になり、エラーメッセージが表示されることがあります。CSV に機微情報や個人を特定できる情報(PII)が含まれる場合は、アップロード前に必ずマスキングやサニタイズを行ってください。

      CSV の例(ヘッダー行とデータ行):

      instance_id,state,last_updated
      i-001,running,2026-01-15T10:00:00Z
      i-002,stopped,2026-01-14T09:30:00Z
  6. Save を選択します。

テーブルを編集する

テーブルの説明を更新したり、列を追加または削除したりできます。テーブル名は作成後に変更できず、既存の列名やデータタイプも変更できません。

注意

既存のテーブルを更新する目的では、CSV ingestion は使用できません。

  • テーブルの列構成を変更するには、Edit table を使用して列を追加または削除してください。

  • 既存テーブルに行を追加するには、Datastore タブ内の Add row、または Datastore の Insert または Upsert ノードを含むフローを使用してください。

  1. Datastore ブラウザから対象のテーブルを開きます。

    Datastore browser listing tables with Edit table action visible

  2. Edit table を選択します。

  3. 必要な変更を行い、Save を選択します。

レコードの参照と管理

テーブルを開くと、そのテーブル内のレコードが表示されます。テーブルの詳細ビューから、次の操作ができます。

Table detail view with records in rows, Add row button

  • レコードの追加: Add row を選択し、列の値を入力します。

  • レコードの編集: 行を選択して、その値を更新します。

  • レコードの削除: 1 行以上を選択し、削除します。

レコードはページ分割され、任意の列でソートできます。

テーブルを削除する

テーブルを削除すると、そのテーブル内のすべてのレコードが完全に削除されます。テーブルが 1 つ以上のフローで使用されている場合でも削除可能です。コンソールは、そのテーブルを使用している公開済みフローをすべて unpublish し、ドラフトフローからはテーブル参照を削除します。これらのフローは、更新されるまで(たとえば別のテーブルを選択する、または Datastore ノードを削除するまで)実行時に失敗する可能性があります。フローの破損を防ぐには、そのテーブルを使用している各フローで、テーブル削除前に Datastore ノードを削除するか再設定してください。

テーブルを削除するには、Datastore タブで削除したいテーブル行の右端にあるケバブメニュー()を選択し、Delete を選択します。

Datastore browser with delete table action or confirmation dialog

アクション

フロー内で Datastore ノードを設定する際、+ ボタンを使ってパラメータに前段ノードの値を参照できます。詳しくは Node parameters を参照してください。次のいずれかのアクションを選択します。

Datastore node configuration panel with action dropdown showing Get, Insert, Upsert, Delete

Get records

テーブルからレコードを取得します。返されるレコードと含めるデータを制御できます。

  • Table: クエリ対象のテーブル。

  • (任意)Columns: 結果に含める列を選択します。列を選択しない場合、すべての列が返されます。

  • (任意)Filters: 結果を絞り込む条件を定義します。1 つのフィルターグループ内の条件は AND ロジックで結合され、複数のフィルターグループは OR ロジックで結合されます。

    使用できるフィルター演算子は次のとおりです。

    Operator説明
    ==等しい
    !=等しくない
    >より大きい
    >=以上
    <より小さい
    <=以下または等しい

    フィルター値には、フロー内の前段ノードの出力を参照できます。

  • (任意)Limit: 返されるレコードの最大数(1–5,000)。

    Get records configuration with table selector, columns picker, filter groups, and limit field

Get records アクションの出力は、条件に一致したレコードの配列であり、フロー内の後続ノードから参照できます。

Insert records

1 件以上のレコードをテーブルに挿入します。

  • Table: レコードを挿入するテーブル。

  • Column mappings: 各列に値をマッピングします。値は静的な値でも、前段ノードの出力参照でもかまいません。

    前段ノードの出力が複数のアイテム(例: EC2 インスタンスのリスト)を含む場合、Datastore ノードはアイテムごとに 1 レコードを自動的に作成します。

レコードは最大 1,000 行ずつのバッチで挿入されます。挿入はバッチ単位でアトミックに行われ、バッチ内のいずれか 1 件でも検証に失敗した場合、そのバッチのレコードは 1 件も挿入されません。

Insert records configuration with table selector and column mappings (static values or node references)

出力には、挿入されたレコードの ID と、挿入された合計行数が含まれます。

Upsert records

一意キー列に基づき、新規レコードの挿入または既存レコードの更新を行います。外部データソースとテーブルの内容を重複なく同期したい場合に有用です。

  • Table: Upsert 対象のテーブル。

  • Upsert key: レコードが既に存在するかどうかを判定する列です。同じキー値を持つレコードが存在する場合は更新され、存在しない場合は新しいレコードが挿入されます。Upsert キー列は、テーブル作成時に unique としてマークされている必要があります。

  • Column mappings: Insert records と同様に、各列に値をマッピングします。

Upsert records configuration with table selector, upsert key dropdown, and column mappings

出力には、挿入および更新されたレコードの件数と ID が含まれます。

Delete records

指定したフィルター条件に一致するレコードをテーブルから削除します。

  • Table: レコードを削除するテーブル。

  • Filters: 削除対象レコードを特定する条件を定義します。1 つのフィルターグループ内の条件は AND ロジックで結合され、複数のフィルターグループは OR ロジックで結合されます。誤ってテーブル全体を削除してしまうことを防ぐため、少なくとも 1 つのフィルター条件が必須です。

    Get records と同じフィルター演算子 ==, !=, >, >=, <, <= を利用できます。フィルター値には、フロー内の前段ノードの出力を参照できます。

Delete records configuration with table selector and required filter groups

出力には、削除されたレコード数(deletedCount)とテーブル ID が含まれます。

サポートされる列タイプ

Datastore でテーブルを作成する際、次の列タイプを利用できます。

Type説明
Text可変長文字列us-east-1
Integer整数値42
Numeric小数値3.14
Boolean真偽値true
Dateカレンダー日付 (yyyy-MM-dd)2026-01-15
Timestampタイムゾーン付き日時2026-01-15T10:30:00Z
JSON構造化された JSON データ{"key": "value"}

例:EC2 インスタンスの状態変更を追跡する

Datastore ノードの一般的なユースケースとして、クラウドリソースの状態を時間とともに追跡するルックアップテーブルを維持することがあります。例えば、次のようなフローを構築できます。

  1. AWS ノードを使用して EC2 インスタンスを一覧表示します。
  2. Datastore ノードで Upsert アクションを使用し、アップサートキーとしてインスタンス ID を使って、各インスタンスの現在の状態でテーブルを更新します。
  3. 2 つ目の Datastore ノードで Get records アクションを使用し、7 日以上停止しているインスタンスをテーブルからクエリします。
  4. 長期間停止しているインスタンスの一覧を含めて、該当チームに Notification を送信します。

Upsert アクションは重複を作成するのではなく既存のレコードを更新するため、テーブルには常に各インスタンスの最新の状態が反映されます。

テスト

ノードをテストするには、Test を選択してください。