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

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

Foundry におけるほとんどのデータ取り込みは、ソースシステムからデータを引き出し、データセットやストリームに同期することに焦点を当てています。

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

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

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

既にデータのための Foundry ソースが設定されている場合は、そのソースに接続することを検討してみてください。既存のソースで ストリーミング同期を設定する 方法や、Kafka ソースを設定する 方法を学んでみてください。

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

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

パート 1. 初期設定

まず、新しいストリームを作成する必要があります。

  1. Foundry にログインしたら、Foundry の Project に移動し、右上の角にある + New を選択し、次に Stream を選択します。
Create stream
  1. 次に、ストリームを定義する必要があります。このガイドでは、シンプルな一つのパーティションストリームを作成し、手動でレコードをプッシュします。

Define ページで、スループットに Normal を選択します。このチュートリアルでは、スキーマを sensor_id**:** String、temperature**:** Double に設定します。

Define stream
  1. Create stream を選択します。これにより、ストリーミングデータに接続する方法を指定できる Connect ページに移動します。

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

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

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

    HTTP リクエストを行うことができる任意の言語やテクノロジーを使用してレコードをプッシュすることができます。Curl、JavaScript via Node、Java の例を提供しています。Foundry へのデータのプッシュの代わりに Foundry sync 経由でデータを取り込む方法を確認するには、ストリーミング同期を設定する 方法をご覧ください。

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

    Stream connection

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

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

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

    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 プラットフォーム設定の サードパーティアプリケーション 管理ページを開きます。

    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 エンドポイントにヒットし、ストリームに挿入したいレコードを含む post リクエストを行います。コマンドはストリームにプッシュするダミーレコードで事前に入力されていますが、HTTP リクエストでストリームのスキーマに準拠した任意のデータを提供することができます。

  2. 2つ目のコマンドをターミナルにコピー&ペーストし、実行します。

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

    View records

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

[{
  "value": {
    "sensor_id": "sensor4",  // センサーID
    "temperature": 4.132      // 温度
  }
}]

次のステップ

データをストリームに正常にプッシュしたので、データの変換を開始できます。パイプライン開始 をクリックして、Pipeline Builder アプリケーションに移動し、ストリーミングパイプラインを構築します。データを変換する方法や、Pipeline Builder で利用可能なさまざまな変換について詳しく学びましょう。