Bundle 2022_04

Unter diesem Thema werden die folgenden in diesem Monat vorgenommenen Verhaltensänderungen (falls vorhanden) beschrieben:

  • Features, die veraltet sind.

  • Gebündelte Änderungen, die aktiviert wurden.

  • Andere, nicht gebündelte Änderungen, die implementiert wurden.

Wenn Sie Fragen zu diesen Änderungen haben, wenden Sie sich an den Snowflake-Support.

Weitere Einzelheiten zu den in diesem Monat eingeführten neuen Features, Erweiterungen und Korrekturen finden Sie unter Juli 2022.

Wichtig

Sofern nicht anders angegeben, sind diese Änderungen in Bundle 2022_04 enthalten, das standardmäßig mit Release 6.25 aktiviert wurde.

Unter diesem Thema:

SQL-Änderungen – Allgemein

Klonen eines permanenten Schemas mit permanenten untergeordneten Tabellen zum Erstellen eines transienten Schemas

Wenn ein transientes Schema durch Klonen eines permanenten Schemas erstellt wird, werden auch die untergeordneten Objekte des Schemas geklont.

Der Typ der Objekte der untergeordneten Tabelle in dem geklonten transienten Schema hat sich wie folgt geändert:

Bisher

Alle permanenten Tabellen im Quellschema wurden als permanente Tabellen in das Zielschema geklont, und alle transienten Tabellen wurden als transiente Tabellen geklont.

Jetzt

Alle permanenten Tabellen im Quellschema werden als transiente Tabellen in das Zielschema geklont.

SQL-Änderungen – Befehle und Funktionen

Befehl SHOW EXTERNALTABLES: Neue Spalten in Ausgabe

Der Ausgabe des Befehls SHOW EXTERNAL TABLES wurden die beiden folgenden neuen Spalten hinzugefügt:

  • TABLE_FORMAT

  • LAST_REFRESH_DETAILS

Um die Auswirkungen dieser Änderung zu begrenzen, wurden die Spalten als letzte Spalten in der Ausgabe hinzugefügt.

Die Spalten wurden zur Unterstützung zukünftiger Funktionen hinzugefügt.

Befehl SHOW SCHEMAS: Änderungen an der RETENTION_TIME-Ausgabe für Schemas

Der Wert der Spalte RETENTION_TIME in der Ausgabe des Befehls SHOW SCHEMAS für Schemas einer Datenbank mit einer DATA_RETENTION_TIME_IN_DAYS-Einstellung von 0 hat sich wie folgt geändert:

Bisher

Der RETENTION_TIME-Wert war eine leere Zeichenfolge.

Jetzt

Der RETENTION_TIME-Wert ist 0.

Befehl SHOW WAREHOUSES: Neue Spalten in Ausgabe

Die folgenden neuen Spalten wurden der Ausgabe des Befehls SHOW WAREHOUSES für Konten hinzugefügt, bei denen das Feature Abfragebeschleunigungsdienst (Query Acceleration Service) aktiviert ist:

Spaltenname

Beschreibung

enable_query_acceleration

Ob der Abfragebeschleunigungsdienst für das Warehouse aktiviert ist.

query_acceleration_max_scale_factor

Maximaler Skalierungsfaktor für den Abfragebeschleunigungsdienst.

Die neuen Spalten wurden zwischen den Spalten comment und resource_monitors eingefügt. Abfragen, die von der Ausgabe des SHOW WAREHOUSES-Befehls abhängen, sollten für die Spaltenausgabe den Spaltennamen und keinen fest kodierten Index verwenden.

Funktion GET_DDL: Änderungen an der Ausgabe für Funktionen und Prozeduren

Wenn Sie derzeit die Funktion GET_DDL aufrufen, um die DDL-Anweisung zu erhalten, mit der eine UDF, externe Funktion oder gespeicherte Prozedur erstellt wurde, wird der Name der Funktion oder Prozedur in Anführungszeichen gesetzt, auch wenn der Name den Regeln entspricht, die für nicht in Anführungszeichen gesetzte Objektbezeichner gelten.

Diese Ausgabe hat sich in den Fällen geändert, in denen Sie den vollqualifizierten Namen der Funktion oder Prozedur zurückgeben (d. h. wenn Sie GET_DDL mit TRUE als drittem Argument aufrufen):

Bisher

GET_DDL gab den Namen der Funktion oder Prozedur in Anführungszeichen zurück:

+-------------------------------------------------------+
| GET_DDL('FUNCTION', 'MYFUNC(FLOAT)', TRUE)            |
|-------------------------------------------------------|
| CREATE OR REPLACE FUNCTION MYDB.MYSCHEMA."MYFUNC" ... |
+-------------------------------------------------------+
Copy
Jetzt

GET_DDL gibt den Namen der Funktion oder Prozedur ohne Anführungszeichen zurück:

+-------------------------------------------------------+
| GET_DDL('FUNCTION', 'MYFUNC(FLOAT)', TRUE)            |
|-------------------------------------------------------|
| CREATE OR REPLACE FUNCTION MYDB.MYSCHEMA.MYFUNC ...   |
+-------------------------------------------------------+
Copy

Beachten Sie, dass dies nur Fälle betrifft, in denen Sie den vollqualifizierten Namen der Funktion oder Prozedur zurückgeben. Wenn Sie das dritte Argument für GET_DDL weglassen (oder FALSE angeben), gibt GET_DDL den Namen der Funktion oder Prozedur in Anführungszeichen zurück:

+-------------------------------------------------------+
| GET_DDL('FUNCTION', 'MYFUNC(FLOAT)')                  |
|-------------------------------------------------------|
| CREATE OR REPLACE FUNCTION "MYFUNC" ...               |
+-------------------------------------------------------+
Copy

SQL-Änderungen – Nutzungsansichten & Information Schema-Ansichten/Tabellenfunktionen

Ansicht POLICY_REFERENCES (Account Usage): Neue Spalten

Um Tag-basierte Maskierungsrichtlinien zu unterstützen, enthält die Ansicht POLICY_REFERENCES (im Schema ACCOUNT_USAGE der freigegebenen SNOWFLAKE-Datenbank) jetzt die folgenden Spalten:

  • tag_name

  • tag_database

  • tag_schema

  • policy_status

Bei diesen neuen Spalten ist Folgendes zu beachten:

  • Die Spalten, deren Datentypen und deren Beschreibungen stimmen mit denselben Spalten in der Information Schema-Tabellenfunktion POLICY_REFERENCES überein.

  • Bei vorhandenen Zeilen in der Ansicht gibt Snowflake für die neuen Spalten den Wert NULL zurück.

  • Bei dieser Aktualisierung werden der Ansicht nur neue Spalten hinzugefügt. Sie können das Feature für Tag-basierte Maskierungsrichtlinien verwenden, ohne diese Verhaltensänderung zu aktivieren, sofern Ihr Snowflake-Konto ein Enterprise Edition-Konto (oder höher) ist.

Um die Auswirkungen dieser Änderung zu begrenzen, wurden die neuen Spalten als letzte Spalten der Ausgabe hinzugefügt.

Ansicht QUERY_HISTORY (Account Usage): Neue Spalten

Die folgenden neuen Spalten wurden der Account Usage-Ansicht QUERY_HISTORY hinzugefügt:

Spaltenname

Datentyp

Beschreibung

QUERY_ACCELERATION_BYTES_SCANNED

NUMBER

Anzahl der vom Abfragebeschleunigungsdienst gescannten Bytes. Der Standardwert ist 0, wenn die Abfrage nicht beschleunigt wurde.

QUERY_ACCELERATION_PARTITIONS_SCANNED

NUMBER

Anzahl der vom Abfragebeschleunigungsdienst gescannten Partitionen. Der Standardwert ist 0, wenn die Abfrage nicht beschleunigt wurde.

QUERY_ACCELERATION_UPPER_LIMIT_SCALE_FACTOR

NUMBER

Oberes Limit des Skalierungsfaktors, der für eine Abfrage von Vorteil wäre. Der Standardwert ist 0, wenn die Abfrage nicht beschleunigt wurde.

Um die Auswirkungen dieser Änderung zu begrenzen, wurden die neuen Spalten als letzte Spalten in der Ausgabe hinzugefügt.

Änderungen bei Datenpipelines

Befehl ALTER STREAM: Einstellen der Parameter APPEND_ONLY und INSERT_ONLY nicht mehr möglich

Nach dem Erstellen eines Streams kann der Streamtyp nicht mehr geändert werden. Der Typ wird beim Erstellen des Streams wie folgt festgelegt:

  • Legen Sie APPEND_ONLY = TRUE fest, um einen Nur-Anfügen-Stream zu erstellen.

  • Legen Sie INSERT_ONLY = TRUE fest, um einen Nur-Einfügen-Stream zu erstellen.

  • Lassen Sie beide Parameter weg, um einen Standard-Stream (Delta-Stream) zu erstellen.

Der Versuch, den Typ eines vorhandenen Streams mit dem Befehl ALTER STREAM zu ändern, führt jetzt zu einem Benutzerfehler.

Um den Typ eines vorhandenen Streams zu ändern, müssen Sie den Stream neu erstellen (mit CREATE OR REPLACE STREAM) und dabei den gewünschten Streamtyp angeben.

Aufgabe: Geänderte Fehlermeldungen

Benutzerfehlermeldungen, die bei ungültigen SQL-Aktionen im Zusammenhang mit serverlosen Aufgaben (d. h. Aufgaben, die mit von Snowflake verwalteten Computeressourcen ausgeführt werden) zurückgegeben werden, wurden wie folgt geändert:

  • Anwendungsfall 1: Sie führen mit einer Rolle, die nicht die globale Berechtigung EXECUTE MANAGED TASK besitzt, eine CREATE TASK-Anweisung ohne den Parameter WAREHOUSE aus.

    Bisheriger Fehlertext

    Missing option(s): [WAREHOUSE]

    Neuer Fehlertext

    WAREHOUSE not specified and missing serverless task privilege to create task {task name}. To create it as a user-managed task, specify a WAREHOUSE. To create it as a serverless task, execute the CREATE TASK command with a role that has been granted the 'EXECUTE MANAGED TASK' account-level privilege.

  • Anwendungsfall 2: Sie klonen eine serverlose Aufgabe (oder eine Datenbank oder ein Schema, die/das eine oder mehrere serverlose Aufgaben enthält) mit einer Rolle, die nicht über die globale Berechtigung EXECUTE MANAGED TASK verfügt, unter Verwendung des entsprechenden CREATE … CLONE-Befehls.

    Bisheriger Fehlertext

    Task {task name} requires a warehouse.

    Neuer Fehlertext

    WAREHOUSE not specified and missing serverless task privilege to create task {task name}. To create it as a user-managed task, specify a WAREHOUSE. To create it as a serverless task, execute the CLONE command with a role that has been granted the 'EXECUTE MANAGED TASK' account-level privilege.

  • Anwendungsfall 3: Sie deaktivieren mit einer Rolle, die nicht über die globale Berechtigung EXECUTE MANAGED TASK verfügt, den WAREHOUSE-Parameter einer bestehenden Aufgabe, die mit vom Kunden verwalteten Computeressourcen ausgeführt wird (mit einer ALTER TASK … UNSET WAREHOUSE-Anweisung).

    Bisheriger Fehlertext

    Task {task name} requires a warehouse.

    Bisheriger Fehlertext

    Cannot UNSET WAREHOUSE on task {task_name} because its owner role has not been granted the 'EXECUTE MANAGED TASK' account-level privilege. Grant this privilege to the role or use GRANT OWNERSHIP to change the task's owner role to one with this privilege.

  • Anwendungsfall 4:

    1. Sie erstellen mit einer Rolle, der die globale Berechtigung EXECUTE MANAGED TASK (zusammen mit anderen Mindestrechten) erteilt wurde, eine serverlose Aufgabe und setzen diese fort.

    2. Die Berechtigung EXECUTE MANAGED TASK wird der Eigentümerrolle (Rolle mit OWNERSHIP-Berechtigung für die Aufgabe) entzogen.

    3. Die Aufgabe wird nicht angehalten und startet ihre nächste geplante Ausführung, oder ein Benutzer mit der Eigentümerrolle führt den EXECUTE TASK-Befehl aus, um zu versuchen, eine Aufgabenausführung zu starten.

    Bisheriger Fehlertext

    Cannot execute task, USAGE privilege on the task's warehouse must be granted to the owner role

    Neuer Fehlertext

    Cannot execute task, EXECUTE MANAGED TASK privilege must be granted to the owner role

Diese Änderungen sollen Ihnen helfen, Probleme im Zusammenhang mit serverlosen Aufgaben besser zu verstehen und zu beheben.

Änderungen zum Datenschutz

Klassifizierung: Datenklassifizierungsmodell aktualisiert und Ausgabe überarbeitet

Die Datenklassifizierung ist jetzt allgemein für alle Konten der Enterprise Edition (oder höher) auf AWS und Azure verfügbar.

Für die allgemeine Verfügbarkeit des Features wurde das Datenklassifizierungsmodell aktualisiert, um verbesserte Vorhersagemodelle und Datenmuster zu generieren. Darüber hinaus umfasst der Datenklassifizierungsprozess nun Ausgaben für jede in der Eingabe angegebene Tabellenspalte, einschließlich:

  • Spalten mit Datentypen, die bisher nicht klassifiziert werden konnten.

  • Spalten, die ausschließlich NULL-Werte enthalten.

Diese Verbesserungen wurden im Rahmen des Verhaltensänderungsprozesses eingeführt, da sie bei der Neuklassifizierung von Daten, die mit dem vorherigen Datenklassifizierungsmodell klassifiziert wurden, wahrscheinlich bessere, aber potenziell andere Ergebnisse liefern. Während der Opt-out-Phase für Bundle 2022_04 können Sie das Bundle aktivieren/deaktivieren, um die Verbesserungen der Klassifizierung zu testen und gleichzeitig die Auswirkungen auf Ihre Produktionskonten zu minimieren, bis Sie mit den neuen Ergebnissen vertraut sind.