Warning

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

ストリームへのデータプッシュ

Foundry でのほとんどのデータ取り込みは、ソースシステムからデータをプルしてデータセットやストリームに同期することに集中しています。

ストリームにおいて、Foundry はイベントベースのワークフローをサポートするための プッシュベースの取り込み をサポートしています。

Foundry でのプッシュベースのレコード取り込みは、一般的な REST サービスと同じ原則に従います。一連の REST エンドポイントを通じて、レコードを消費し、それらをストリームとデータセットに書き込むことができるプッシュベースの API を公開しています。ストリームにプッシュするために必要な高レベルの情報は次のとおりです:

  • ストリームのデータセットリソース識別子。
  • ブランチの名前。
  • リクエストを認証するためのトークン。

すでにデータの Foundry ソースが設定されている場合は、そのソースに接続することをお勧めします。既存のソースとのストリーミング同期を設定する方法、または Kafka ソースを設定する方法を 学びましょう

以下では、ストリームにデータをプッシュするために必要な手順について説明します:

  1. 新しいストリームを 設定します
  2. ストリームに レコードをプッシュします
  3. ストリームを 共有します
  4. ストリームを テストします

パート 1. 初期設定

まず、ストリーム作成ワークフローを始めます。

  1. Foundry にログインします。
  2. プロジェクト に移動します。
  3. 右上の角にある + New を選択します。
  4. 下にスクロールして Stream を選択します。
Create stream

次に、ストリームのスキーマ、スループット、キーを定義する必要があります。

  • スキーマ はストリームデータの構造と型を定義します。
  • スループット はデータ処理率を表し、ストリームで使用されるパーティションの数に影響します。スループットパーティション のドキュメンテーションを参照してください。
  • キー は複数のパーティションを使用する際にユニークIDの順序を保証するために使用されます。ストリーミングキー のドキュメンテーションを参照してください。

このチュートリアルでは、シンプルなシングルパーティションのストリームを作成します。

  • スキーマを sensor_id: String, temperature: Double, created_at: Timestamp に設定します。
  • スループットを Normal に設定します。

次に、ストリームを設定します。

  • 既存の JSON ブロブから自動的にスキーマを生成するには、Generate from JSON sample... ボタンを選択し、既存の JSON ブロブを貼り付けます。
  • 関係データベースからリアルタイムの更新をストリーミングする場合は、変更データキャプチャ を設定します。
  • ストリームの並列性要件を考慮して、高スループット設定が必要かどうかを判断します。詳細は パーティション のドキュメンテーションを参照してください。
  • 複数のパーティションを使用する際に順序の保証のためのキーを設定することを検討してください。
Define stream

すべての検証エラーは、Create stream を選択する前に対処する必要があります。ページの下部のツールチップにマウスを置くと、エラーの詳細が表示されます。

右下の角にある Create stream ボタンを選択して Connect ページに移動します。ここでは、ストリーミングデータに接続する方法を指定できます。

パート 2. ストリームへのレコードのプッシュ

これでストリームに接続する準備が整いました。

  1. プッシュベースの取り込みの場合、Connect via API セクションのオプションの一つを選択します。

    HTTP リクエストを作成できる任意の言語や技術を使用してレコードをプッシュすることができます。cURL、Python、Node 経由の JavaScript、Java の例を提供しています。Foundry の同期を介してデータを取り込むのではなく、データを Foundry にプッシュしたい場合は、ストリーミング同期の設定方法を確認してください ストリーミング同期の設定

    この例では、 cURL を選択します。

    Stream connection

    すると、Push データワークフローページに移動します。

  2. 次に、認証メカニズムを選択します。リクエストへの認証は2つの方法をサポートしています:

    • サードパーティアプリケーションを使用したプッシュ(推奨): この方法は OAuth2 ワークフローを使用して、ストリームにレコードをプッシュするために使用できる安全なトークンを作成します。
    • パーソナルトークンを使用したプッシュ: この方法はテスト目的のみのユーザー生成トークンを使用します。
    Stream push options
  3. このチュートリアルでは、サードパーティアプリケーションを使用したプッシュ 方法を選択します。画面上の手順に従ってサードパーティアプリケーションを設定し、クライアントシークレット を作成します。

    Stream push third party auth
  4. 今度は、Go to third-party applications を選択して、Foundry プラットフォーム設定のサードパーティアプリケーション管理ページを開きます。

  5. 画面右上の Register new application を選択します。

    Third party new app
  6. 名前を選択し、クライアントのタイプを Server application に設定します。

    Third party create app
  7. Create を選択すると、クライアント ID とシークレットが表示されます。

    このページから離れると、クライアントシークレットはアクセスできなくなります。安全な場所に保存してください。

  8. これで、クライアント ID とシークレットを Push ワークフローページに追加できます。

    Add client secret
  9. ワークフローの Configuring the Application セクションまで下にスクロールし、Manage application を選択して、Foundry プラットフォーム設定の Third-party applications 管理ページを開きます。

    Configure third party app
  10. 次に、Client credentials grant 設定を有効にします。

    Configure grant
  11. 最後に、右上の角にある Save をクリックします。

パート 3: ストリームの共有

次に、作成したアプリケーションとストリームを共有する必要があります。

  1. 最初に、Push ワークフローページに戻ります。ワークフローの Using Your New Application セクションで、生成したクライアント ID を見つけます。

    Client ID
  2. 次に、右上の Share を選択して、ストリーム Details サイドバーの Roles タブを開きます。

    Share third party app
  3. クライアント ID を Roles 検索フィールドにコピーして貼り付け、作成したアプリケーションを見つけます。 + を選択して Editor ロールを検索し、選択します。

  4. サイドパネルの下部にある Save を選択してストリームを共有します。

  5. プッシュワークフローに戻り、Next step を選択します。

パート 4: ストリームのテスト

ストリームにテストレコードをプッシュするために使用できるコード例が表示されます。コード例は、前の手順で選択した言語によって異なります。この例では、cURL を使用しています。

cURL コマンドを実行する前に、コマンドラインの JSON パースのために jQuery をインストールしておいてください。

  1. 最初に、最初のボックスからコマンドをコピーします。これは Foundry の OAuth2 エンドポイントをヒットし、レコードをプッシュするために使用できるアクセストークンを提供します。
Push records with cURL
  1. Mac、Windows、または Linux マシンの bash ターミナルでコマンドを実行します。

    コマンドを実行すると、$ACCESS_TOKEN という名前の使用可能な変数が得られます。この変数を次のコマンドでレコードをプッシュするために使用します。

    2つ目のコマンドは、cURL を使用して Foundry エンドポイントをヒットし、ストリームに挿入したいレコードを含むポストリクエストを行います。コマンドは、ストリームにプッシュするダミーレコードで事前に入力されていますが、ストリームのスキーマに準拠した任意のデータを HTTP リクエストに提供できます。

  2. 2つ目のコマンドをターミナルにコピーして貼り付け、実行します。

    コマンドが成功すると、ストリームにレコードが表示されます。

    View records

ストリームにプッシュされるデータを変更するには、ポストリクエストのデータパラメータを修正します。

[
  { 
    \"value\": {
      \"sensor_id\":\"sensor4\",  // センサーのIDを表す
      \"temperature\":4.132  // 温度を表す (摂氏)
    } 
  }
]