INSERT INTO in Snowflake: Ein kompletter Leitfaden für Einsteiger
Lerne, wie du mit der INSERT INTO-Anweisung effizient Daten in Snowflake Tabellen einfügen kannst. Dieser Leitfaden behandelt die Syntax, Anwendungsfälle, Best Practices und Techniken zur Fehlerbehebung.
Wenn du mit Snowflake arbeitest, gehört das Einfügen von Daten in Tabellen zu den grundlegenden Operationen, die du durchführen wirst. Mit der Anweisung INSERT INTO kannst du neue Datensätze in eine Tabelle einfügen, egal ob du manuell Werte eingibst, mehrere Zeilen einfügst oder Daten aus anderen Tabellen abrufst.
In diesem Leitfaden gehe ich mit dir durch die Syntax, verschiedene Anwendungsfälle, Best Practices und allgemeine Schritte zur Fehlerbehebung, um INSERT INTO effektiv in Snowflake zu nutzen.
Was ist der Befehl INSERT INTO in Snowflake?
Bevor wir die Syntax besprechen, müssen wir zunächst den Zweck von INSERT INTO in Snowflake und die verschiedenen Anwendungsfälle verstehen.
Das Hinzufügen von Daten zu einer Datenbank ist ein wichtiger Teil der Verwaltung einer Datenbank. Die Anweisung INSERT INTO wird in Snowflake verwendet, um neue Datenzeilen in eine Tabelle einzufügen. Sie kann einzelne Zeilen, mehrere Zeilen oder Massendaten aus einer anderen Tabelle einfügen. Du kannst entweder Daten einfügen, indem du jeden Wert für eine bestimmte Zeile oder einen Satz von Zeilen manuell eingibst, oder eine SQL-Anweisung verwenden, um Daten aus anderen Datenquellen zu laden.
> INSERT INTO ist zwar ein grundlegender Befehl, aber es ist ein guter Anfang, Snowflake und seine Architektur zu verstehen. Schau dir tdieses Tutorial zu Snowflake an, um die Grundlagen aufzufrischen!
Anwendungsfälle für INSERT INTO
Hier sind einige der häufigsten Anwendungsfälle für die INSERT INTO Klausel.
Manuelles Hinzufügen neuer Datensätze zu einer Tabelle.
Masseneinfügung mehrerer Zeilen in einer einzigen Abfrage.
Übertragen von Daten von einer Tabelle in eine andere.
Anhängen neuer Daten an einen bestehenden Datensatz.
Auffüllen einer Tabelle aus den Ergebnissen einer SELECT Abfrage.
Jetzt kommen wir zur eigentlichen Syntax. Lass uns zunächst die einfachste Verwendung von INSERT INTO besprechen: das Hinzufügen von Daten zu einer Zeile durch manuelle Eingabe der Werte.
Die grundlegende Syntax für INSERT INTO lautet wie folgt:
INSERTINTO table_name (column1, column2, column3)VALUES(value1, value2, value3);Bereitgestellt von
Du schreibst die Klausel INSERT INTO aus, gefolgt von der table_name, in die wir die Daten einfügen. Um die Reihenfolge der Daten genau festzulegen, können wir die Namen der Spalten, die in Klammern folgen, als (column1, column2, column3) angeben. Der letzte Teil ist das Schreiben der VALUES (value1, value2, value3), die in die jeweiligen Spalten eingefügt werden.
Einfügen von Daten ohne Angabe von Spaltennamen
Wenn du die Spaltennamen weglässt, geht Snowflake davon aus, dass die Werte in der gleichen Reihenfolge wie im Schema der Tabelle angegeben werden. Das heißt, der erste Wert wird für die erste Spalte in der Tabelle angenommen usw.
Bei diesem Ansatz musst du sicherstellen, dass die Werte in der gleichen Reihenfolge wie die Spalten stehen, sonst kann es zu Problemen mit den Datentypen oder der Datenkonsistenz kommen.
Erweiterte Verwendung von INSERT INTO in Snowflake
Einige der fortgeschritteneren Verwendungen von INSERT INTO sind das Einfügen einer einzelnen Zeile aus einer anderen Tabelle, das Einfügen mehrerer Zeilen oder das Einfügen von Daten mit Bedingungen. Dies ist eine nützliche Methode, um Daten zu einer Tabelle hinzuzufügen oder Daten in einer separaten Tabelle zu archivieren.
Verwendung von INSERT INTO mit mehreren Zeilen
Anstatt eine Zeile nach der anderen einzufügen, kannst du mehrere Zeilen in einer einzigen Anweisung einfügen:
INSERTINTO employees (id, name, department)VALUES(1,'Alice','HR'),(2,'Bob','Finance'),(3,'Charlie','IT');Bereitgestellt von
Dieser Ansatz reduziert den Overhead bei der Abfrage und verbessert die Leistung. Beachte, dass jede Zeile vollständig von einer Klammer umgeben ist und von einem Komma gefolgt wird. Wenn du das nicht tust, kann das zu Fehlern führen.
Einfügen von Daten aus einer anderen Tabelle
Um Daten von einer Tabelle in eine andere zu kopieren, verwendest du INSERT INTO mit einer SELECT Anweisung:
INSERTINTO target_table (column1, column2)SELECT
column1,
column2
FROM source_table ;Bereitgestellt von
Dies ist nützlich, um Daten zu archivieren, Daten vor dem Einfügen umzuwandeln oder gefilterte Datensätze anzuhängen. Wenn die Quelldaten die gleiche Spaltenreihenfolge wie das Ziel haben, kannst du die Spalten neben dem target_table nicht benennen.
Bedingte Einsätze
Du kannst Daten basierend auf einer Bedingung in deine SELECT Anweisung einfügen, sodass du nicht eine ganze Tabelle kopierst.
INSERTINTO high_salary_employees (id, name, salary)SELECT
id,
name,
salary
FROM employees
WHERE salary >100000;Bereitgestellt von
Dadurch wird sichergestellt, dass nur Arbeitnehmer, die die Bedingung erfüllen, in die neue Tabelle eingefügt werden. Auf diese Weise wird die Datenintegrität gewahrt und der Speicher- und Rechenaufwand reduziert.
Best Practices für die Verwendung von INSERT INTO in Snowflake
Hier sind einige bewährte Methoden für die Verwendung von INSERT INTO in Snowflake. Dazu gehört die Verwendung effizienterer Anweisungen wie MERGE und die Validierung von Daten vor dem Einfügen.
MERGE anstelle von INSERT INTO für Upserts verwenden
Wenn du neue Datensätze einfügen, aber bestehende Datensätze aktualisieren musst, ist MERGE die bessere Wahl, weil es bestehende Daten abgleichen kann.
Es sucht nach aktuellen Zeilen, die ein bestimmtes Kriterium erfüllen (z.B. eine vorhandene Mitarbeiter-ID) und kann bestimmte Werte in der Zieltabelle anhand einer Quelltabelle aktualisieren. Wenn es keine Übereinstimmung gibt, fügt es die neuen Daten ein. Dieses Konzept ist als "Upsert" (Update und Insert) bekannt.
Im Folgenden findest du ein Beispiel für die Verwendung von MERGE:
MERGEINTO target_table AS t
USING source_table AS s
ON t.id = s.id
WHENMATCHEDTHENUPDATESET t.salary = s.salary
WHENNOTMATCHEDTHENINSERT(id, name, salary)VALUES(s.id, s.name, s.salary);Bereitgestellt von
> Die MERGE Erklärung wird schnell zum Standardverfahren und ist einBestandteil der Snowflake-Zertifizierungen.
Batch-Einsätze und Leistung
Um die Leistung beim Einfügen großer Datensätze zu verbessern, solltest du dich auf die Durchführung von Batch-Inserts konzentrieren. Das reduziert den Overhead, weil nicht bei jeder Last neue Verbindungen aufgebaut werden müssen, und verbessert die Gesamtleistung. Hier sind einige Tipps zum Einfügen von Stapeln:
Verwende Masseneinfügungen, anstatt Zeile für Zeile einzufügen.
Verwende COPY INTO, wenn du große Daten aus externen Quellen lädst. Das ist nützlich, wenn du eine Verbindung zu einem System wie S3 herstellst.
Vermeide es, Daten innerhalb von Schleifen in Skripten einzufügen; die Stapelverarbeitung ist effizienter. Beende also die Schleife, speichere die Daten als eine einzige Datenquelle und lade dann diese gesamte Datenquelle auf einmal.
Datenüberprüfung vor dem Einfügen
Bevor du Daten einfügst, musst du sie validieren. Wenn deine Daten nicht validiert sind, kann das zu vielen Problemen oder gar zum Scheitern führen. Überlege dir, wie die Daten nachgelagert verwendet werden können und wie deine eingefügten Daten aussehen sollen. Hier sind einige wichtige Dinge, auf die du achten solltest:
Die Datentypen stimmen mit den Spaltendefinitionen überein.
Erforderliche Felder sind nicht null.
Keine doppelten Primärschlüssel oder Verstöße gegen eindeutige Beschränkungen.
Fehlerbehandlung bei INSERT INTO in Snowflake
Wie bereits erwähnt, kann es beim Einfügen von Daten gelegentlich zu Fehlern kommen. Hier sind einige Tipps, wie du mit häufigen Fehlern umgehen kannst.
Umgang mit doppelten Schlüsseln
Snowflake selbst erzwingt nicht unbedingt eindeutige Beschränkungen, d.h. es ist möglich, doppelte Daten einzufügen.
Wenn du dir Sorgen um doppelte Schlüssel machst, ist es vielleicht besser, sie mit MERGE oder ON CONFLICT (falls unterstützt) zu behandeln. Schließlich kannst du mit WHERE auch eine Bedingung zu deiner Einfügung hinzufügen, um alles auszuschließen, was in der Zieltabelle vorhanden ist.
INSERTINTO employees (id, name)SELECT id, name FROM new_employees
WHERE id NOTIN(SELECT id FROM employees);Bereitgestellt von
Umgang mit NULL-Werten
Stelle sicher, dass nullbare Spalten NULL-Werte zulassen oder Standardwerte bereitstellen. Snowflake setzt alle NOT NULL-Spaltenbeschränkungen durch. Wenn du also NULL-Daten in einer Spalte mit dieser Beschränkung hast, schlägt deine Einfügung fehl. Das Wichtigste dabei ist, dass du deine Daten verstehst und weißt, wo NULLs erlaubt sind und wo nicht.
Fehlersuche bei häufigen Problemen mit INSERT INTO
Andere Probleme können sich auf Datentypen oder Berechtigungsfragen beziehen. Wir werden kurz besprechen, wie du mit diesen Problemen umgehen kannst.
Unstimmigkeiten beim Datentyp
Es treten Fehler auf, wenn du einen Wert mit dem falschen Datentyp einfügst. Du kannst das manchmal umgehen, indem du deine Daten typisieren lässt, aber das kann zu NULLs führen. Um sicherzugehen, dass deine eingefügten Daten mit denen des Ziels übereinstimmen, kannst du versuchen, auf information_schema (wo du Rechte hast) nachzusehen und dein Schema auf diese Weise zu überprüfen:
SELECT column_name,
data_type
FROM information_schema.columnsWHERE table_name ='employees';Bereitgestellt von
Probleme mit Berechtigungen
Wenn du einen Berechtigungsfehler erhältst, überprüfe die Benutzerrollen und -berechtigungen:
Wenn du nicht die Erlaubnis hast, INSERT zu benutzen, frage deinen Vorgesetzten, deine IT-Abteilung oder den Eigentümer des Datensatzes. Wenn du in der Lage bist, dir selbst Rechte zu erteilen, dann verwende den folgenden Code:
Der Befehl INSERT INTO in Snowflake ist ein leistungsfähiges Werkzeug, um Tabellen effizient mit Daten zu füllen. Ganz gleich, ob du einzelne Zeilen einfügst, Massendaten oder Daten aus einer anderen Tabelle kopierst, die Kenntnis der Syntax und der Best Practices gewährleistet Datenintegrität und Leistung. Du kannst eine robuste und effiziente Snowflake-Datenbank pflegen, indem du Fehler behandelst, Daten validierst und Einfügungen optimierst.
Um mehr über Snowflake zu erfahren, empfehle ich dir die folgenden Kurse:
Was ist der Unterschied zwischen INSERT INTO und COPY INTO in Snowflake?⌄
INSERT INTO wird zum Einfügen bestimmter Datenzeilen verwendet, während COPY INTO für das Massenladen großer Datensätze aus externen Quellen wie AWS S3 oder Azure Blob Storage optimiert ist.
Unterstützt INSERT INTO Transaktionen in Snowflake?⌄
Ja, Snowflake unterstützt Transaktionen, so dass du BEGIN, COMMIT und ROLLBACK verwenden kannst, um die Datenintegrität beim Einfügen von Daten zu gewährleisten.
Was sind die besten Praktiken für die Leistung beim Einfügen großer Datenmengen?⌄
Verwende Batch-Inserts, anstatt Zeile für Zeile einzufügen, nutze COPY INTO für Bulk-Loads und vermeide unnötige Indizes, die die Einfügeleistung verlangsamen können.
Kann ich in Snowflake INTO in eine sichere Ansicht einfügen?⌄
Nein. Ansichten - einschließlich sicherer Ansichten - sind virtuelle Tabellen, in die nicht direkt geschrieben werden kann. Du musst in die zugrundeliegende Basistabelle einfügen oder eine transiente Staging-Tabelle verwenden und dann die Ansicht neu erstellen oder aktualisieren.
Wie kann ich JSON-Daten in eine VARIANT-Spalte einfügen?⌄
Schließe das JSON in einfache Anführungszeichen ein und wandle es in VARIANTum , z.B. INSERT INTO t (payload) VALUES (PARSE_JSON('{\"key\":\"value\"}')); . Snowflake bewahrt das halbstrukturierte Format automatisch für spätere Abfragen auf.
Wie kann ich eine versehentliche INSERT INTO-Eingabe am schnellsten rückgängig machen?⌄
Nutze die Zeitreise, um die Tabelle an einem Punkt vor dem Einfügen wiederherzustellen: CREATE OR REPLACE TABLE my_table AS SELECT * FROM my_table AT (TIMESTAMP => '2025-06-17 09:00:00');. Dadurch werden manuelle DELETE-Anweisungen vermieden und das Clustering bleibt erhalten.
Erstellt INSERT INTO automatisch Mikropartitionen?⌄
Ja. Jede DML-Operation (einschließlich Einfügungen) löst die Micro-Partitioning-Engine von Snowflake aus, die die Daten für das Pruning und die Komprimierung organisiert. Du musst die Partitionen nicht mehr manuell verwalten.
Wie wirkt sich das Clustering auf die INSERT-Leistung aus?⌄
Clustering-Schlüssel erhöhen die Abfragegeschwindigkeit, verursachen aber zusätzlichen Aufwand beim Schreiben. Häufige Einfügungen in eine stark geclusterte Tabelle können langsamer sein, also wähle die Clustering-Schlüssel sorgfältig aus und führe das Clustering nach Möglichkeit außerhalb der Stoßzeiten durch.
Kann ich INSERT INTO mit Snowpipe verwenden?⌄
Indirekt. Snowpipe nimmt Dateien in eine Staging-Tabelle auf; nach der Umwandlung kannst du dann INSERT INTO analytische Tabellen aufrufen. Für kontinuierliches Laden kombinierst du Snowpipe mit Streams & Tasks anstelle von manuellen Einsätzen.
Wie viele Daten kann ich in einer einzigen Anweisung einfügen?⌄
Snowflake unterstützt sehr große INSERT INTO … SELECT Operationen - in der Praxis mehrere Terabyte -, weil es die Arbeit in Mikro-Batches aufteilt. Der wichtigste Begrenzer sind die Einstellungen für die Lagergröße und die Zeitüberschreitung.
Welche Rollenberechtigungen sind für INSERT INTO in gemeinsam genutzten Datenbanken erforderlich?⌄
Die Rolle muss über das Recht INSERT für die Zieltabelle innerhalb des Verbraucherkontos verfügen . Datenfreigaben sind standardmäßig schreibgeschützt, daher kopierst du die Daten normalerweise zuerst in deine eigene beschreibbare Datenbank.
Wie kann ich die Ausführungszeit und die Kosten von INSERT INTO überwachen?⌄
Abfrage derdie Ansicht QUERY_HISTORY nach Ausführungsstatistiken, Lagergröße und verbrauchten Credits. Kombiniere sie mit ACCOUNT_USAGE.QUERY_HISTORY für langfristigelangfristige Trendanalyse und Kostenoptimierung.
Ich bin Datenwissenschaftler mit Erfahrung in räumlicher Analyse, maschinellem Lernen und Datenpipelines. Ich habe mit GCP, Hadoop, Hive, Snowflake, Airflow und anderen Data Science/Engineering-Prozessen gearbeitet.
Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Snowflake ist eine der besten Datenlagerplattformen. Lerne, wie die SQL-Schnittstelle Snowsight genutzt wird, um auf Daten zuzugreifen und sie zu erkunden.
Wenn du mit Snowflake arbeitest, gehört das Einfügen von Daten in Tabellen zu den grundlegenden Operationen, die du durchführen wirst. Mit der Anweisung
INSERT INTOkannst du neue Datensätze in eine Tabelle einfügen, egal ob du manuell Werte eingibst, mehrere Zeilen einfügst oder Daten aus anderen Tabellen abrufst.In diesem Leitfaden gehe ich mit dir durch die Syntax, verschiedene Anwendungsfälle, Best Practices und allgemeine Schritte zur Fehlerbehebung, um
INSERT INTOeffektiv in Snowflake zu nutzen.Was ist der Befehl INSERT INTO in Snowflake?
Bevor wir die Syntax besprechen, müssen wir zunächst den Zweck von
INSERT INTOin Snowflake und die verschiedenen Anwendungsfälle verstehen.Das Hinzufügen von Daten zu einer Datenbank ist ein wichtiger Teil der Verwaltung einer Datenbank. Die Anweisung
INSERT INTOwird in Snowflake verwendet, um neue Datenzeilen in eine Tabelle einzufügen. Sie kann einzelne Zeilen, mehrere Zeilen oder Massendaten aus einer anderen Tabelle einfügen. Du kannst entweder Daten einfügen, indem du jeden Wert für eine bestimmte Zeile oder einen Satz von Zeilen manuell eingibst, oder eine SQL-Anweisung verwenden, um Daten aus anderen Datenquellen zu laden.>
INSERT INTOist zwar ein grundlegender Befehl, aber es ist ein guter Anfang, Snowflake und seine Architektur zu verstehen. Schau dir tdieses Tutorial zu Snowflake an, um die Grundlagen aufzufrischen!Anwendungsfälle für INSERT INTO
Hier sind einige der häufigsten Anwendungsfälle für die
INSERT INTOKlausel.SELECTAbfrage.> Das Erlernen dieser Klausel ist grauch für Snowflake-Interviews!
Syntax von INSERT INTO in Snowflake
Jetzt kommen wir zur eigentlichen Syntax. Lass uns zunächst die einfachste Verwendung von
INSERT INTObesprechen: das Hinzufügen von Daten zu einer Zeile durch manuelle Eingabe der Werte.Die grundlegende Syntax für
INSERT INTOlautet wie folgt:Du schreibst die Klausel
INSERT INTOaus, gefolgt von dertable_name, in die wir die Daten einfügen. Um die Reihenfolge der Daten genau festzulegen, können wir die Namen der Spalten, die in Klammern folgen, als(column1, column2, column3)angeben. Der letzte Teil ist das Schreiben derVALUES (value1, value2, value3), die in die jeweiligen Spalten eingefügt werden.Einfügen von Daten ohne Angabe von Spaltennamen
Wenn du die Spaltennamen weglässt, geht Snowflake davon aus, dass die Werte in der gleichen Reihenfolge wie im Schema der Tabelle angegeben werden. Das heißt, der erste Wert wird für die erste Spalte in der Tabelle angenommen usw.
Bei diesem Ansatz musst du sicherstellen, dass die Werte in der gleichen Reihenfolge wie die Spalten stehen, sonst kann es zu Problemen mit den Datentypen oder der Datenkonsistenz kommen.
Erweiterte Verwendung von INSERT INTO in Snowflake
Einige der fortgeschritteneren Verwendungen von
INSERT INTOsind das Einfügen einer einzelnen Zeile aus einer anderen Tabelle, das Einfügen mehrerer Zeilen oder das Einfügen von Daten mit Bedingungen. Dies ist eine nützliche Methode, um Daten zu einer Tabelle hinzuzufügen oder Daten in einer separaten Tabelle zu archivieren.Verwendung von INSERT INTO mit mehreren Zeilen
Anstatt eine Zeile nach der anderen einzufügen, kannst du mehrere Zeilen in einer einzigen Anweisung einfügen:
Dieser Ansatz reduziert den Overhead bei der Abfrage und verbessert die Leistung. Beachte, dass jede Zeile vollständig von einer Klammer umgeben ist und von einem Komma gefolgt wird. Wenn du das nicht tust, kann das zu Fehlern führen.
Einfügen von Daten aus einer anderen Tabelle
Um Daten von einer Tabelle in eine andere zu kopieren, verwendest du
INSERT INTOmit einerSELECTAnweisung:Dies ist nützlich, um Daten zu archivieren, Daten vor dem Einfügen umzuwandeln oder gefilterte Datensätze anzuhängen. Wenn die Quelldaten die gleiche Spaltenreihenfolge wie das Ziel haben, kannst du die Spalten neben dem
target_tablenicht benennen.Bedingte Einsätze
Du kannst Daten basierend auf einer Bedingung in deine
SELECTAnweisung einfügen, sodass du nicht eine ganze Tabelle kopierst.Dadurch wird sichergestellt, dass nur Arbeitnehmer, die die Bedingung erfüllen, in die neue Tabelle eingefügt werden. Auf diese Weise wird die Datenintegrität gewahrt und der Speicher- und Rechenaufwand reduziert.
Best Practices für die Verwendung von INSERT INTO in Snowflake
Hier sind einige bewährte Methoden für die Verwendung von
INSERT INTOin Snowflake. Dazu gehört die Verwendung effizienterer Anweisungen wieMERGEund die Validierung von Daten vor dem Einfügen.MERGE anstelle von INSERT INTO für Upserts verwenden
Wenn du neue Datensätze einfügen, aber bestehende Datensätze aktualisieren musst, ist
MERGEdie bessere Wahl, weil es bestehende Daten abgleichen kann.Es sucht nach aktuellen Zeilen, die ein bestimmtes Kriterium erfüllen (z.B. eine vorhandene Mitarbeiter-ID) und kann bestimmte Werte in der Zieltabelle anhand einer Quelltabelle aktualisieren. Wenn es keine Übereinstimmung gibt, fügt es die neuen Daten ein. Dieses Konzept ist als "Upsert" (Update und Insert) bekannt.
Im Folgenden findest du ein Beispiel für die Verwendung von
MERGE:> Die
MERGEErklärung wird schnell zum Standardverfahren und ist einBestandteil der Snowflake-Zertifizierungen.Batch-Einsätze und Leistung
Um die Leistung beim Einfügen großer Datensätze zu verbessern, solltest du dich auf die Durchführung von Batch-Inserts konzentrieren. Das reduziert den Overhead, weil nicht bei jeder Last neue Verbindungen aufgebaut werden müssen, und verbessert die Gesamtleistung. Hier sind einige Tipps zum Einfügen von Stapeln:
COPY INTO, wenn du große Daten aus externen Quellen lädst. Das ist nützlich, wenn du eine Verbindung zu einem System wie S3 herstellst.Datenüberprüfung vor dem Einfügen
Bevor du Daten einfügst, musst du sie validieren. Wenn deine Daten nicht validiert sind, kann das zu vielen Problemen oder gar zum Scheitern führen. Überlege dir, wie die Daten nachgelagert verwendet werden können und wie deine eingefügten Daten aussehen sollen. Hier sind einige wichtige Dinge, auf die du achten solltest:
Fehlerbehandlung bei INSERT INTO in Snowflake
Wie bereits erwähnt, kann es beim Einfügen von Daten gelegentlich zu Fehlern kommen. Hier sind einige Tipps, wie du mit häufigen Fehlern umgehen kannst.
Umgang mit doppelten Schlüsseln
Snowflake selbst erzwingt nicht unbedingt eindeutige Beschränkungen, d.h. es ist möglich, doppelte Daten einzufügen.
Wenn du dir Sorgen um doppelte Schlüssel machst, ist es vielleicht besser, sie mit
MERGEoderON CONFLICT(falls unterstützt) zu behandeln. Schließlich kannst du mitWHEREauch eine Bedingung zu deiner Einfügung hinzufügen, um alles auszuschließen, was in der Zieltabelle vorhanden ist.Umgang mit NULL-Werten
Stelle sicher, dass nullbare Spalten NULL-Werte zulassen oder Standardwerte bereitstellen. Snowflake setzt alle NOT NULL-Spaltenbeschränkungen durch. Wenn du also NULL-Daten in einer Spalte mit dieser Beschränkung hast, schlägt deine Einfügung fehl. Das Wichtigste dabei ist, dass du deine Daten verstehst und weißt, wo NULLs erlaubt sind und wo nicht.
Fehlersuche bei häufigen Problemen mit INSERT INTO
Andere Probleme können sich auf Datentypen oder Berechtigungsfragen beziehen. Wir werden kurz besprechen, wie du mit diesen Problemen umgehen kannst.
Unstimmigkeiten beim Datentyp
Es treten Fehler auf, wenn du einen Wert mit dem falschen Datentyp einfügst. Du kannst das manchmal umgehen, indem du deine Daten typisieren lässt, aber das kann zu NULLs führen. Um sicherzugehen, dass deine eingefügten Daten mit denen des Ziels übereinstimmen, kannst du versuchen, auf
information_schema(wo du Rechte hast) nachzusehen und dein Schema auf diese Weise zu überprüfen:Probleme mit Berechtigungen
Wenn du einen Berechtigungsfehler erhältst, überprüfe die Benutzerrollen und -berechtigungen:
Wenn du nicht die Erlaubnis hast,
INSERTzu benutzen, frage deinen Vorgesetzten, deine IT-Abteilung oder den Eigentümer des Datensatzes. Wenn du in der Lage bist, dir selbst Rechte zu erteilen, dann verwende den folgenden Code:Fazit
Der Befehl INSERT INTO in Snowflake ist ein leistungsfähiges Werkzeug, um Tabellen effizient mit Daten zu füllen. Ganz gleich, ob du einzelne Zeilen einfügst, Massendaten oder Daten aus einer anderen Tabelle kopierst, die Kenntnis der Syntax und der Best Practices gewährleistet Datenintegrität und Leistung. Du kannst eine robuste und effiziente Snowflake-Datenbank pflegen, indem du Fehler behandelst, Daten validierst und Einfügungen optimierst.
Um mehr über Snowflake zu erfahren, empfehle ich dir die folgenden Kurse: