SnowConvert AI – BigQuery-Probleme¶
Bemerkung
Konvertierungsbereich
SnowConvert AI für Google BigQuery unterstützt derzeit die Bewertung und Übersetzung vonTABLES und VIEWS. Obwohl SnowConvert AI zwar andere Arten von Anweisungen erkennen kann, werden diese nicht vollständig unterstützt.
Diese Seite bietet eine umfassende Referenz darüber, wie SnowConvert AI grammatikalische Google BigQuery-Syntaxelemente in Snowflake-Äquivalente übersetzt. In dieser Übersetzungsreferenz finden Sie Codebeispiele, Ergebnisse der Funktionsäquivalenz, wichtige Unterschiede, Empfehlungen, bekannte Probleme und Beschreibungen der einzelnen Transformationen.
SSC-EWI-BQ0001¶
Snowflake unterstützt die OPTIONS-Klausel nicht.
Warnung
Dieses EWI ist veraltet. Die neueste Version für dieses EWI finden Sie unter SSC-EWI-0016.
Schweregrad ¶
Medium
Beschreibung ¶
Dieses EWI wird DDL-Anweisungen hinzugefügt, wenn OPTIONS über Optionen verfügt, die von Snowflake nicht unterstützt werden.
Codebeispiel ¶
Eingabecode:
BigQuery¶
Ausgabecode:
Snowflake¶
Empfehlungen ¶
Fügen Sie manuelle Änderungen an dem nicht transformierten Ausdruck hinzu.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-BQ0002¶
Die Mikropartitionierung wird automatisch für alle Snowflake-Tabellen durchgeführt.
Bemerkung
Dieses Problem ist veraltet und wird von SnowConvert AI nicht mehr erzeugt.
Schweregrad¶
Medium
Beschreibung¶
Diese Warnung wird der Create-Tabelle hinzugefügt, wenn die „partition by“-Klausel vorhanden ist. PARTITION BY ist eine optionale Klausel, die die Tabellenpartitionierung steuert, aber von Snowflake nicht unterstützt wird.
Alle Daten in Snowflake-Tabellen werden automatisch in Mikropartitionen unterteilt, bei denen es sich um zusammenhängende Speichereinheiten handelt. Jede Mikropartition enthält zwischen 50 MB und 500 MB unkomprimierter Daten. Diese Größe und Struktur ermöglicht ein äußerst granulares Verkürzen sehr großer Tabellen, die aus Millionen oder sogar Hunderten von Millionen von Mikropartitionen bestehen können.
Snowflake speichert Metadaten zu allen Zeilen, die in einer Mikropartition gespeichert sind, einschließlich:
Wertebereich jeder Spalte in der Mikropartition.
Anzahl unterschiedlicher Werte.
Zusätzliche Eigenschaften, die sowohl für die Optimierung als auch für die effiziente Abfrageverarbeitung verwendet werden.
Auch die Tabellen werden transparent in der Reihenfolge partitioniert, in der die Daten eingefügt/geladen werden. Weitere Informationen dazu finden Sie unter Vorteile der Mikropartitionierung.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Es sind keine zusätzlichen Benutzeraktionen erforderlich. Dies ist rein informativ.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-BQ0003¶
Pending SnowConvert AI translation for differential privacy.
Schweregrad¶
Medium
Beschreibung¶
BigQuery allows applying differential privacy over some statistical functions to introduce noise in the data, making it difficult to extract information about individuals when analyzing query results.
Snowflake now supports differential privacy natively. However, SnowConvert AI has not yet implemented the translation for this feature. Any use of differential privacy in BigQuery will be commented out and this issue will be generated to flag the need for manual conversion.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Use native Snowflake support: Snowflake now supports differential privacy natively. Rewrite the BigQuery differential privacy syntax using Snowflake’s privacy policies and privacy budgets.
Key differences: Snowflake’s differential privacy implementation uses privacy policies assigned to tables/views, privacy budgets to manage analyst queries, and privacy domains for fact and dimension columns. The syntax differs from BigQuery’s inline
WITH DIFFERENTIAL_PRIVACYclause.Further reading: Snowflake Differential Privacy Overview
SSC-EWI-BQ0004¶
Snowflake unterstützt keine benannten Fenster.
Schweregrad¶
Medium
Beschreibung¶
BigQuery ermöglicht die Definition und Verwendung von benannten Fenstern in Aggregatfunktionen. Sie werden in der WINDOW-Klausel der Abfrage definiert, in der sie verwendet werden, und können innerhalb der OVER-Klausel dieser Funktionen verwendet werden.
Snowflake unterstützt nicht das Deklarieren benannter Fenster. Daher müssen Sie die Fensterdefinition verwenden und auf alle Verwendungen dieses Fensters direkt in der OVER-Klausel der Funktionen anwenden.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Überprüfen Sie Ihre Definitionen benannter Fenster. Möglicherweise können Sie die Definition übernehmen und auf die
OVER-Klausel der Funktionen anwenden, in denen sie verwendet wird. Beachten Sie jedoch, dass die funktionalen Unterschiede zwischen BigQuery- und Snowflake-Fensterrahmen weiterhin gelten. Nehmen Sie den folgenden Fall als Beispiel:
BigQuery:
Snowflake:
Diese beiden Abfragen erzeugen dieselben Zeilen, aber die Snowflake-Ergebnisse werden nicht angeordnet, da die ORDER BY-Klausel für Fensterrahmen sich nicht auf die gesamte Abfragereihenfolge auswirkt, wie dies bei BigQuery der Fall ist.
SSC-EWI-BQ0005¶
Javascript code has not been validated by SnowConvert AI.
Schweregrad¶
Hoch
Beschreibung¶
SnowConvert AI führt keine Transformation von Javascript-Code durch. Da der Javascript-Code, der aus BigQuery-Funktionen extrahiert wurde, sich gar nicht geändert hat, müssen für den Code möglicherweise einige Optimierungen vorgenommen werden, damit er in Snowflake funktioniert.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Überprüfen Sie den gesamten Javascript-Code vor der Bereitstellung.
Javascript-Parameter in Snowflake müssen in Großbuchstaben geschrieben werden.
For more information, visit Snowflake’s Introduction to Javascript UDFs.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-BQ0006¶
Der ORIENTED-Parameter in der ST_GEOGFROMTEXT-Funktion wird von Snowflake nicht unterstützt.
Schweregrad¶
Niedrig
Beschreibung¶
Diese Warnung wird hinzugefügt, wenn der ORIENTED-Parameter in der ST_GEOGFROMTEXT-Funktion angegeben ist, da er in Snowflake nicht unterstützt wird. Wenn dieser Parameter auf TRUEfestgelegt ist, wird davon ausgegangen, dass jedes Polygon in der Eingabe wie folgt ausgerichtet ist: Wenn jemand die Polygongrenze in der Reihenfolge der Eingabepunkte entlanggeht, befindet sich das Innere des Polygons auf der linken Seite. Dies ermöglicht es WKT, Polygone darzustellen, die größer als eine Halbkugel sind. Wenn der ORIENTED-Parameter auf FALSE festgelegt ist oder weggelassen wird, gibt diese Funktion das Polygon mit der kleinsten Fläche zurück.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Review polygon orientation: If the
orientedparameter was set toTRUE, verify that the polygon does not span more than a hemisphere. Snowflake’sST_GEOGFROMTEXTalways returns the polygon with the smallest area.Manual validation: For polygons larger than a hemisphere, consider splitting them into smaller polygons or using alternative geospatial representations.
Remove the parameter: After manual review, remove the
orientedparameter from the function call, as Snowflake’sST_GEOGFROMTEXTaccepts only the WKT string argument.
SSC-EWI-BQ0007¶
Die Escape-Sequenz ist in Snowflake nicht gültig.
Schweregrad¶
Niedrig
Beschreibung¶
Das Bell-Zeichen (\a) und das vertikale Zeichen (\v) sind gültige Escape-Sequenzen in BigQuery, nicht aber in Snowflake.
This warning is added when a bell character or vertical character escape sequence is found when translating BigQuery code. For more information, see BigQuery Escape Sequences.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Replace with Unicode escapes: Replace
\a(bell character, U+0007) with\x07and\v(vertical tab, U+000B) with\x0B, which are supported by Snowflake.Review usage: If the escape sequence was used for formatting purposes, consider whether it is still needed in the Snowflake context.
SSC-EWI-BQ0008¶
Die aus acht Hexadezimalstellen bestehende Unicode-Escape-Sequenz wird in Snowflake nicht unterstützt.
Schweregrad¶
Niedrig
Beschreibung¶
BigQuery unterstützt Unicode-Sequenzen von acht Hexadezimalstellen. Snowflake unterstützt diese Art von Unicode-Sequenzen nicht.
Diese Warnung wird hinzugefügt, wenn bei der Übersetzung von BigQuery-Code eine aus acht Hexadezimalstellen bestehende Unicode-Sequenz gefunden wird. Weitere Informationen zu BigQuery-Escape-Sequenzen.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Use surrogate pairs: Convert the 8-hex-digit Unicode sequence into two 4-hex-digit surrogate pair sequences. For example,
\U00100000can be represented using surrogate pairs\uDBC0\uDC00.Use CHR function: Alternatively, use Snowflake’s
CHRfunction with the Unicode code point to generate the character at runtime.
SSC-EWI-BQ0009¶
SnowConvert AI was unable to generate the correct return table clause. Missing symbol information.
Schweregrad¶
Hoch
Beschreibung¶
Snowflake benötigt eine gültige RETURNS TABLE-Klausel für CREATE TABLE FUNCTION-Anweisungen. SnowConvert AI muss eine von Grund auf neu erstellen. Zu diesem Zweck wird eine Analyse der CREATE TABLE FUNCTION-Abfrage durchgeführt, um die Arten der Spalten der resultierenden Tabelle ordnungsgemäß abzuleiten. Es kann jedoch Szenarien geben, in denen SnowConvert AI über eine Beschränkung verfügt, wenn es darum geht, die Rückgabeklausel ordnungsgemäß zu erstellen.
Diese Szenarien werden künftig berücksichtigt, in der Zwischenzeit wird jedoch dieser Fehler hinzugefügt.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Manually define the RETURNS TABLE clause: Inspect the original BigQuery TABLE FUNCTION body to determine the column names and types of the result set, then populate the empty
RETURNS TABLE()clause with the correct column definitions.Provide source references: If the issue is caused by missing references, ensure all referenced tables and views are included in the input provided to SnowConvert AI.
SSC-EWI-BQ0010¶
The resulting table has no columns
Schweregrad¶
Medium
Beschreibung¶
This EWI is added when SnowConvert AI creates an external table whose definition has no columns. External tables in BigQuery can be defined using only OPTIONS (e.g., FORMAT and URIS) without explicit column definitions, relying on schema inference. When the resulting table structure has no columns after conversion, SnowConvert AI emits this EWI to flag that manual definition of the table schema may be required.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Provide column definitions: If the source BigQuery external table uses inferred schema, manually add the expected column definitions to the generated Snowflake external table based on the actual file structure.
Use INFER_SCHEMA: Consider using Snowflake’s INFER_SCHEMA function with a sample file path (without wildcards) to generate the table template.
Include table definitions: Ensure all referenced table or view definitions are included in the input provided to SnowConvert AI so that symbol information can be collected.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-BQ0011¶
Die Zuweisung von Sitzungsvariablen komplexer Datentypen wird in Snowflake nicht unterstützt.
Schweregrad¶
Medium
Beschreibung¶
Durch die Deklaration einer Variablen auf Skriptebene in BigQuery kann diese im gesamten Skript verwendet werden. Um dieses Verhalten in Snowflake zu replizieren, werden SQL-Variablen verwendet.
Allerdings schlägt das Deklarieren von Variablen von Datentypen, die komplex sind, wie z. B. ARRAY, GEOGRAPHY, STRUCT oder JSON, in Snowflake fehl, wenn versucht wird, den Wert auf die Variable SQL zu setzen. Wenn SnowConvert AI einen dieser Fälle erkennt, dann wird dieses EWI zur SQL-Variablendeklaration hinzugefügt.
Variablen dieser Art können ohne Probleme in Blockanweisungen und anderen prozeduralen Anweisungen deklariert werden. Dieses EWI gilt nur für Variablen, die auf Skriptebene deklariert sind.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Wenn die Verwendung der Variable auf einen einzigen Bereich beschränkt ist oder ihr Wert nie geändert wird, sollten Sie in Erwägung ziehen, die Variable lokal in den Bereichen zu deklarieren, in denen sie verwendet wird, wodurch das Problem gelöst wird.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-BQ0012¶
SnowConvert AI was unable to generate a correct OBJECT_CONSTRUCT parameter. Missing symbol information.
Schweregrad¶
Hoch
Beschreibung¶
SnowConvert AI was unable to generate a correct OBJECT_CONSTRUCT parameter due to missing symbol information. This typically occurs when the table definition is not included in the input provided to SnowConvert AI, or when the table uses complex types (such as STRUCT) whose field names are needed to build the OBJECT_CONSTRUCT call.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Provide table definitions: Ensure all referenced table definitions (CREATE TABLE statements) are included in the input provided to SnowConvert AI so that symbol information can be collected.
Manual replacement: Inspect the original BigQuery INSERT statement and manually construct the
OBJECT_CONSTRUCTcall with the correct field names and values matching the target table’s schema.
SSC-EWI-BQ0013¶
Externe Tabellendatenformate, die von Snowflake nicht unterstützt werden
Warnung
Dieses EWI ist veraltet. Die neueste Version für dieses EWI finden Sie unter SSC-EWI-0029.
Schweregrad¶
Medium
Beschreibung¶
Snowflake unterstützt die folgenden BigQuery-Formate:
BigQuery |
Snowflake |
|---|---|
AVRO |
AVRO |
CSV |
CSV |
NEWLINE_DELIMITED_JSON |
JSON |
ORC |
ORC |
PARQUET |
PARQUET |
When an external table has other FORMAT not specified in the above table, this EWI will be generated to inform the user that the FORMAT is not supported.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-BQ0014¶
Hive partitioned external tables are not supported in Snowflake
Schweregrad¶
Medium
Beschreibung¶
Snowflake unterstützt keine partitionierten externen Hive-Tabellen. Wenn die WITH PARTITION COLUMNS-Klausel in der externen Tabelle gefunden wird, wird sie mit diesem EWI als nicht unterstützt markiert.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Remove the WITH PARTITION COLUMNS clause: Snowflake external tables use automatic partitioning based on the file path. Remove the
WITH PARTITION COLUMNSclause from the generated code.Use Snowflake partitioning: Define partition columns using expressions in the external table’s column definitions. Snowflake can automatically infer partition columns from the directory structure.
Hive metastore integration: If you use a Hive metastore, consider integrating it with Snowflake to synchronize external table metadata automatically.
SSC-EWI-BQ0015¶
External table requires an external stage to access an external location, define and replace the EXTERNAL_STAGE placeholder
Warnung
Dieses EWI ist veraltet. Die neueste Version für dieses EWI finden Sie unter SSC-EWI-0032.
Beschreibung¶
Bei der Transformation der CREATE EXTERNAL TABLE-Anweisung generiertSnowConvert AI einenEXTERNAL_STAGE-Platzhalter, der durch den externen Stagingbereich ersetzt werden muss, der für die Verbindung mit dem externen Speicherort von Snowflake erstellt wurde.
Beachten Sie die folgenden Anleitungen, um die erforderliche Speicherintegration und den externen Stagingbereich in Ihrem Snowflake-Konto einzurichten:
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
CREATE OR REPLACE EXTERNAL TABLE test.Employees_test
(
Employee_id INTEGER AS CAST(GET_IGNORE_CASE($1, 'c1') AS INTEGER),
Name STRING AS CAST(GET_IGNORE_CASE($1, 'c2') AS STRING),
Mail STRING AS CAST(GET_IGNORE_CASE($1, 'c3') AS STRING),
Position STRING AS CAST(GET_IGNORE_CASE($1, 'c4') AS STRING),
Salary INTEGER AS CAST(GET_IGNORE_CASE($1, 'c5') AS INTEGER)
)
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0015 - EXTERNAL TABLE REQUIRES AN EXTERNAL STAGE TO ACCESS gs://sc_external_table_bucket, DEFINE AND REPLACE THE EXTERNAL_STAGE PLACEHOLDER ***/!!!
LOCATION = @EXTERNAL_STAGE
AUTO_REFRESH = false
PATTERN = 'folder_with_csv/Employees.csv'
FILE_FORMAT = (TYPE = CSV SKIP_HEADER =1);
Empfehlungen¶
Richten Sie Ihre externe Verbindung im Snowflake-Konto ein, und ersetzen Sie den EXTERNAL_STAGE-Platzhalter, um die Transformation abzuschließen.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-BQ0016¶
„Select *“ mit mehreren UNNEST-Operatoren führt zu Mehrdeutigkeiten in Spalten
Warnung
This EWI is deprecated; please refer to SSC-FDM-0012 for the latest version of this issue.
Schweregrad¶
Medium
Beschreibung¶
Als Teil der SnowConvert-Transformation für den UNNEST-Operator wird die Funktion FLATTEN verwendet. Diese Funktion generiert mehrere Spalten, die nicht erforderlich sind, um die UNNEST-Operatorfunktionalität wie die Spalten THIS oder PATH zu emulieren.
Wenn eine SELECT * mit dem UNNEST-Operator gefunden wurde, entfernt SnowConvert die unnötigen Spalten mit dem Schlüsselwort EXCLUDE. Wenn jedoch mehrere UNNEST-Operatoren in der gleichen Anweisung verwendet werden, können die Spalten aufgrund von Mehrdeutigkeitsproblemen nicht entfernt werden. Dieses EWI wird erzeugt, um diese Fälle zu kennzeichnen.
Es wird empfohlen, die SELECT-Ausdrucksliste zu erweitern, um nur die erwarteten Spalten anzugeben und dieses Problem zu lösen.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
SSC-EWI-BQ0017¶
Pending SnowConvert AI translation for UNNEST of an array of structs
Schweregrad¶
Medium
Beschreibung¶
When unnesting an array of structs, BigQuery generates a column for each struct field and splits the struct values into their corresponding columns. SnowConvert AI does not yet support this transformation. Whenever SnowConvert AI detects that the UNNEST operator is applied over an array of structs, this EWI is generated to flag the need for manual conversion.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
Generierter Code:¶
Snowflake¶
Empfehlungen¶
Use FLATTEN with LATERAL: Manually flatten the array column using Snowflake’s FLATTEN function, then extract individual struct fields using dot notation or
GETon theVALUEcolumn.Example workaround: