コネクタフィルタリングAPIの更新

この機能はベータ版であり、変更される可能性があります。設計とコードは公式GA機能よりも成熟しておらず、保証なしでそのまま提供されています。ベータ機能は公式GA機能のサポートSLAの対象外です。

コネクタのドラフト filtering 設定を更新し、ドラフトの検証状態を edited としてマークします。フィルタリングドラフトは、実行中のElasticコネクタサービスによって検証されるとアクティブになります。

フィルタリングプロパティは、コネクタの同期ルール(基本および高度な両方)を構成するために使用されます。詳細は同期ルールのドキュメントを参照してください。

コネクタAPIを始めるには、チュートリアルをチェックしてください。

リクエスト

PUT _connector/<connector_id>/_filtering

前提条件

  • 自己管理コネクタを使用してデータを同期するには、独自のインフラストラクチャにElasticコネクタサービスをデプロイする必要があります。このサービスは、ネイティブコネクタ用にElastic Cloud上で自動的に実行されます。
  • connector_id パラメータは、既存のコネクタを参照する必要があります。
  • フィルタリングドラフトは、実行中のElasticコネクタサービスによって検証されるとアクティブになり、draft.validation.statevalid である必要があります。
  • 検証試行後に draft.validation.stateinvalid に等しい場合は、draft.validation.errors を確認し、問題を修正してください。

パスパラメータ

  • <connector_id>
  • (必須、文字列)

リクエストボディ

  • rules
  • (オプション、オブジェクトの配列)基本同期ルールの配列で、各ルールには以下のサブ属性があります:
    • id (必須、文字列)
      ルールの一意の識別子。
    • policy (必須、文字列)
      include または exclude のようなポリシーを指定します。
    • field (必須、文字列)
      このルールが適用されるドキュメント内のフィールド。
    • rule (必須、文字列)
      regexstarts_withends_withcontainsequals<> などのルールのタイプ。
    • value (必須、文字列)
      ドキュメントのフィールドの内容と一致させるためにルールと共に使用される値。
    • order (必須、数値)
      ルールが適用される順序。最初に一致したルールがそのポリシーを適用されます。
    • created_at (オプション、日時)
      ルールが追加されたタイムスタンプ。デフォルトは now UTC タイムスタンプです。
    • updated_at (オプション、日時)
      ルールが最後に編集されたタイムスタンプ。デフォルトは now UTC タイムスタンプです。
  • advanced_snippet
  • (オプション、オブジェクト)クエリ時の高度なフィルタリングに使用され、以下のサブ属性があります:
    • value (必須、オブジェクトまたは配列)
      高度なフィルタリングのためにコネクタに直接渡されるJSONオブジェクト/配列。
    • created_at (オプション、日時)
      このJSONオブジェクトが作成されたタイムスタンプ。デフォルトは now UTC タイムスタンプです。
    • updated_at (オプション、日時)
      このJSONオブジェクトが最後に編集されたタイムスタンプ。デフォルトは now UTC タイムスタンプです。

レスポンスコード

  • 200
  • コネクタドラフトフィルタリングが正常に更新されました。
  • 400
  • connector_id が提供されていないか、リクエストペイロードが不正です。
  • 404 (リソースが不足しています)
  • connector_id に一致するコネクタが見つかりませんでした。

次の例は、ID my-g-drive-connector のGoogle Driveコネクタのドラフト基本同期ルールを更新します。.txt 拡張子を持つすべてのGoogle Driveファイルはスキップされます。

Python

  1. resp = client.connector.update_filtering(
  2. connector_id="my-g-drive-connector",
  3. rules=[
  4. {
  5. "field": "file_extension",
  6. "id": "exclude-txt-files",
  7. "order": 0,
  8. "policy": "exclude",
  9. "rule": "equals",
  10. "value": "txt"
  11. },
  12. {
  13. "field": "_",
  14. "id": "DEFAULT",
  15. "order": 1,
  16. "policy": "include",
  17. "rule": "regex",
  18. "value": ".*"
  19. }
  20. ],
  21. )
  22. print(resp)

Js

  1. const response = await client.connector.updateFiltering({
  2. connector_id: "my-g-drive-connector",
  3. rules: [
  4. {
  5. field: "file_extension",
  6. id: "exclude-txt-files",
  7. order: 0,
  8. policy: "exclude",
  9. rule: "equals",
  10. value: "txt",
  11. },
  12. {
  13. field: "_",
  14. id: "DEFAULT",
  15. order: 1,
  16. policy: "include",
  17. rule: "regex",
  18. value: ".*",
  19. },
  20. ],
  21. });
  22. console.log(response);

コンソール

  1. PUT _connector/my-g-drive-connector/_filtering
  2. {
  3. "rules": [
  4. {
  5. "field": "file_extension",
  6. "id": "exclude-txt-files",
  7. "order": 0,
  8. "policy": "exclude",
  9. "rule": "equals",
  10. "value": "txt"
  11. },
  12. {
  13. "field": "_",
  14. "id": "DEFAULT",
  15. "order": 1,
  16. "policy": "include",
  17. "rule": "regex",
  18. "value": ".*"
  19. }
  20. ]
  21. }

コンソール-結果

次の例は、ID my-sql-connector のMySQLコネクタのドラフト高度な同期ルールを更新します。高度な同期ルールは各コネクタタイプに特有です。高度な同期ルールをサポートするコネクタのリファレンスを参照して、構文と例を確認してください。

Python

  1. resp = client.connector.update_filtering(
  2. connector_id="my-sql-connector",
  3. advanced_snippet={
  4. "value": [
  5. {
  6. "tables": [
  7. "users",
  8. "orders"
  9. ],
  10. "query": "SELECT users.id AS id, orders.order_id AS order_id FROM users JOIN orders ON users.id = orders.user_id"
  11. }
  12. ]
  13. },
  14. )
  15. print(resp)

Js

  1. const response = await client.connector.updateFiltering({
  2. connector_id: "my-sql-connector",
  3. advanced_snippet: {
  4. value: [
  5. {
  6. tables: ["users", "orders"],
  7. query:
  8. "SELECT users.id AS id, orders.order_id AS order_id FROM users JOIN orders ON users.id = orders.user_id",
  9. },
  10. ],
  11. },
  12. });
  13. console.log(response);

コンソール

  1. PUT _connector/my-sql-connector/_filtering
  2. {
  3. "advanced_snippet": {
  4. "value": [{
  5. "tables": [
  6. "users",
  7. "orders"
  8. ],
  9. "query": "SELECT users.id AS id, orders.order_id AS order_id FROM users JOIN orders ON users.id = orders.user_id"
  10. }]
  11. }
  12. }

コンソール-結果

ドラフト rulesadvanced_snippet を単一のリクエストで更新することもできます。

ドラフトが更新されると、その検証状態は edited に設定されます。コネクタサービスはその後、ルールを検証し、検証状態を invalid または valid として報告します。状態が valid の場合、ドラフトフィルタリングは実行中のElasticコネクタサービスによってアクティブになります。