Komplexes XML in SQL Server auslesen — tausend Attribute generisch zerlegen statt Stunden in Schleifen

Ein Katalog mit rund 3000 Produktkonfigurationen liegt als XML vor. Je nach Ausstattung trägt eine Konfiguration andere und zusätzliche Attribute, über alle Varianten sind es etwa tausend. In einem früheren Projekt lief die Auswertung eines solchen Katalogs im Anwendungscode: eine Schleife über die Objekttypen, darin eine Schleife über die Attribute, dazu Listen im Speicher, die … Weiterlesen

Downtime-arme Migration SQL Server → PostgreSQL — Strategien für den Cutover

Die Frage kommt verlässlich in der ersten Planungsrunde, und sie kommt selten aus der IT: Wie lange ist die Datenbank beim Umzug nicht erreichbar? Die Antwort entscheidet, ob die Daten in einem Wartungsfenster am Stück umgezogen werden, ob der Bestand vorab kopiert wird und bis zum Umschalten nur noch die Änderungen folgen, oder ob ein … Weiterlesen

SQL Server vs. PostgreSQL — Vor- und Nachteile für den Umstieg

SQL Server oder PostgreSQL — die Frage ist selten „Welche Datenbank ist besser?“, sondern „Welche passt zu Budget, Team und Plattform?“. Wer die beiden Fragen verwechselt, migriert aus den falschen Gründen und merkt es erst, wenn die Lizenzrechnung zwar schrumpft, die Betriebskosten aber wachsen. Kurzüberblick: Voraussetzung: SQL-Server-Praxiserfahrung genügt. PostgreSQL-Begriffe wie MVCC oder Extensions werden beim ersten … Weiterlesen

Datenmigration: SQL Server nach PostgreSQL — der vollständige Leitfaden

Eine Datenmigration von SQL Server nach PostgreSQL scheitert selten am eigentlichen Kopieren der Daten. Sie scheitert an den stillen Unterschieden, die erst im Ziel auffallen: datetime, das keine Zeitzone kennt, bit, das kein boolean ist, ein IDENTITY, das zur Sequenz wird, und eine Collation, die plötzlich case-sensitiv vergleicht. Wer SQL Server nach PostgreSQL migrieren will, kopiert nicht einfach Tabellen — er übersetzt Typen, Schema, … Weiterlesen

Daten transferieren: bcp, COPY, pgloader, ETL — welche Methode wann

Daten umziehen klingt nach der einfachsten Phase der Migration: Die Tabelle steht, die Daten rein, fertig. Bis die erste größere Tabelle einen ganzen Nachmittag braucht — weil sie Zeile für Zeile per INSERT läuft statt in einem Rutsch per COPY. Wer Daten nach PostgreSQL migrieren will, hat vier Wege zur Auswahl, und die Methodenwahl entscheidet über Stunden statt Minuten. Anders … Weiterlesen

Schema-Migration SQL Server → PostgreSQL — Identity, Constraints, Defaults, Sequenzen

Eine Schema-Migration SQL Server → PostgreSQL wirkt erledigt, sobald das CREATE TABLE-Skript ohne Fehler durchläuft. Genau dann beginnt das eigentliche Problem: Die Tabelle steht, die Daten sind drin — und der erste INSERT, der eine neue ID vergeben soll, kollidiert mit einem bestehenden Schlüssel. Der Grund ist kein Tippfehler, sondern ein Mechanismus-Wechsel. Aus IDENTITY wird in PostgreSQL eine Sequenz, und die … Weiterlesen

PL/pgSQL-Funktionen mit Tabellen-Rückgabe — RETURNS TABLE, SETOF und wann eine View besser ist

Eine View ist die eleganteste Art, eine wiederkehrende Abfrage zu kapseln — bis zu dem Moment, in dem die Abfrage ein Argument von außen braucht. Eine View kennt keine Parameter. Sobald im WHERE ein Wert stehen soll, den der Aufrufer mitgibt, ist die tabellenwertige Funktion das Mittel der Wahl: eine Funktion, die statt eines einzelnen Werts eine ganze Ergebnismenge … Weiterlesen

Datentyp-Mapping SQL Server → PostgreSQL — was sauber konvertiert und was kippt

Eine Migration von SQL Server nach PostgreSQL scheitert selten am eigentlichen Kopieren der Daten. Sie scheitert an datetime, wo timestamp und timestamptz keine Geschmacksfrage sind, an bit, das kein boolean ist, und an money, das man in PostgreSQL besser gar nicht erst anfasst. Das Datentyp-Mapping SQL Server PostgreSQL entscheidet, ob die Daten sauber ankommen — oder still verfälscht werden, ohne dass eine einzige Fehlermeldung erscheint. Die … Weiterlesen