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

ストリームにデータをプッシュする

Foundry でのデータ取り込みの多くは、ソースシステムからデータを取得し、データセットまたはストリームに同期することを中心としています。

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

データ用の Foundry ソースをすでに設定している場合は、そのソースに接続することも検討してください。既存のソースでストリーミング同期を設定する方法、または Kafka ソースを設定する方法を参照してください。

Foundry で適切に認証できないシステムや、標準のストリームスキーマに準拠できないシステムから受信 Webhook を受け取る必要がある場合は、リスナーの使用を検討してください。

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

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

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

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

パート1. 初期セットアップ

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

  1. Foundry にログインします。
  2. プロジェクトに移動します。
  3. 右上隅の + 新規を選択します。
  4. 下にスクロールして、ストリームを選択します。
ストリームを作成

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

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

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

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

続いて、ストリームを設定します。

  • JSON サンプルから生成... ボタンを選択して既存の JSON データを貼り付けると、その JSON データからスキーマが自動生成されます。
  • リレーショナルデータベースからリアルタイムの更新をストリーミングする場合は、変更データキャプチャを設定します。
  • ストリームに必要な並列処理を考慮して、より高いスループット設定が必要かどうかを判断します。詳しくは、パーティションのドキュメントを参照してください。
  • 複数のパーティションを使用する場合は、順序を保証するためのキーの設定を検討します。
ストリームを定義

ストリームを作成を選択する前に、すべての検証エラーに対処する必要があります。エラーの詳細を確認するには、ページ下部のツールチップにカーソルを合わせます。

右下隅のストリームを作成ボタンを選択して、接続するページに移動します。ここでは、ストリーミングデータへの接続方法を指定できます。

パート2. ストリームにレコードをプッシュする

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

  1. プッシュベースの取り込みを行うには、API 経由で接続セクションの選択肢から1つを選択します。

    HTTP リクエストを送信できる言語や技術であれば、どれでもレコードのプッシュに使用できます。cURL、Python、Node を使用した JavaScript、Java の例を用意しています。Foundry にデータをプッシュする代わりに Foundry の同期を使用してデータを取り込む場合は、ストリーミング同期を設定する方法を確認してください。

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

    ストリーム接続

    続いて、データのプッシュワークフローページが表示されます。

  2. 次に、認証方式を選択します。リクエストの認証には、次の2つの方法をサポートしています。

    • サードパーティアプリケーションでプッシュ(推奨): この方法では、OAuth2 ワークフローを使用して、ストリームにレコードをプッシュするための安全なトークンを作成します。
    • 個人トークンでプッシュ: この方法では、テスト目的に限り、ユーザーが生成したトークンを使用します。
    ストリームのプッシュの選択肢
  3. このチュートリアルでは、サードパーティアプリケーションでプッシュの方法を選択します。Foundry がクライアントID、クライアントシークレット、サービスユーザーを発行できるように、クライアント資格情報グラントで認証するアプリケーションが必要です。エンロールメントで利用可能な方法で、そのアプリケーションを作成します。

    • Developer Console(推奨): クライアント資格情報を設定し、アプリケーションタイプページでバックエンドサービスを、権限ページでアプリケーションの権限を選択します。クライアントIDとシークレットを取得したら、以下のステップ8に進みます。アプリケーションの権限を選択するとクライアント資格情報グラントがすでに有効になるため、ステップ9から11は Control Panel を使用する場合にのみ適用されます。
    • Control Panel: Developer Console が有効になっていない場合は、サードパーティアプリケーションを登録する手順に従い、クライアント資格情報グラントを有効にした機密クライアントを登録します。以下のステップ4から11で、この方法を説明します。

    いずれの方法でも、ストリームにレコードをプッシュするには、アプリケーションの操作制限に api:use-streams-write 操作権限が必要です。操作制限を参照してください。

    ストリームのプッシュのサードパーティ認証
  4. Control Panel を使用する場合: サードパーティアプリケーションに移動を選択して、Foundry のプラットフォーム設定にあるサードパーティアプリケーション管理ページを開きます。

  5. 画面右上の新規アプリケーションを登録を選択します。

    サードパーティの新規アプリ
  6. 名前を選び、クライアントの種類をサーバーアプリケーションに設定します。

    サードパーティアプリを作成
  7. 作成するを選択すると、クライアントIDとシークレットが表示されます。

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

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

    クライアントシークレットを追加
  9. ワークフローのアプリケーションの設定セクションまで下にスクロールし、アプリケーションを管理するを選択して、Foundry のプラットフォーム設定にあるサードパーティのアプリケーション管理ページを開きます。

    サードパーティアプリを設定
  10. 次に、クライアント認証情報の付与設定を有効にします。

    グラントを設定
  11. 最後に、右上隅の保存をクリックします。

パート3:ストリームを共有する

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

  1. まず、プッシュワークフローページに戻ります。ワークフローの新しいアプリケーションの使用セクションで、生成したクライアントIDを見つけます。

    クライアントID
  2. 次に、右上の共有を選択すると、画面右側にあるストリームの詳細サイドバーのロールタブが開きます。

    サードパーティアプリと共有する
  3. ロールの検索項目にクライアントIDをコピーして貼り付け、作成したアプリケーションを見つけます。+ を選択し、編集者ロールを検索して選択します。

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

  5. プッシュワークフローに戻り、次の手順を選択します。

パート4:ストリームをテストする

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

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

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

    コマンドを実行すると、$ACCESS_TOKEN という変数が利用可能になります。次のコマンドでこの変数を使用して、レコードをプッシュします。

    2つ目のコマンドでは、cURL を使用して、ストリームに挿入するレコードを含む POST リクエストを Foundry のエンドポイントに送信します。このコマンドには、ストリームにプッシュするダミーレコードがあらかじめ入力されていますが、ストリームのスキーマに準拠する任意のデータを HTTP リクエストに指定できます。

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

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

    レコードを表示する

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

[{ \"value\": {\"sensor_id\":\"sensor4\",\"temperature\":4.132} }]

JSON でテストカードを展開すると、ユーザーインターフェースからストリームにテストレコードを送信することもできます。

JSON でテスト

次のステップ

ストリームへのデータのプッシュが成功したので、データの加工を始める準備が整いました。パイプラインを開始を選択すると、ストリーミングパイプラインを構築するための Pipeline Builder アプリケーションに移動します。データを加工する方法と、Pipeline Builder で利用可能なさまざまなデータ加工について詳しくはこちらをご覧ください。