Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
Übersicht
Umsatzgestaltung
Billing
Steuer
Business Analytics
Berichte
Daten
    Übersicht
    Schema
    Nutzerspezifische Berichte
    Sigma-API
    Nutzerspezifische Berichte erstellen
    Mit Sigma Abfragen schreiben
      Abfragen terminieren
      Abfragen migrieren
    Daten innerhalb einer Organisation abfragen
    Stripe-Daten synchronisieren
    Data Pipeline
    Daten in ein Data Warehouse exportieren
    Daten in Cloud-Speicher exportieren
    Datenverwaltung
    Datenaktualität
    Anwendungsszenarien für Geschäfts- und Produktdaten
    Externe Daten importieren
StartseiteUmsatzDataWrite queries using Sigma

Abfragen migrieren

Migrieren Sie Ihre Sigma-Abfragen von Presto zu Trino.

Wir haben die Sigma Abfrageinfrastruktur von Presto v334 auf Trino v414 aktualisiert. Die meisten Abfragen laufen als Ergebnis des Upgrades schneller, doch einige Abfragen können unerwartet Fehler aufweisen oder Ergebnisse in verschiedenen Formaten liefern.

Verwenden Sie die folgenden Vorschläge, um Ihre Sigma-Abfragen mit Trino v414 kompatibel zu machen.

Ungültige Zeitzonen

Die Zeitzone AMERICA/NEW_YORK ist in Trino v414 nicht mehr gültig.

-- FAILED: Presto error: NOT_SUPPORTED: Time zone not supported: AMERICA/NEW_YORK select date_format( c.created AT TIME ZONE 'AMERICA/NEW_YORK', '%Y-%m-%d' ) from charges c

Verwenden Sie stattdessen America/New_York.

-- VALID select date_format( c.created AT TIME ZONE 'America/New_York', '%Y-%m-%d' ) from charges c

Ungültige Spaltenreferenzen

Trino v414 erlaubt es nicht, auf Spaltennamen mit ihrer Ursprungsunterabfrage oder ihrem bedingten Tabellenausdruck (CTE) außerhalb des Bereichs zu verweisen.

-- FAILED: Presto error: COLUMN_NOT_FOUND: Column 'c.created' can't be resolved select c.created from (select created from charges c)

Die vorherige Abfrage ist ungültig, da die Unterabfrage c nicht auf der obersten Ebene definiert ist, sondern außerhalb ihres definierten Bereichs auf der obersten Ebene referenziert wird.

-- VALID select created from (select created from charges c)
-- VALID select c.created from (select created from charges) c

Verweisen Sie entweder auf die Spalte ohne die Unterabfrage oder definieren Sie die Unterabfrage auf der gleichen Ebene wie ihre Referenz.

Wissenschaftliche Notation

Das Umwandeln eines double in einen varchar in Trino v414 liefert Ergebnisse in wissenschaftlicher Notation statt in Dezimalschreibweise wie in Presto v334.

-- RESULT: 1.0E2 select cast(100.0 as varchar)

Um diese Dezimalnotation beizubehalten, wandeln Sie das Double in decimal und dann in varchar um.

-- RESULT: 100.0 select cast(cast(100.0 as decimal(18,1)) as varchar)

Zeitstempelfunktionen

FROM_UNIXTIME

Trino v414 geht davon aus, dass der Ergebniszeitstempel in UTC ist, und fügt bei Verwendung von from_unixtime ein abschließendes „UTC“ hinzu.

-- Trino v414 RESULT: 1970-01-01 00:00:00.000 UTC -- Presto v334 RESULT: 1970-01-01 00:00:00 +0000 select from_unixtime(0)

Um das abschließende „UTC“ zu entfernen, wandeln Sie das Ergebnis von from_unixtime als timestamp um.

-- RESULT: 1970-01-01 00:00:00 +0000 select cast(from_unixtime(0) as timestamp)

TO_ISO8601

In Presto v334 fügt to_iso8601 einem Zeitstempel ohne Zeitzone ein abschließendes Zulu-Zeitzonen-Suffix („Z“) hinzu, während Trino v414 dies nicht tut.

-- Presto v334 RESULT: 2024-04-01T00:00:00.000Z -- Trino v414 RESULT: 2024-04-01T00:00:00 select to_iso8601(timestamp '2024-04-01')

Um sicherzustellen, dass das hintere Zulu-Zeitzonensuffix hinzugefügt wird, interpretieren Sie den Zeitstempel in UTC, bevor Sie to_iso8601 aufrufen.

-- RESULT: 2024-04-01T00:00:00Z select to_iso8601(timestamp '2024-04-01' at time zone 'UTC')

Abfrage non-deterministisch

Wenn Ihre Abfrage unabhängig von der Sigma-Version nicht deterministisch ist, können verschiedene Ausführungen zu unterschiedlichen Ergebnissen führen. Hier sind häufige Abfragemuster, die zu nicht-deterministischen Ergebnissen führen können.

Top-K-Abfragen

-- POTENTIALLY NON-DETERMINISTIC select * from charges order by created DESC limit 10

Wenn die 10. und 11. der zuletzt erstellten Gebühren zur gleichen Zeit erstellt wurden, kann nicht garantiert werden, welche Gebühr zurückerstattet wird. Achten Sie darauf, auch nach einer eindeutigen Kennung für deterministische Ergebnisse zu sortieren.

-- DETERMINISTIC select * from charges order by created DESC, id limit 10

Fensteraggregation

-- POTENTIALLY NON-DETERMINISTIC select * from ( select c.*, row_number() over ( partition by c.customer_id order by c.amount DESC ) as row_rank from charges c ) where row_rank = 1

Die obige Abfrage gibt die höchste Gebühr für jeden Kunden/jede Kundin mit row_number zurück. Siehe Fensterfunktionen. Wenn ein Kunde/eine Kundin mehrere Abbuchungen mit demselben Höchstbetrag hat, kann nicht garantiert werden, welche Abbuchung zurückgegeben wird.

Sortieren nach einer eindeutigen Kennung in der Fensterreihenfolge für deterministische Ergebnisse.

-- DETERMINISTIC select * from ( select c.*, row_number() over ( partition by c.customer_id order by c.amount DESC, c.created DESC, c.id ) as row_rank from charges c ) where row_rank = 1
War diese Seite hilfreich?
JaNein
Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
Nehmen Sie an unserem Programm für frühzeitigen Zugriff teil.
Schauen Sie sich unser Änderungsprotokoll an.
Fragen? Sales-Team kontaktieren.
LLM? Lesen Sie llms.txt.
Unterstützt von Markdoc