チュートリアル: Snowflake Native SDK for Connectors のJavaコネクタの例

概要

Snowflake Native SDK for Connectors を使用して構築されたコネクタ例のチュートリアルへようこそ。このガイドでは、サンプルのコネクタをビルド、デプロイ、インストール、構成する方法を説明します。

提供された例のアプリケーションは、 GitHub API に接続し、指定されたリポジトリから課題に関する情報を引き出すことで、 GitHub 課題データを取り込みます。

このチュートリアルでは、次の方法を学習します。

  • ソースからのコネクタ例の構築

  • 新しいアプリケーションパッケージとバージョンのデプロイ

  • 新しいアプリケーション・インスタンスのインストール

  • データをインジェストするためのコネクタ・インスタンスの構成

前提条件

開始する前に、次の要件を満たしていることを確認してください。

  • Javaの基礎知識

  • Snowflake Native Appsの基礎知識

  • Streamlit UI の基礎知識

  • ACCOUNTADMIN ロールを持つ Snowflake アカウントへのアクセス

  • GitHub アカウントで、 GitHub アプリ を作成できます。

  • MacOS または Linux マシンでプロジェクトをビルドし、デプロイスクリプトを実行します。

ローカル環境の準備

クローニングを進める前に、必要なソフトウェアがすべてマシンにインストールされていることを確認し、サンプルのコネクタリポジトリをクローンする必要があります。

Javaのインストール

Snowflake Native SDK for Connectors Java LTS (Long-Term Support) バージョン11以上が必要です。お使いのマシンにJavaの最低必要バージョンがインストールされていない場合は、Oracle Javaまたは OpenJDK のいずれかをインストールする必要があります。

Oracle Java

JDK の最新リリース LTS は、Oracle NFTC のもと、無料でダウンロードし、コストなしで使用することができます。ダウンロードとインストール方法については、 Oracle のページ をご覧ください。

OpenJDK

OpenJDK はJavaのオープンソース実装です。ダウンロードおよびインストール方法については、 openjdk.org および jdk.java.net をご参照ください。

Eclipse TemurinAmazon Corretto など、サードパーティのOpenJDK バージョンを使用することもできます。

リポジトリのクローニング

connectors-native-sdk リポジトリをあなたのマシンにクローンします。

Snowflake CLI の構成

コネクタのビルド、デプロイ、インストールには、 Snowflake CLI ツールが必要です。お使いのマシンに Snowflake CLI がインストールされていない場合は、 こちら の指示に従ってインストールしてください。

ツールのインストール後、 構成ファイル で Snowflake への接続を構成する必要があります。

接続が構成されていない場合は、 native_sdk_connection という名前の接続を新規に作成してください。 deployment/snowflake.toml ファイルに接続例があります。

すでに接続が構成されていて、それをコネクタで使用したい場合は、このチュートリアルでこの接続を使用するときは、 native_sdk_connection の代わりにその名前を使用してください。

プロジェクト構造

Snowflake Native SDK for Connectors プロジェクトはいくつかの主要な要素で構成されています。

コネクタ ネイティブ SDK Java

connectors-native-sdk-java ディレクトリには、 Snowflake Native SDK for Connectors のすべての Java コードと、 SDK コンポーネントのユニットテストと統合テストが含まれています。Snowflake上のNative Appsの性質上、Javaコードだけでなく、動作するアプリケーションを作成するために必要な SQL コードも含まれます。データベースオブジェクトの定義は src/main/resources ディレクトリにあります。これらのファイルは、アプリケーションを作成する際に、アプリケーション内でどのオブジェクトを可用性にするかをカスタマイズするために使用されます。コネクタの例では、 all.sql ファイルを使用します。 ファイルでは、すべての可用性のオブジェクトが作成されます。このファイルはアプリケーションインスタンスのインストールプロセス中に実行されます。

コネクタ ネイティブ SDK Test Java

connectors-native-sdk-test-java ディレクトリには、ユニットテストで使用するヘルパーライブラリのソースコードが格納されています。 たとえば、特定のコンポーネントをモックするためのオブジェクトや、 カスタムアサーションなどです。これらのファイルはコネクタアプリケーションの一部ではありません。

Java GitHub コネクタの例

実際のサンプルコネクタは examples/connectors-native-sdk-example-java-github-connector ディレクトリにあります。 app/ ディレクトリには、Native Apps の実行に必要なすべてのファイルが含まれています。

  • app/streamlit/ ディレクトリには、コネクタの Streamlit UI を実行するために必要なソースファイルが含まれています。

  • setup.sql ファイルはアプリケーションのインストール中に実行され、必要なデータベースオブジェクトを作成します。このファイルは、前述の all.sql ファイルと、いくつかのカスタムSQLコードを実行します。

  • manifest.yml ファイルは Native Apps のマニフェストです。アプリケーション・パッケージを作成し、次にアプリケーション・インスタンス自体を作成する必要があります。このファイルはアプリケーションのプロパティと、アプリケーションが必要とするパーミッションを指定します。

さらに、 examples/connectors-native-sdk-example-java-github-connector ディレクトリには、 src/ サブディレクトリが含まれています。このサブディレクトリには、必要なクラスの実装やデフォルトの SDK コンポーネントのカスタマイズなどのカスタム コネクタ ロジックが含まれています。

コネクタ ネイティブ SDK Template

Snowflake Native SDK for Connectors を依存関係として使用し、新しいコネクタを素早くビルドするのに役立つ Gradle Java プロジェクトのテンプレートです。詳しくは チュートリアル: Snowflake Native SDK for Connectors のJavaコネクタテンプレート をご覧ください。

ビルド、デプロイ、インストール

以下のセクションでは、サンプルのコネクタをビルド、デプロイ、インストールする方法を説明します。

コネクタの作成

Snowflake Native SDK for Connectors を使用して作成されたコネクタの構築は、一般的な Java アプリケーションの構築とは少し異なります。ソースから.jarアーカイブをビルドするだけでなく、やらなければならないことがいくつかあります。アプリケーションの構築は以下の手順で行います。

  1. カスタム内部コンポーネントのビルドディレクトリへのコピー

  2. コンポーネントのビルドディレクトリへ SDK をコピーする

内部コンポーネントのコピー

このステップでは、コネクタ .jar ファイルをビルドし、それを(UI、マニフェストおよびセットアップ ファイルとともに) sf_build ディレクトリにコピーします。

このステップを実行するには、コマンドを実行します: ./gradlew copyInternalComponents.

SDK コンポーネントのコピー

このステップでは、 SDK .jarファイル(コネクタGradleモジュールの依存関係として追加)を sf_build ディレクトリにコピーし、.jarアーカイブからバンドルされた.sqlファイルを抽出します。

これらの.sqlファイルによって、アプリケーションのインストール中にどのプロバイダーオブジェクトが作成されるかをカスタマイズすることができます。オブジェクトの省略は、間違って実行するといくつかの機能を失敗させる可能性があるため、初めてのユーザーにはカスタマイズをお勧めしません。サンプルのコネクタアプリケーションは all.sql ファイルを使用し、推奨される SDK オブジェクトをすべて作成します。

このステップを実行するには、コマンドを実行します: ./gradlew copySdkComponents.

コネクタの展開

Native Appsをデプロイするには、Snowflake内でアプリケーションパッケージを作成する必要があります。その後、 sf_build ディレクトリのすべてのファイルを Snowflake にアップロードする必要があります。

アプリケーションインスタンスはステージングされたファイルから直接作成できます。このアプローチでは、バージョンとアプリケーションのインスタンスを再作成することなく、ほとんどのコネクタファイルの変更を確認できます。

以下の演算子を行います。

  1. アプリケーションパッケージがまだ存在しない場合は、新しいアプリケーションパッケージを作成します。

  2. パッケージ内にスキーマとステージングされたファイルを作成します。

  3. sf_build ディレクトリからステージにファイルをアップロードします(このステップには時間がかかる場合があります)。

コネクタをデプロイするには、コマンドを実行します: snow app deploy --connection=native_sdk_connection.

snow app deploy コマンドの詳細については、 snow app deploy をご参照ください。

作成されたアプリケーションパッケージは、アカウントの Snowflake UI の App packages タブの Data products カテゴリに表示されます。

アプリパッケージ表示

コネクタをインストールする

アプリケーションのインストールはプロセスの最後のステップです。先に作成したアプリケーションパッケージからアプリケーションを作成します。

コネクタをインストールするには、コマンドを実行します: snow app run --connection=native_sdk_connection.

snow app run コマンドの詳細については、 snow app run をご参照ください。

インストールされたアプリケーションは、アカウントの Snowflake UI の Data products カテゴリにある Installed apps タブに表示されます。

インストール済みアプリ表示

コネクタファイルの更新

コネクタファイルを変更したい場合は、変更したファイルをアプリケーションパッケージのステージに簡単にアップロードできます。アップロードコマンドは、どのファイルが更新されたかに依存します。

アップデートコマンドを実行する前に、 sf_build ディレクトリにコネクタの新しいファイルをコピーする必要があります。 ./gradlew copyInternalComponents

UI .pyファイルまたはコネクタ.javaファイル

snow app deploy --connection=native_sdk_connection コマンドを使用すると、現在のアプリケーション・インスタンスは再インストールせずに新しいファイルを使用します。

setup.sql または manifest.yml ファイル

snow app run --connection=native_sdk_connection コマンドを使用すると、新しいファイルがステージにアップロードされた後、現在のアプリケーションインスタンスが再インストールされます。

コネクタフロー

コネクタの構成とデータの取り込みに移る前に、コネクタが実際にどのように機能するかを簡単に見ておきましょう。以下に、このチュートリアルの次のステップで完了するすべての手順を示します。出発点は、前提条件を満たしてウィザードを通過することです。

コネクタのウィザードステージでは、コネクタに必要なすべての構成についてユーザーをガイドします。日常使用ステージでは、ユーザーは統計の表示、取り込みのためのリポジトリの構成、コネクタの一時停止/再開を行うことができます。

コネクタフロー概要

構成ウィザード

アプリケーションを開くと、ウィザード UI ページが開きます。コネクタは、データのインジェストを開始する前に、ユーザーから提供されるいくつかの情報を必要とします。ウィザードは、アプリケーション自体だけでなく、Snowflakeアカウント全体、場合によってはインジェストされたデータのソースとなる外部システム(大文字と小文字、この場合は GitHub)上でも、必要なすべてのステップをガイドします。これらの手順がすべて完了すると、コネクタはデータの取り込みを開始する準備が整います。

前提条件

ウィザードの最初のステップは前提条件です。このステップでは、コネクタを構成する前に準備すべきリストを提供します。前提条件を完了する必要はありませんが、後の構成プロセスをよりスムーズにするために、完了することをお勧めします。

GitHub 大文字と小文字のコネクタの場合、先に進む前に注意しなければならないことが2つあります。

  1. GitHub アカウントの準備

  2. インジェストしたい GitHub リポジトリへのアクセスを確認します。

前提条件

コネクター構成

ウィザードの次のステップはコネクタの構成です。このステップでユーザーは以下のことができます。

  • Native Apps Permission SDK を使用してリクエストされたアプリケーション権限を付与します。

  • インジェストタスクのスケジュール時に参照するウェアハウスを選択します。

  • インジェストされるデータの保存先データベースとスキーマを選択します。

権限

アプリケーションの操作には、 CREATE DATABASEEXECUTE TASK の2つのアカウントレベルの権限が必要です。

最初の権限は、インジェストされたデータの保存先データベースを作成するために必要です。アプリケーションをアンインストールしても、取り込んだデータをそのまま残すことができるように、このデータベースはアプリケーションの外部に作成する必要があります。しかし、この例ではこの機能をサポートしておらず、常に新しいデータベースが作成されます。

2つ目の権限は、 GitHub からデータを取得し、保存先データベースに保存するタスクを定期的にスケジュールするために必要です。

これらの権限を付与するには、セキュリティ・タブを使用するか、コネクタ構成画面で Grant privileges ボタンを押します。後者は画面にポップアップが表示されます。

権限

ウェアハウス リファレンス

コネクタは、インジェスチョン タスクを実行しスケジュールするウェアハウスを必要とします。アプリケーションは リファレンス を通してウェアハウスを使用します。ウェアハウスのリファレンスは manifest.yml ファイルで定義されています。

references:
  - WAREHOUSE_REFERENCE:
      label: "Warehouse used for ingestion"
      description: "Warehouse which will be used to schedule ingestion tasks"
      privileges: [USAGE]
      object_type: WAREHOUSE
      register_callback: PUBLIC.REGISTER_REFERENCE
Copy

リファレンスは、上記の権限と同じセキュリティタブを使うか、 Choose warehouse ボタンを押すことでセットできます。

ウェアハウス リファレンス

デスティネーション・データベースとスキーマ

前述したように、コネクタは取り込んだデータを保存するデータベースを必要とします。このデータベースは、後のステップでユーザーが指定したスキーマで作成されます。提供されたデータベースが既に存在しない限り、データベースの名前はユーザー次第です。

コネクタの構成が完了すると、このような画面になります。

コネクタ構成画面

接続構成

ウィザードの次のステップは接続構成です。このステップでは、ユーザーは外部データソースへの接続をセットアップできます。ユーザー/パスワードや平文トークンを使用する代わりに、可能な限り OAuth2 認証コードを使用することをお勧めします。

GitHub は現在、 OAuth2 認証コードとして、 OAuth アプリと GitHub アプリの2種類をサポートしています。OAuth アプリのセットアップと使用はビット簡単ですが、同じレベルの権限制御の粒度を提供しません。この例では、 GitHub アプリを使用することをお勧めしますが、 OAuth アプリを使用する場合でも、コネクタは意図したとおりに動作します。

パーミッション SDK セットアップ

OAuth2 認証コードには、セキュリティ統合、シークレット、外部アクセス統合をユーザーアカウントに作成する必要があります。当社のコネクタは、 Native Apps Permission SDK を使用して、これらのオブジェクトの作成をリクエストします。

コネクタが必要とする外部アクセス統合とシークレットのリファレンスは、 manifest.yml ファイルで定義します。

references:
  - GITHUB_EAI_REFERENCE:
      label: "GitHub API access integration"
      description: "External access integration that will enable connection to the GitHub API using OAuth2"
      privileges: [USAGE]
      object_type: "EXTERNAL ACCESS INTEGRATION"
      register_callback: PUBLIC.REGISTER_REFERENCE
      configuration_callback: PUBLIC.GET_REFERENCE_CONFIG
  - GITHUB_SECRET_REFERENCE:
      label: "GitHub API secret"
      description: "Secret that will enable connection to the GitHub API using OAuth2"
      privileges: [READ]
      object_type: SECRET
      register_callback: PUBLIC.REGISTER_REFERENCE
      configuration_callback: PUBLIC.GET_REFERENCE_CONFIG
Copy

さらに、 setup.sql ファイルに特別なプロシージャを追加する必要があります。上記で紹介した各リファレンスの configuration_callback プロパティで参照されています。

CREATE OR REPLACE PROCEDURE PUBLIC.GET_REFERENCE_CONFIG(ref_name STRING)
    RETURNS STRING
    LANGUAGE SQL
    AS
        BEGIN
            CASE (ref_name)
                WHEN 'GITHUB_EAI_REFERENCE' THEN
                    RETURN OBJECT_CONSTRUCT(
                        'type', 'CONFIGURATION',
                        'payload', OBJECT_CONSTRUCT(
                            'host_ports', ARRAY_CONSTRUCT('api.github.com'),
                            'allowed_secrets', 'LIST',
                            'secret_references', ARRAY_CONSTRUCT('GITHUB_SECRET_REFERENCE')
                        )
                    )::STRING;
                WHEN 'GITHUB_SECRET_REFERENCE' THEN
                    RETURN OBJECT_CONSTRUCT(
                        'type', 'CONFIGURATION',
                        'payload', OBJECT_CONSTRUCT(
                            'type', 'OAUTH2',
                            'security_integration', OBJECT_CONSTRUCT(
                                'oauth_scopes', ARRAY_CONSTRUCT('repo'),
                                'oauth_token_endpoint', 'https://github.com/login/oauth/access_token',
                                'oauth_authorization_endpoint', 'https://github.com/login/oauth/authorize'
                            )
                        )
                    )::STRING;
                ELSE
                    RETURN '';
            END CASE;
        END;
Copy

外部アクセス統合のリファレンスについては、プロシージャが提供します。

  • host_ports - インジェスト時にアクセスする外部データソースのホスト名。

  • secret_references - OAuth シークレットへのリファレンスの名前の配列。

  • allowed_secrets - LISTsecret_references フィールドで指定されたシークレットを使用するよう、Permission SDK に伝える。

シークレットのリファレンスについては、プロシージャが提供します。

  • シークレットの大文字と小文字の場合の type - OAUTH2

  • security_integration - 作成されたセキュリティ統合のプロパティ

    • oauth_scopes - コネクターがリクエストする OAuth スコープのリスト(GitHub アプリを使用する場合、このフィールドはオプションです。)

    • oauth_token_endpoint - リフレッシュとアクセストークンの取得元エンドポイント

    • oauth_authorization_endpoint - 認可リクエストを送信するエンドポイント。

GitHub アプリ設定

次のステップは、ユーザーアカウントに GitHub アプリのセットアップです。このアプリは、データを取り込むことができるように、アカウントへの限定的なアクセスを許可するために使用されます。

最初のステップは、コネクタ UI の Request access ボタンを押すことです。

OAuth アクセスをリクエスト

最初の画面では、外部接続を許可するエンドポイントを確認できます。

EAI エンドポイントを確認

Next を押すと、2つ目の画面が表示されます。 OAuth2 を選択して新しい統合とシークレットを作成し、提供されたリダイレクト URL をコピーします。リダイレクトには組織名とアカウントのリージョンが含まれます。

OAuth リダイレクト URL

次に、 GitHub のアカウント設定ページに行き、 Developer settings > GitHub Apps に入り、 New GitHub App ボタンを押してください。

  1. アプリの名前とホームページ URL を入力してください。

  2. コピーしたリダイレクト URL を Callback URL フィールドに貼り付けます。

  3. Expire user authorization tokens オプションが選択されていることを確認してください。

  4. Request user authorization (OAuth) during installation が選択されていないことを確認してください。

  5. 不要な場合は、 Webhook セクションの Active オプションの選択を解除してください。

  6. コネクタの動作に必要な権限を選択します。

    1. Read-only アクセスで Repository permissions > Issues

    2. Read-only アクセスで Repository permissions > Metadata

  7. このコネクタの例では、アプリを自分だけが使用する場合、インストールアクセスセクションで Only on this account を選択するのが最適です。

アプリケーションが作成されたら、左サイドバーの Install app オプションを押し、アプリケーションをアカウントにインストールしてください。アプリ(ひいてはコネクタ)がアクセスできるリポジトリを選択できます。このインストールを行わないと、コネクタはパブリック・リポジトリにしかアクセスできません。

OAuth 統合セットアップ

インストール後、 GitHub アプリに戻り、新しいクライアントシークレットを生成します。二度と表示されませんので、すぐにコピーしてください。コネクタの OAuth 構成ポップアップにクライアント・シークレットを貼り付けます。最後に、アプリケーションのクライアント ID (app ID ではなく)をコピーし、コネクタの OAuth 構成ポップアップにも貼り付けます。

OAuth 設定

Connect を押すと、 GitHub ウィンドウがポップアップし、 GitHub アカウントでアプリの認証を求められます。認証後、自動的にコネクタ UI にリダイレクトされます。認証に成功すると(認証が完了し、ポップアップが閉じるまで数秒かかる場合があります)、ページに外部アクセス統合の IDs、シークレットリファレンスが入力されます。

接続構成画面

Connect ボタンを押すと、コネクタ内部の TEST_CONNECTION プロシージャがトリガーされます。このプロシージャでは、 GitHub API octocat エンドポイント へのアクセスを試み、外部接続が正しく構成され、 OAuth アクセストークンが正しく取得されたかどうかをチェックします。

テストが成功すると、アプリケーションは最終化ステップに進みます。

構成のファイナライズ

ファイナライズはウィザードの最後のステップです。このステップでは、組織とリポジトリ名を入力するよう求められます。このリポジトリには、接続構成ステップで取得した OAuth トークンでアクセスできなければなりません。提供されたリポジトリは、接続検証の目的でのみ使用されます。

これは前のステップとは少し違い、 TEST_CONNECTION プロシージャは GitHub API がアクセス可能で、提供されたトークンが有効かどうかをチェックするだけだからです。

最終化ステップでは、ユーザーから提供されたリポジトリが、提供された GitHub API トークンでアクセスできることを確認します。トークンにリポジトリへのアクセス許可がない場合は失敗します。プライベートリポジトリからデータを取り込みたい場合は、正しく動作することを確認するために、プライベートリポジトリを使用して構成を確定することをお勧めします。

さらに、このステップでは、コネクタ構成フェーズで指定されたデータベースとスキーマが最終的にアカウントに作成されます。

構成画面の確定

日常の使用

構成ウィザードが正常に完了したら、 GitHub コネクタの使用を開始できます。

次のステップで説明します。

  • データを取り込むリソースの構成方法

  • 摂取プロセスの仕組み

  • インジェストされた記録の統計を表示する方法

  • インジェストされたデータの表示方法

  • コネクタの一時停止と再開方法

リソースの構成

リソースを構成するには、 Data Sync タブを開きます。このタブには、取り込み用に構成済みのリポジトリのリストが表示されます。初めて開くときはリストは空です。

リソースを構成するには、指定されたフィールドに組織名とリポジトリ名を入力し、 Queue ingestion ボタンを押します。例:

リソースの定義

新しいリソースの定義は保存され、グローバルスケジュールに従ってスケジューラによってピックアップされます。 データがインジェストされ、シンク・テーブルに表示されるまでには時間がかかります。 下のテーブルに表示されます。

定義されたリソースのリスト

インジェスチョン スケジュールとステータス

Data Sync タブの上部には、摂取に関する一般的な情報を含むセクションがあります。このセクションでは、ユーザーが構成リソースを取り込むグローバルスケジュールを確認できます。右下のラベルは現在のインジェスチョン ステータスを示しています。最初は、最初のリソースが定義されるまで、 NOT SYNCING の状態が表示されます。その後、 SYNCING に移行し、最後に少なくとも1つのリソースの取り込みが正常に終了すると、その取り込みの終了日が表示されます。

同期ステータス

インジェスチョンプロセス

インジェスチョン プロセスは、 Scheduler TaskTask Reactor コンポーネントを使用して処理されます。スケジューラはグローバル スケジュールに従って定義されたリソースをピックアップし、 Work Items として、キューに投入します。その後、 Dispatcher と呼ばれるタスクリアクターコンポーネントがそれらをピックアップし、定義された数のワーカーの間で分割します。各ワーカは、キューからアイテムをピックアップするごとに、実際のインジェスションを行います。

リソースの単一インジェストは、 GitHub API のエンドポイントからデータを取得し、シンクデータベースの指定されたテーブルに保存します。この例では、すべてのデータが実行ごとに取得され、その結果、新しい記録がテーブルに追加され、古い記録が更新されます。さらに、各 Work Item の実行には、開始日と終了日、取り込まれた行数、ステータスなどのデータを内部コネクタテーブルにログ記録することが含まれ、これらは統計目的で使用されます。

統計の表示

Home 画面には、過去に実行されたインジェストの統計が表示されます。データは PUBLIC.AGGREGATED_CONNECTOR_STATS ビューに基づいています。この表示は、インジェストされた行の数を、インジェストされた時間に基づいて集計します。この表示のデータは、ワークシートで実行されるクエリ(SELECT)を使用して取得することができます。この方法では、1時間以上のウィンドウで集計することもできます。

ワークシートから利用可能な別の表示があります - PUBLIC.CONNECTOR_STATS です。このデータを使って、ステータス、開始日と終了日、1秒あたりの平均取り込み行数、その他データ取り込みに関する情報を確認することができます。

摂取統計チャートの例:

インジェスチョンの統計

インジェストされたデータの表示

インジェストされたデータは、 UI では表示されませんが、 ADMIN または DATA_READER のロールを持つユーザーによって、特定のテーブルからクエリでデータを表示することができます。データを表示するには、 SQL のワークシートに移動し、目的のデータベースを選択するだけです。接続先データベースは、コネクタ構成ステップで定義された名前とスキーマを使用します。データを以下から SELECT できます。

  1. ISSUES テーブルは、以下の列を含みます。

    • ORGANIZATION

    • REPOSITORY

    • RAW_DATA

  2. ISSUES_VIEW ビューには、以下の列が表示されます。

    • ID

    • ORGANIZATION

    • REPOSITORY

    • STATE

    • TITLE

    • CREATED_AT

    • UPDATED_AT

    • ASSIGNEE

ISSUES_VIEW ビューに表示されるデータは、 ISSUES テーブルの raw_data 列から抽出されます。データを見るには、以下のクエリのいずれかを使用できます:

SELECT * FROM DEST_DATABASE.DEST_SCHEMA.ISSUES;

SELECT * FROM DEST_DATABASE.DEST_SCHEMA.ISSUES_VIEW;
Copy

一時停止と再開

コネクタはいつでも一時停止、再開が可能です。そのためには、 Data Sync タブの Pause ボタンを押してください。一時停止がトリガーされると、基になるスケジュールと作業実行メカニズムは無効になります。しかし、アクティブなインジェスト作業は、コネクタが実際に PAUSED の状態になる前に終了します。そのため、コネクタが完全に一時停止するまでに数分かかることがあります。

コネクタを再開するには、 Pause ボタンの代わりに表示される Resume ボタンを押します。これによりスケジューリングタスクが再開され、新しい Work Items のキューイングが開始されます。

一時停止コネクタ

コネクタの設定

構成が終了すると、 Settings というタブが使用可能になります。このタブでは、ユーザーは現在のコネクタと接続構成を確認できます。このタブのデータは、基になる APP_CONFIG 構成テーブルから抽出され、読み取り専用です。

コネクタ構成セット
接続構成設定

トラブルシューティング

コネクタに問題が発生した場合、テーブルが作成されアカウントにセットされていれば、 event table ログに表示されます。

Native Apps での event table 、イベントログ、イベント共有の有効化と使用に関する詳細は、ドキュメントに記載されています。

クリーンアップ

チュートリアル終了後、「日常使用」のセクションで説明したようにコネクタを一時停止するか、コマンドを使用してアカウントから完全に削除することができます。

snow app teardown --connection=native_sdk_connection --cascade --force

--cascade オプションは、アカウント管理者に所有権を移さずに移行先データベースを削除するために必要です。実際のコネクタでは、取り込まれたデータを保持するためにデータベースを削除すべきではありません。データベースは、アカウント管理者が所有するか、アンインストール前に所有権を譲渡する必要があります。

クリーンアップ部分がスキップされた場合、たとえインジェストにリポジトリが構成されていなくても、一時停止または削除されるまで、サンプルのコネクタはクレジットを消費します!

カスタマイズ

このチュートリアルでは、 Snowflake Native SDK for Connectors を使用して構築されたコネクタの例を紹介しました。コネクタをカスタマイズする方法、またはゼロからコネクタを構築する方法の詳細については、こちらをご覧ください。