第17章 Apache Kudu への接続

Apache Kudu は Apache Hadoop プラットフォーム向けに開発された列指向ストレージです。Fuse Online のインテグレーションは Kudu データストアに接続してテーブルをスキャンでき、テーブルのすべてのレコードをインテグレーションに返すか、レコードをテーブルに挿入します。詳細は以下を参照してください。

17.1. Apache Kudu データストアへのコネクションの作成

インテグレーションで、Kudu テーブルからレコードを取得したり、レコードを Kudu テーブルに挿入するには、Kudu マスターホストへのコネクションを作成し、そのコネクションをインテグレーションに追加します。

前提条件

  • 接続する Kudu マスターホストの IP アドレスとホスト名を知っている必要があります。
  • Kudu がリッスンするポートを知っている必要があります。

手順

  1. Fuse Online の左パネルで Connections をクリックし、利用可能なコネクションを表示します。
  2. Create Connection をクリックしてコネクターを表示します。
  3. Apache Kudu コネクターをクリックします。
  4. コネクションを設定します。

    1. Address of Kudu master host フィールドに、Kudu マスターホストのホスト名または IP アドレスを入力します。
    2. Port to establish connection to フィールドに、Kudu がリッスンするポートを入力します。デフォルトは 7051 です。
  5. Next をクリックします。
  6. Name フィールドに、このコネクションを別のコネクションと区別するために使用する名前を入力します。たとえば、Kudu North を入力します。
  7. Description は任意のフィールドで、このコネクションに関する便利な情報を入力します。
  8. Save をクリックし、作成したコネクションが利用可能になったことを確認します。上記の例の名前を入力した場合は、インテグレーションに追加できるコネクションとして Kudu North が表示されます。

17.2. スキャンが Kudu テーブルからレコードを返すときにインテグレーションをトリガー

Kudu テーブルからデータを取得したときにインテグレーションの実行をトリガーするには、Kudu コネクションを最初のコネクションとしてシンプルなインテグレーションに追加します。インテグレーションの実行時、Kudu コネクションは指定の間隔で指定のテーブルをスキャンし、レコードのコレクションをインテグレーションの次のステップに渡します。

Kudu コネクションは 1 つのテーブルからのみデータを取得できます。スキャンの合間に、コネクションがスキャンするテーブルのデータに変更がない場合は、次のスキャンが同じデータを前回のスキャンとして返します。

前提条件

  • Kudu コネクションが作成されている必要があります。
  • レコードの取得元となるテーブルが存在する必要があります。

手順

  1. Fuse Online パネルの左側にある Integrations をクリックします。
  2. Create Integration をクリックします。
  3. Choose a connection ページで、インテグレーションを開始するために使用する Kudu コネクションをクリックします。
  4. Choose an action ページで Scan a Kudu table アクションを選択します。
  5. Table フィールドに、レコードを取得するテーブルの名前を入力します。
  6. Period フィールドで、デフォルトの 1 分を使用するか、コネクションがテーブルをスキャンし、テーブルのレコードを返す間隔を入力します。
  7. Next をクリックします。

結果

コネクションはシンプルなインテグレーションの最初のコネクションです。

次のステップ

インテグレーションの最後のコネクションと、インテグレーションに含まれるようにする他のコネクションを追加します。インテグレーションに必要なすべてのコネクションが含まれる場合、Kudu コネクションが返すレコードのコレクションを分割する必要があるかどうか検討します。Kudu テーブルから取得した各レコードのインテグレーションステップを実行する場合、Kudu コネクションの後に分割ステップを追加します。また、インテグレーションの後続のコネクションで Kudu から取得したデータをフィールドにマップするデータマッピングステップで、Kudu コネクションにしたがう必要がある可能性が高くなります。

17.3. Kudu テーブルへのレコードの挿入

インテグレーションでは、フローの途中で Kudu テーブルにレコードを追加したり、シンプルなインテグレーションを終了するために Kudu テーブルにレコードを追加することができます。これには、Kudu コネクションをフローの途中に追加するか、シンプルなインテグレーションの最後のコネクションとして追加します。

前提条件

  • Kudu コネクションが作成されている必要があります。
  • インテグレーションを作成または編集することになります。Fuse Online でインテグレーションに追加するよう要求されます。または、Fuse Online で最後のコネクションを選択するよう要求されます。
  • レコードの追加先となるテーブルが存在する必要があります。

手順

  1. Add to Integration ページで、コネクションの追加先のプラス記号をクリックします。Fuse Online が最後のコネクションを選択するよう要求する場合は、このステップをスキップします。
  2. 使用する Kudu コネクションをクリックします。Kudu コネクションがデータを挿入するとき、コネクションは何も返さないことに注意してください。
  3. Choose an action ページで Insert data into a Kudu table を選択します。
  4. アクションを設定するには、Table フィールドでレコードの追加先となるテーブルの名前を指定します。

    レコードの追加先となる Kudu テーブルの設定方法を理解することが重要になります。たとえば、レコードの追加先となる Kudu テーブルには一意のキーがある可能性があります。テーブルにすでに存在するキー値が含まれるレコードを追加しようとしても、Kudu コネクションはそのレコードを追加しません。

  5. Next をクリックします。

結果

インテグレーションビジュアライゼーションで追加した場所にコネクションが表示されます。

次のステップ

レコードのコレクションを Kudu コネクションがテーブルに追加できる個別のレコードに分割する必要があるかどうかを検討します。これには、インテグレーションに分割ステップを追加します。分割ステップは、各レコードに対してインテグレーションの後続のステップを一度実行します。また、レコードとテーブルに追加する Kudu コネクションの前にデータマッパーステップが必要になる可能性が高いでしょう。