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

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 は不可)。

      • 1 行目にヘッダー行を使用します。新しいテーブルでは、カラムの順序は CSV の順序が保持されます。

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

      • カラム名の重複は禁止です。

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

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

      Save をクリックすると、まずテーブルが作成され、その後に CSV の行が挿入されます。この挿入ステップが失敗した場合(例: 無効なデータや接続問題が原因)、テーブルはすでに存在していても行が 1 行もない状態となり、エラーメッセージが表示されます。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 つ以上のフローで使用されている場合でも、削除は可能です。コンソールは、そのテーブルを使用している公開済みフローを非公開にし、ドラフトフローからはテーブルを削除します。これにより、テーブルを更新するまで(例えば別のテーブルを選択するか Datastore ノードを削除するまで)、実行時にフローが失敗する可能性があります。フローの破損を避けるため、テーブルを削除する前に、そのテーブルを使用している各フローから Datastore ノードを削除するか再設定してください。

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

Datastore browser with delete table action or confirmation dialog

アクション

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

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

Get records

テーブルからレコードを取得します。どのレコードを返すか、および含めるデータを制御できます。

  • Table: クエリを実行するテーブル。

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

  • (任意)Filters: 結果を絞り込む条件を定義します。フィルターグループ内の条件は 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 件も挿入されません。

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: 削除対象のレコードを特定する条件を定義します。フィルターグループ内の条件は 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 node を使用して EC2 インスタンスを一覧表示します。
  2. Datastore ノードで Upsert アクションを使用し、インスタンス ID を Upsert キーとして使用して、各インスタンスの現在の状態でテーブルを更新します。
  3. 2 つ目の Datastore ノードで Get records アクションを使用し、7 日以上停止しているインスタンスをテーブルに対してクエリします。
  4. 停止期間の長いインスタンスの一覧を含む Notification を関連チームに送信します。

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

テスト

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