Datenfreigabe mit App-Spezifikationen anfordern¶
In diesem Thema wird beschrieben, wie Sie die Spezifikationen einer Snowflake Native App konfigurieren, um die Berechtigung anzufragen, Daten mit Anbietenden oder Dritten über Freigabeangebote freizugeben. Dies ermöglicht Anwendungsfälle wie Compliance-Berichterstattung, Telemetriefreigabe und Datenvorverarbeitung.
Workflow zur App-Spezifikation für die Freigabe von Daten¶
Die Konfiguration einer App für die Freigabe von Daten mithilfe von Freigabeangeboten erfolgt in diesem allgemeinen Workflow:
Anbieter konfigurieren Automatisiertes Gewähren von Berechtigungen für die App. Damit können Verbrauchende einer App die Berechtigung erteilen, Freigaben und Freigabeangebote zu erstellen.
Bemerkung
App-Spezifikationen erfordern, dass
manifest_version = 2in der Manifest-Datei festgelegt wird.Anbietende fügen die Berechtigungen CREATE SHARE und CREATE LISTING für die Manifest-Datei hinzu.
Anbieter fügen dem Setup-Skript SQL-Anweisungen hinzu, um die folgenden Objekte nach Bedarf zu erstellen:
Das Setup-Skript erstellt die Freigabe und das Freigabeangebot, wenn die App installiert oder aktualisiert wird. Die App-Spezifikation kann während der Einrichtung oder zur Laufzeit über eine gespeicherte Prozedur erstellt werden.
Beim Konfigurieren der App überprüfen und genehmigen die Verbrauchenden die Zielkonten und die Einstellungen für die automatische Ausführung des Freigabeangebots. Die Einstellungen für die automatische Ausführung gelten nur für die regionsübergreifende Freigabe. Weitere Informationen darüber, wie Verbrauchende App-Spezifikationen anzeigen und genehmigen, finden Sie unter Verbindungen zu externen Ressourcen mit App-Spezifikationen genehmigen.
Definition der App-Spezifikation für die Freigabe von Daten¶
Für eine App-Spezifikation des Typs LISTING enthält die Definition der App-Spezifikation die folgenden Einträge:
TARGET_ACCOUNTS: Eine durch Kommas getrennte Liste von Zielkonten, für die Daten freigegeben werden sollen, in einfache Anführungszeichen gesetzt. Jedes Konto muss im FormatOrgName.AccountNameangegeben werden; zum Beispiel:'ProviderOrg.ProviderAccount,PartnerOrg.PartnerAccount'.LISTING: Der Bezeichner des von der App erstellten Freigabeangebotsobjekts.AUTO_FULFILLMENT_REFRESH_SCHEDULE: Optional. Der Aktualisierungszeitplan für die regionenübergreifende Datenfreigabe. Kann als<num> MINUTEoderUSING CRON <expression>angegeben werden.
Bemerkung
Der Name des Freigabeangebots in der App-Spezifikation muss mit einem bestehenden Freigabeangebot übereinstimmen, das von der App erstellt wurde. Nachdem dies eingestellt ist, kann der Name des Freigabeangebots nicht mehr geändert werden.
Die Version der Manifest-Datei festlegen¶
Um das automatisierte Gewähren von Berechtigungen für eine App zu aktivieren, legen Sie die Version am Anfang der Manifest-Datei fest, wie im folgenden Beispiel gezeigt:
manifest_version: 2
Ein externes Freigabeangebot erstellen¶
Um ein externes Freigabeangebot zu erstellen, das der Freigabe angehängt ist, fügen Sie dem Setup-Skript den Befehl CREATE LISTING hinzu, wie im folgenden Beispiel gezeigt:
CREATE EXTERNAL LISTING compliance_listing SHARE compliance_share AS $$ title: "Compliance Data Share" subtitle: "Regulatory compliance reporting data" description: "Share compliance and audit data with authorized accounts" listing_terms: type: "OFFLINE" $$ PUBLISH = FALSE REVIEW = FALSE;
Bemerkung
Apps können einem Freigabeangebot nur Freigaben, aber keine Anwendungspakete hinzufügen.
Apps können Zielkonten oder die Konfiguration für die automatische Auftragsausführung nicht direkt zum Freigabeangebot hinzufügen.
Das Freigabeangebots-Manifest kann nur die folgenden Eigenschaften enthalten: Titel, Untertitel, Beschreibung und Bedingungen für das Freigabeangebot.
Alle neuen Freigabeangebote müssen in einem unveröffentlichten Zustand erstellt werden, die sowohl PUBLISH als auch REVIEW enthalten und auf FALSE festgelegt sind.
Titel und Beschreibung des Freigabeangebots können auf der Grundlage der Informationen des Verbrauchenden angepasst werden, sodass Anbietende Datenquellen unterscheiden können.
Eine App-Spezifikation für ein Freigabeangebot erstellen¶
Um eine App-Spezifikation für ein Freigabeangebot zu erstellen, folgen Sie diesem Beispiel:
ALTER APPLICATION SET SPECIFICATION shareback_spec TYPE = LISTING LABEL = 'Compliance Data Sharing' DESCRIPTION = 'Share compliance data with provider for regulatory reporting' TARGET_ACCOUNTS = 'ProviderOrg.ProviderAccount,AuditorOrg.AuditorAccount' LISTING = compliance_listing AUTO_FULFILLMENT_REFRESH_SCHEDULE = '720 MINUTE';Dieser Befehl erstellt eine App-Spezifikation mit dem Namen
shareback_spec, die die Berechtigung anfordert, Daten für die angegebenen Zielkonten freizugeben.
Für die regionenübergreifende Freigabe ist der Parameter
AUTO_FULFILLMENT_REFRESH_SCHEDULEerforderlich. Sie können ihn auf einen der folgenden Werte einstellen:'<num> MINUTE': Anzahl der Minuten, mit einem Minimum von 10 Minuten,und maximal 8 Tage oder 11.520 Minuten (acht Tage)
'USING CRON <expression> <time_zone>': Cron-Ausdruck mit Zeitzone
Bemerkung
Die App sollte die App-Spezifikation erst erstellen, nachdem das Freigabeangebot und die Freigabeobjekte vorhanden sind.
Jedes Freigabeangebot kann nur eine zugeordnete App-Spezifikation haben.
Durch das Aktualisieren der Zielkonten wird eine neue ausstehende Anfrage zur Genehmigung durch den Verbraucher erstellt.
Validieren der Konfiguration des Freigabeangebots¶
Apps können überprüfen, ob das Freigabeangebot nach der Genehmigung korrekt konfiguriert wurde, indem die folgenden Befehle ausgeführt werden:
-- Check if the app specification is approved:
SHOW APPROVED SPECIFICATIONS IN APPLICATION;
-- Validate the listing configuration:
DESC LISTING compliance_listing;
Workflow für Verbrauchergenehmigungen¶
Die Genehmigung einer LISTING-App-Spezifikation durch den Verbraucher löst diesen Workflow aus:
Snowflake fügt die Zielkonten automatisch zum Freigabeangebot hinzu.
Falls angegeben, konfiguriert Snowflake den Aktualisierungszeitplan für die automatische Auftragsausführung.
Das Freigabeangebot wird für die Zielkonten sichtbar.
Daten, die mit dem Freigabeangebot verbunden sind, können über die genehmigten Konten abgefragt werden.
Die Ablehnung einer LISTING-App-Spezifikation durch den Verbraucher löst diesen Workflow aus:
Die Veröffentlichung des Freigabeangebots wird zurückgezogen, und alle vorhandenen Zielkonten werden aus dem Freigabeangebot entfernt.
Die automatische Ausführung ist deaktiviert.
Das Freigabeangebot ist für kein Zielkonto mehr sichtbar.
Best Practices bei LISTING-App-Spezifikationen¶
Beachten Sie bei der Implementierung der Datenfreigabe über App-Spezifikationen die folgenden Best Practices:
Freigabeintegrität: Snowflake verhindert nicht, dass Verbraucher Freigaben ändern können, die von einer Anwendung erstellt wurden. Daher ist der Anbietende dafür verantwortlich, Maßnahmen zum Schutz der Integrität der zugrunde liegenden freigegebenen Daten zu implementieren.
Fehlerbehandlung: Implementieren Sie eine korrekte Fehlerbehandlung für Fälle, in denen die App-Spezifikation abgelehnt wurde oder noch nicht genehmigt wurde.
Hinweise zu regionenübergreifenden Informationen: Der Anbietende der App ist dafür verantwortlich, Aktualisierungszeitpläne festzulegen, die die Anforderungen an die Datenaktualität mit Kostenaspekten in Einklang bringen. Obwohl die Kosten für die automatische Ausführung von Freigabeangeboten dem Verbraucher der App in Rechnung gestellt werden, sollte die Wahl des Zeitplans durch den Anbietende kostenkritisch sein, um unnötige Kosten für den Verbraucher der App zu minimieren.
Konformität: Dokumentieren Sie in der Beschreibung der App-Spezifikation deutlich, welche Daten Sie freigeben und warum Sie diese freigeben.
Callback-Funktionen mit LISTING-App-Spezifikationen verwenden¶
Apps können Lebenszyklus-Callbacks verwenden, um zu reagieren, wenn Verbraucher die Spezifikationen des Freigabeangebots genehmigen oder ablehnen, indem sie den folgenden Code zur Manifest-Datei hinzufügen:
lifecycle_callbacks:
specification_action: callbacks.on_spec_update
Fügen Sie dem Setup-Skript die folgende gespeicherte Callback-Prozedur hinzu:
CREATE OR REPLACE PROCEDURE callbacks.on_spec_update (
name STRING,
status STRING,
payload STRING)
RETURNS STRING
LANGUAGE SQL
AS
$$
BEGIN
IF (name = 'shareback_spec' AND status = 'APPROVED') THEN
-- Start populating shared tables
CALL populate_compliance_data();
ELSEIF (name = 'shareback_spec' AND status = 'DECLINED') THEN
-- Clean up or notify provider
CALL cleanup_share_data();
END IF;
RETURN 'Processed specification update';
END;
$$;
Die Prozedur ermöglicht es der App, angemessen auf Entscheidungen von Verbrauchern bezüglich der Datenfreigabeanfrage der App zu reagieren.
Einschränkungen¶
Dieser Abschnitt beschreibt die Einschränkungen bei der Verwendung von App-Spezifikationen.
- Überwachung
Snowflake bietet keine integrierte Prüfung für Daten, die eine App an den Anbietenden zurückgibt. Wenn Verbrauchende Compliance- oder gesetzliche Anforderungen haben, die einen Prüfpfad enthalten, müssen sich die Verbrauchenden direkt mit dem Anbietenden absprechen, um eigene Überwachungslösungen zu implementieren.
- Freigeben innerhalb der Anwendung
Snowflake empfiehlt, die Datenfreigabe mit dem Anbietenden nicht direkt aus der Anwendung heraus freizugeben, da die automatische Ausführung von Freigabeangeboten derzeit nicht für Daten unterstützt wird, die auf diese Weise freigegeben werden.