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¶
CREATE VIEW my_view
OPTIONS (
expiration_timestamp=TIMESTAMP "2026-01-01 00:00:00 UTC",
privacy_policy='{"aggregation_threshold_policy": {"threshold": 50, "privacy_unit_columns": "ID"}}'
) AS
SELECT column1, column2
FROM my_table;
Ausgabecode:
Snowflake¶
CREATE VIEW my_view
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0001 - SNOWFLAKE DOES NOT SUPPORT THE OPTIONS: EXPIRATION_TIMESTAMP, PRIVACY_POLICY ***/!!!
OPTIONS(
expiration_timestamp=TIMESTAMP "2026-01-01 00:00:00 UTC",
privacy_policy='{"aggregation_threshold_policy": {"threshold": 50, "privacy_unit_columns": "ID"}}'
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "bigquery", "convertedOn": "03/26/2025", "domain": "test" }}'
AS
SELECT column1, column2
FROM
my_table;
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¶
CREATE TABLE table1(
transaction_id INT,
transaction_date DATE
)
PARTITION BY transaction_date;
Generierter Code:¶
Snowflake¶
CREATE TABLE table1 (
transaction_id INT,
transaction_date DATE
)
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0002 - MICRO-PARTITIONING IS AUTOMATICALLY PERFORMED ON ALL SNOWFLAKE TABLES. ***/!!!
PARTITION BY transaction_date
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "bigquery", "convertedOn": "04/09/2025", "domain": "test" }}';
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¶
Snowflake unterstützt keine differentielle Privatsphäre.
Schweregrad¶
Medium
Beschreibung¶
BigQuery ermöglicht die Anwendung von differentieller Privatsphäre auf einige statistische Funktionen, um Rauschen in die Daten einzufügen, was das Subtrahieren von Informationen über Personen bei der Analyse der Abfrageergebnisse erschwert.
Die differentielle Privatsphäre wird in Snowflake nicht unterstützt. Jede Verwendung wird auskommentiert, und dieser Fehler wird generiert, um Benutzende darüber zu informieren.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
SELECT
WITH DIFFERENTIAL_PRIVACY
OPTIONS(epsilon=10, delta=.01, max_groups_contributed=2, privacy_unit_column=id)
item,
COUNT(quantity, contribution_bounds_per_group => (0,100)) total_quantity
FROM professors
GROUP BY item;
Generierter Code:¶
Snowflake¶
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0003 - SNOWFLAKE DOES NOT SUPPORT DIFFERENTIAL PRIVACY. ***/!!!
WITH DIFFERENTIAL_PRIVACY
OPTIONS(epsilon=10, delta=.01, max_groups_contributed=2, privacy_unit_column=id)
item,
COUNT(quantity,
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0003 - SNOWFLAKE DOES NOT SUPPORT DIFFERENTIAL PRIVACY. ***/!!! contribution_bounds_per_group => (0,100)) total_quantity
FROM
professors
GROUP BY item;
Empfehlungen¶
Analysieren Sie die Ergebnisse der Abfrage mit und ohne differentielle Privatsphäre. Die Ergebnisse können aufgrund des Fehlens von Rauschen in den Daten leicht abweichen.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
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¶
SELECT
COUNT(col1) OVER(myWindow)
FROM
test.exampleTable
WINDOW
myWindow AS (ORDER BY col2);
Generierter Code:¶
Snowflake¶
SELECT
COUNT(col1)
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0004 - SNOWFLAKE DOES NOT SUPPORT NAMED WINDOWS. ***/!!! OVER(myWindow)
FROM
test.exampleTable
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0004 - SNOWFLAKE DOES NOT SUPPORT NAMED WINDOWS. ***/!!!
WINDOW
myWindow AS (ORDER BY col2);
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:
SELECT
COUNT(col1) OVER(myWindow)
FROM
test.exampleTable
WINDOW
myWindow AS (ORDER BY col2);
Snowflake:
SELECT
COUNT(col1) OVER(ORDER BY col2)
FROM
test.exampleTable;
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.
Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-BQ0005¶
Der Javascript-Code wurde nicht validiert.
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¶
CREATE FUNCTION test.languageJs (x integer, y integer)
RETURNS integer
LANGUAGE js
AS "return x * y;";
Generierter Code:¶
Snowflake¶
CREATE FUNCTION test.languageJs (x integer, y integer)
RETURNS DOUBLE
LANGUAGE JAVASCRIPT
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "bigquery", "convertedOn": "07/16/2025", "domain": "no-domain-provided" }}'
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0005 - JAVASCRIPT CODE HAS NOT BEEN VALIDATED. ***/!!!
AS
$$
return x * y;
$$;
Empfehlungen¶
Überprüfen Sie den gesamten Javascript-Code vor der Bereitstellung.
Javascript-Parameter in Snowflake müssen in Großbuchstaben geschrieben werden.
Weitere Informationen dazu finden Sie in der Einführung in Javascript-UDFs von Snowflake.
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¶
SELECT ST_GEOGFROMTEXT('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))', TRUE);
Generierter Code:¶
Snowflake¶
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0006 - ORIENTED PARAMETER IN THE ST_GEOGFROMTEXT FUNCTION IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
ST_GEOGFROMTEXT('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))');
Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
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.
Diese Warnung wird hinzugefügt, wenn bei der Übersetzung von BigQuery-Code eine Escape-Sequenz als Bell- oder vertikales Zeichen gefunden wird. Weitere Informationen zu Escape-Sequenzen in Snowflake.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
SELECT "\a";
SELECT "\v";
Generierter Code:¶
Snowflake¶
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0007 - ESCAPE SEQUENCE \a IS NOT VALID IN SNOWFLAKE. ***/!!!
'\a';
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0007 - ESCAPE SEQUENCE \v IS NOT VALID IN SNOWFLAKE. ***/!!!
'\v';
Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
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:¶
Snowflake¶
SELECT "\U00100000";
Generierter Code:¶
Erste Registerkarte¶
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0008 - EIGHT HEX DIGIT UNICODE ESCAPE SEQUENCE IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
'\U00100000';
Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-BQ0009¶
SnowConvert AI konnte keine korrekte RETURNS TABLE-Klausel erzeugen.
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¶
CREATE TABLE FUNCTION tableValueFunction2()
AS
SELECT *
REPLACE("John" AS employee_name)
FROM employees;
Generierter Code:¶
Snowflake¶
CREATE FUNCTION tableValueFunction2 ()
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0009 - SnowConvert AI WAS UNABLE TO GENERATE THE CORRECT RETURN TABLE CLAUSE, DUE TO MISSING REFERENCES. ***/!!!
RETURNS TABLE (
)
AS
$$
SELECT
* REPLACE("John" AS employee_name) !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'ExceptReplaceOperator' NODE ***/!!!
FROM
employees
$$;
Empfehlungen¶
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.
Beispielcode¶
Eingabecode:¶
BigQuery¶
CREATE TABLE test.JsonTable
(
col1 JSON
);
DECLARE myVar1 JSON DEFAULT JSON'{"name": "John", "age": 30}';
INSERT INTO test.JsonTable VALUES (myVar1);
BEGIN
DECLARE myVar2 JSON DEFAULT JSON'{"name": "Mike", "age": 27}';
INSERT INTO test.JsonTable VALUES (myVar2);
END;
SELECT col1 FROM test.JsonTable;
Generierter Code:¶
Snowflake¶
CREATE TABLE test.JsonTable
(
col1 VARIANT
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "bigquery", "convertedOn": "07/02/2025", "domain": "no-domain-provided" }}';
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0011 - SESSION VARIABLE ASSIGNMENT OF COMPLEX DATATYPE IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
SET myVar1 = (
SELECT
PARSE_JSON('{"name": "John", "age": 30}')
);
INSERT INTO test.JsonTable
VALUES ($myVar1);
BEGIN
LET myVar2 VARIANT DEFAULT PARSE_JSON('{"name": "Mike", "age": 27}');
INSERT INTO test.JsonTable
VALUES (:myVar2);
END;
SELECT col1 FROM
test.JsonTable;
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¶
Es ist nicht möglich, den richtigen OBJECT_CONSTRUCT-Parameter zu generieren.
Schweregrad¶
Hoch
Beschreibung¶
SnowConvert AI ist nicht in der Lage, das richtige Objektkonstrukt zu generieren, da das Symbol nicht korrekt geladen wurde.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
INSERT INTO test.tuple_sample
VALUES
((12, 34)),
((56, 78)),
((9, 99)),
((12, 35));
Generierter Code:¶
Snowflake¶
INSERT INTO test.tuple_sample
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0012 - UNABLE TO GENERATE CORRECT OBJECT_CONSTRUCT PARAMETER. SYMBOL INFORMATION COULD NOT BE COLLECTED. ***/!!!
VALUES
((12, 34)),
((56, 78)),
((9, 99)),
((12, 35));
Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
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 |
Wenn eine externe Tabelle ein anderes FORMAT hat, das nicht in der obigen Tabelle angegeben ist, wird dieses EWI generiert, um Benutzende darüber zu informieren, dass das FORMAT nicht unterstützt wird.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
CREATE OR REPLACE EXTERNAL TABLE test.backup_restore_table
OPTIONS (
format = 'DATASTORE_BACKUP',
uris = ['gs://backup_bucket/backup_folder/*']
);
Generierter Code:¶
Snowflake¶
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0013 - EXTERNAL TABLE DATA FORMAT NOT SUPPORTED IN SNOWFLAKE ***/!!!
CREATE OR REPLACE EXTERNAL TABLE test.backup_restore_table
OPTIONS (
format = 'DATASTORE_BACKUP',
uris = ['gs://backup_bucket/backup_folder/*']
);
Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-BQ0014¶
Partitionierte externe Hive-Tabellen werden in Snowflake nicht unterstützt.
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¶
CREATE EXTERNAL TABLE test.CustomHivePartitionedTable
WITH PARTITION COLUMNS (
field_1 STRING,
field_2 INT64)
OPTIONS (
uris = ['gs://sc_external_table_bucket/folder_with_parquet/*'],
format = 'PARQUET',
hive_partition_uri_prefix = 'gs://sc_external_table_bucket/folder_with_parquet',
require_hive_partition_filter = false);
Generierter Code:¶
Snowflake¶
CREATE OR REPLACE TEMPORARY FILE FORMAT SC_TEST_CUSTOMHIVEPARTITIONEDTABLE_FORMAT
TYPE = PARQUET;
CREATE EXTERNAL TABLE test.CustomHivePartitionedTable USING TEMPLATE (
SELECT
ARRAY_AGG(OBJECT_CONSTRUCT('COLUMN_NAME', COLUMN_NAME, 'TYPE', TYPE, 'NULLABLE', NULLABLE, 'EXPRESSION', EXPRESSION))
FROM
--** SSC-FDM-0035 - THE INFER_SCHEMA FUNCTION REQUIRES A FILE PATH WITHOUT WILDCARDS TO GENERATE THE TABLE TEMPLATE, REPLACE THE FILE_PATH PLACEHOLDER WITH IT **
TABLE(INFER_SCHEMA(LOCATION => '@EXTERNAL_STAGE/FILE_PATH', FILE_FORMAT => 'SC_TEST_CUSTOMHIVEPARTITIONEDTABLE_FORMAT'))
)
!!!RESOLVE EWI!!! /*** SSC-EWI-0032 - 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
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0014 - HIVE PARTITIONED EXTERNAL TABLES ARE NOT SUPPORTED IN SNOWFLAKE ***/!!!
WITH PARTITION COLUMNS (
field_1 STRING,
field_2 INT64)
PATTERN = 'folder_with_parquet/.*'
FILE_FORMAT = (TYPE = PARQUET)
!!!RESOLVE EWI!!! /*** SSC-EWI-0016 - SNOWFLAKE DOES NOT SUPPORT THE OPTIONS: HIVE_PARTITION_URI_PREFIX, REQUIRE_HIVE_PARTITION_FILTER. ***/!!!
OPTIONS(
hive_partition_uri_prefix = 'gs://sc_external_table_bucket/folder_with_parquet',
require_hive_partition_filter = false
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "bigquery", "convertedOn": "07/02/2025", "domain": "no-domain-provided" }}';
Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-BQ0015¶
Die externe Tabelle erfordert einen externen Stagingbereich, um auf einen externen Speicherort zuzugreifen und den EXTERNAL_STAGE-Platzhalter zu definieren und zu ersetzen.
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¶
CREATE OR REPLACE EXTERNAL TABLE test.Employees_test
(
Employee_id INTEGER,
Name STRING,
Mail STRING,
Position STRING,
Salary INTEGER
)
OPTIONS(
FORMAT='CSV',
SKIP_LEADING_ROWS=1,
URIS=['gs://sc_external_table_bucket/folder_with_csv/Employees.csv']
);
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
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¶
SELECT * FROM UNNEST ([10,20,30]);
SELECT * FROM UNNEST ([10,20,30]) AS numbers, UNNEST(['Hi', 'Hello', 'Bye']) AS words;
Generierter Code:¶
Snowflake¶
SELECT
* EXCLUDE(SEQ, KEY, PATH, THIS, INDEX)
FROM
TABLE(FLATTEN(INPUT => [10,20,30])) AS F0_ (
SEQ,
KEY,
PATH,
INDEX,
F0_,
THIS
);
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0016 - SELECT * WITH MULTIPLE UNNEST OPERATORS WILL RESULT IN COLUMN AMBIGUITY IN SNOWFLAKE ***/!!!
* FROM
TABLE(FLATTEN(INPUT => [10,20,30])) AS numbers (
SEQ,
KEY,
PATH,
INDEX,
numbers,
THIS
),
TABLE(FLATTEN(INPUT => ['Hi', 'Hello', 'Bye'])) AS words (
SEQ,
KEY,
PATH,
INDEX,
words,
THIS
);
SSC-EWI-BQ0017¶
Das Aufheben der Verschachtelung eines Arrays von Structs wird nicht unterstützt
Schweregrad¶
Medium
Beschreibung¶
Beim Aufheben der Verschachtelung eines Arrays von Structs generiert BigQuery für jedes Struct-Feld eine Spalte und teilt die Struct-Werte in die entsprechenden Spalten auf. Dieses Verhalten wird derzeit nicht unterstützt. Wann immer SnowConvert erkennt, dass der UNNEST-Operator auf ein Array von Structs angewendet wird, wird dieses EWI generiert.
Codebeispiel¶
Eingabecode:¶
BigQuery¶
CREATE TABLE test.myTestTable
(
column1 ARRAY<STRUCT<x INT64, y STRING, z STRUCT<a INT64, b INT64>>>
);
SELECT structValues FROM test.myTestTable AS someTable, UNNEST(someTable.column1) AS structValues;
Generierter Code:¶
Snowflake¶
CREATE TABLE test.myTestTable
(
column1 ARRAY DEFAULT []
);
SELECT structValues FROM
test.myTestTable AS someTable,
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0017 - UNNEST OF AN ARRAY OF STRUCTS IS NOT SUPPORTED ***/!!! UNNEST(someTable.column1) AS structValues;