インジェスチョン管理¶
コネクタが構成されると、データのインジェスチョンを開始できます。ただし、通常は、ソースシステムからデータをインジェスチョンする前に、さらにいくつかの情報が必要になります。ほとんどのシステムでは、テーブル、リポジトリ、ファイル、レポートなど、少なくともある程度の粒度でデータが保存されます。 Snowflake Native SDK for Connectors では、元のシステムでの名前に関係なく、 resource
という用語が使用されます。リソースを識別し、そのインジェスチョンの設定をカスタマイズするために、 resource_ingestion_definitions
が使用されます。さらに、実際のインジェスチョンのプロセスは、複数の ingestion_runs
からなる ingestion_processes
に整理されます。この抽象化により、プロセスの追跡、スケジュール、差別化が容易になります。
要件¶
このセクションでは、ネイティブアプリのインストール中に、少なくとも次の SQL ファイルが実行される必要があります。
ingestion/ingestion_management.sql
ingestion/ingestion_definitions_view.sql
ingestion/ingestion_process.sql
ingestion/ingestion_run.sql
ingestion/resource_ingestion_definition.sql
リソースインジェスチョン定義¶
リソースインジェスチョン定義は、ソースシステム内のソースデータの定義を含む汎用エンティティです。可能な限り汎用性を保つために、システム固有のオプションは、基礎となる STATE.RESOURCE_INGESTION_DEFINITION
テーブルに variants
として保存されます。ただし、リポジトリ ResourceIngestionDefinitionRepository
のJava定義は、入力をより適切に制御するための汎用インターフェイスです。
リソースインジェスチョン定義のほとんどは実装中にカスタマイズできるため、汎用フィールドの使用方法を決定し、インジェスチョン中にそれらを活用するのは開発者の責任となります。
リソースインジェスチョン定義のもっとも重要なカスタマイズ可能なプロパティは次のとおりです。
parent_id
このオプションパラメーターを使用すると、リソース定義を相互にリンクして、たとえば構成の一部を継承できます。
resource_id
この variant
はソースシステム内のリソースの識別を可能にするもので、一意である必要があります。
ingestion_configurations
このプロパティはインジェスチョンの実際の構成であり、各定義には複数の構成を含めることができます。たとえば、何らかの理由で同じリソースを2つの異なるスケジュールでインジェスチョンする必要がある場合や、複数のシンクのテーブルに保存する必要がある場合などです。このプロパティには必須フィールドがいくつかありますが、カスタム構成とデータの送信先を定義することに関しては、ある程度の柔軟性が確保されています。
resource_metadata
このプロパティには、上記のフィールドには適合しない、必要な追加情報が含まれている必要があります。
インジェスチョンプロセス¶
インジェスチョンプロセスは、定義されたリソースをインジェスチョンするプロセスを表すエンティティです。これは、リソースが追加または有効化されるとすぐに作成され、削除または無効化されると完了します。ある意味、オペレーティングシステムにおけるバックグラウンドプロセスのようなもので、特定の瞬間に実行されていても、必ずしも何らかの作業を行っているとは限りません。インジェスチョンが実際に実行されているときはいつでも、 IN_PROGRESS
状態に移行できます。それ以外の場合は、 SCHEDULED
状態のままになります。作業をディスパッチするときに、 scheduler
はすべての SCHEDULED
プロセスを取得し、それらのインジェスチョンを実行します。
インジェスチョンプロセスは、さまざまな種類のインジェスチョンを定義するためにも使用できます。たとえば、コネクタが毎日データをロードする中で、何らかの理由で古いデータの一部が破損しているため、リロードする必要がある場合などです。その場合は、新しいプロセス type
(RELOAD
など)を導入できます。次に、 scheduler
は、さまざまな種類のプロセスに対してさまざまな操作を実行するためのカスタムロジックを持つことができます。
インジェスチョン実行¶
インジェスチョン実行は、過去および進行中のインジェスチョンに関する情報を保存する別のエンティティです。ただし、このデータは ingestion_process
自体よりも詳細になっています。まず、インジェスチョン実行はログデータとして考慮する必要があります。次に、 ingestion_run
は、長時間実行されるプロセス中の単一の呼び出しのみを記述するエントリです。したがって、リソースが1日に1回インジェスチョンされる場合は、毎日新しいインジェスチョン実行エントリが存在する必要があります。これらすべてのエントリは単一のプロセスにリンクされます。
インジェスチョン管理操作¶
新しいリソースを追加する¶
リソース作成プロセスは、ソース・システムからのデータのインジェスチョンを定義し、スケジュールするために使用されます。与えられたリソースが最初に有効にされるべき場合、リソース インジェスチョン 定義記録と対応するインジェスチョン プロセスを作成します。
詳細については、 リソースの作成 をご参照ください。
リソースを表示する¶
設定されたリソース定義は、 PUBLIC.INGESTION_DEFINITIONS
のビューで調べることができます。ただし、このビューからは各リソースに関する基本的な情報のみが返されます。すべてのカスタム構成はエンドユーザーには表示されません。特に、一部のカスタム構成はコネクタのロジックによって内部的に生成される可能性があるためです。
リソースを無効化する¶
リソースの無効化ステップは、指定されたリソースのデータのインジェスチョンを停止するために使用されます。アクティブなインジェスチョンプロセスを終了し、リソースインジェスチョン定義を無効としてマークします。
詳細については、 リソースの無効化 をご参照ください。
リソースの有効化¶
リソースの有効化は、指定されたリソースのデータのインジェスチョンを開始するために使用されます。新しいインジェスチョンプロセスを作成し、リソースインジェスチョン定義を有効としてマークします。
詳細については、 リソースの有効化 をご参照ください。
リソースの更新¶
リソースの更新は、指定されたリソースのインジェスチョン設定を変更するために使用されます。リソースインジェスチョン定義を変更し、インジェスチョンプロセスを終了または新規作成します。
詳細については、 リソースの更新 をご参照ください。