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;
Copy

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;
Copy
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;
Copy
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" }}';
Copy

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;
Copy
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;
Copy

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);
Copy
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);
Copy

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);
Copy

Snowflake:

 SELECT 
    COUNT(col1) OVER(ORDER BY col2)
FROM 
    test.exampleTable;
Copy

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

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;";
Copy
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;
$$;
Copy

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);
Copy
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))');
Copy

Empfehlungen

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";
Copy
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';
Copy

Empfehlungen

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";
Copy
Generierter Code:
Erste Registerkarte
 SELECT
    !!!RESOLVE EWI!!! /*** SSC-EWI-BQ0008 - EIGHT HEX DIGIT UNICODE ESCAPE SEQUENCE IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
    '\U00100000';
Copy

Empfehlungen

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;
Copy
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
  $$;
Copy

Empfehlungen

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;
Copy
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;
Copy

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));
Copy
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));
Copy

Empfehlungen

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
GOOGLE_SHEETS

CSV

NEWLINE_DELIMITED_JSON
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/*']
);
Copy
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/*']
);
Copy

Empfehlungen

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);
Copy
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" }}';
Copy

Empfehlungen

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']
);
Copy
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;
Copy
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
);
Copy

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;
Copy
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;
Copy