ネイティブアプリでの宣言共有:制限事項

宣言型共有はSnowflakeネイティブアプリの機能の1つであり、プロバイダーは単純な YAML 構成ファイルを使用して、複数のデータベースでオブジェクトをすばやく定義して共有することができます。この機能はデータ共有ワークフローを大幅に簡素化しますが、プロバイダーが実装する前に理解しておくべき制限があります。

サポートされているオブジェクト型

宣言型共有は、以下のオブジェクト型をサポートします。

  • テーブル

  • **安全なビュー**(マテライズドビューを含む)

  • ノートブック

他のすべてのオブジェクト型については、ネイティブアプリの宣言型共有での共有はサポートされていません。

Shared Objects

オブジェクトの制限

manifest.yml ファイルの共有コンテンツセクションには、最大1,000個のオブジェクトを定義できます。 この制限を増やすには、 `Snowflakeサポート `_ にお問い合わせください。

ノートブックの制限

Read-only for consumers

コンシューマーは、プロバイダーのノートブックをその場所で編集したり、クローンしたりすることはできません。

Network access

ノートブックがお客様のアカウントで実行されている場合、外部エンドポイントやコンシューマーデータにアクセスすることはできません。

Specialized libraries

地理空間およびその他のサードパーティライブラリは、ノートブックですぐに動作することが保証されていません。

External dependencies

宣言型共有アプリは、外部ライブラリ(Snowflake Anacondaチャネルおよびコードステージ内のPythonファイル)のサポートが制限されています。

非インタラクティブ実行

ネイティブアプリケーションの一部であるノートブックは、ワークシートや SQL コマンドによって非インタラクティブに実行することはできません。

セキュリティとアクセス制御

Role definition

共有コンテンツで参照されるすべてのアプリケーションロールは、マニフェストの roles フィールドで事前定義されている必要があります。

Object-level Roles

オブジェクトロールは、親スキーマロールのサブセットである必要があります。

Missing role validation

共有構成で参照されているロールが存在しない場合、マニフェストを検証するとエラーが返されます。

Minimum privileges

shared_content.yaml ファイルをコミットするプロバイダーロールには、少なくともコンシューマーに付与される権限と同じ権限が共有オブジェクトに対して必要です。

No REFERENCE_USAGE required

従来のデータ共有とは異なり、プロバイダーはアプリケーションパッケージに REFERENCE_USAGE 権限を付与する必要がありません。

移行および互換性

Declarative Sharing migration

ネイティブアプリでのデータ共有から宣言型共有に切り替えるための移行のサポートは利用できません。

命名および構成の制約

No wildcards

オブジェクト名は明示的に指定する必要があります。ワイルドカードまたは正規表現マッチングはサポートされていません。

Name collision prevention

2つの共有オブジェクトが同じ DOMAIN と名前を持つことはできません。

Schema mapping

スキーママッピングはサポートされていません。複数のデータベースからのスキーマ名の重複は許可されていません。

Monitoring

監査可能性

Declarative Native Apps は、共有データがどのように使用されているかについて、プロバイダーが消費者から情報を受け取るための監視リソース(監査証跡など)を提供しません。コンシューマーが監査を必要とするコンプライアンスや規制上の要件を持っている場合、コンシューマーはプロバイダーと協力して独自の監視ソリューションを実装する必要があります。