Data Engineering

Subtiler Unterschied zwischen einem Dockerfile und einer dockercompose Datei – Variablen im Entrypoint Direktiv

Subtiler Unterschied zwischen einem Dockerfile und einer dockercompose Datei – Variablen im Entrypoint Direktiv

Hung ManhMay 31, 20243 min read

TLDR: Variablen in Entrypoints sollten escaped werden. Dies kann durch die Verwendung eines zweiten $ erreicht werden. Hintergrund Beim Einrichten eines Spark Thrift Servers stieß ich auf ein – im Nachhinein betrachtet – offensichtliches Versehen. Ich würde immer den folgenden…

Spark – Fehler mit UTF8 Kodierung im Docker Image

Spark – Fehler mit UTF8 Kodierung im Docker Image

Hung ManhMar 24, 20244 min read

Im Deutschen gibt es Sonderzeichen, die als Umlaute bekannt sind, unter anderem z.B. ä, ü, ö. Wenn das System nicht korrekt eingestellt ist, kann die Kodierung dieser Zeichen zu einem Informationsverlust führen. Sehen wir uns ein praktisches Beispiel an, bei…

Spark – java.nio.channels.UnresolvedAddressException

Spark – java.nio.channels.UnresolvedAddressException

Hung ManhFeb 1, 20244 min read

Eine sehr kurze Beschreibung des folgenden Fehlers, der anscheinend auch bei dem folgendem Benutzer aufgetreten ist und dokumentiert wurde (github). Dieser Fehlercode kann in verschiedenen Szenarien auftreten. In meiner speziellen Situation war die Lösung jedoch uim Glück ganz simpel Setup…

Exasol – object XXX not found

Exasol – object XXX not found

Hung ManhJan 20, 20242 min read

TLDR: Indentifiers in Exasol werden intern in Großbuchstaben gespeichert. Attribute in der Selektanweisung sollten in Anführungszeichen gesetzt werden. Beobachtung In Exasol habe ich eine benutzerdefinierte Python-Funktion erstellt und zwar wie folgt: CREATE OR REPLACE PYTHON3 SCALAR SCRIPT “SCHEMA”.”PARSE_XML” (“xml” VARCHAR(2000000)…

dummy-img

Python – Pass by object: Praktische Fallstricke

Hung ManhSep 19, 20233 min read

Innerhalb einer Schleife habe ich mehrfach auf ein Objekt in einem Dictionary zugegriffen, es transformiert und visualisiert. Die Absicht war, dass alle Transformationen voneinander isoliert bleiben sollten. Was aber tatsächlich passierte, war, dass sich diese Transformationen aufgrund von Pythons “Pass…

Doppelte Schlüssel bei der Erstellung einer Json aus einem Python Dict

Doppelte Schlüssel bei der Erstellung einer Json aus einem Python Dict

Hung ManhJan 25, 20232 min read

TLDR: Ein dictionary in json behandelt alle Schlüssel als String, während ein Python Dictionay nicht nur zwischen dem Inhalt, sondern auch dem Datentyp unterscheidet (siehe Stackoverflow). Wenn man ein Dictionary in einem json speichert und das Dictionary daraus wieder lädt,…

Superset Guest Token mit Python erstellen, um Superset Dashboard zu embedden

Superset Guest Token mit Python erstellen, um Superset Dashboard zu embedden

Hung ManhDec 30, 20224 min read

Das große Ziel ist es, ein Superset Dashboard in einer Webanwendung z.B. in REACT einzubetten. Um das zu erreichen, muss unter anderem ein Guest Token (Service Account) erstellt werden. Da dieser Prozess (meiner Meinung nach) nicht ganz ausreichend gut dokumentiert…

Airflow – “Fill Dagbag” dauert zu lange

Airflow – “Fill Dagbag” dauert zu lange

Hung ManhDec 14, 20224 min read

TLDR: Es ist möglich, DAGs mit nur einem Skript dynamisch zu erstellen. Bei der Ausführung der Tasks wird jedoch das ursprüngliche DAG-Skript noch einmal geparset. Dies führt zu unnötigen Parsing-Iterationen von DAGs, die nicht zum aktuellen Task zugehörig sind. Beobachtung:…

Migration von Kubernetes in ein VCN Natives Cluster in der OCI

Migration von Kubernetes in ein VCN Natives Cluster in der OCI

Hung ManhDec 2, 20223 min read

Euer managed Kubernetes Cluster in der OCI könnte eine kleine Anzeige besitzen, die besagt, dass eine “Migration erforderlich” ist. Das liegt daran, dass in früheren Releases (vor dem 16. März die der Kubernetes API-Endpunkt von der Container Engine zwar bereitgestellt,…

Statistiken, Statistiken, Statistiken!

Statistiken, Statistiken, Statistiken!

Hung ManhFeb 3, 20223 min read

Wir hatten eine moderat komplexe Query, die ca. 270000 Zeilen umfasste, allerdings über eine Stunde lief. Nachdem Statistiken zu der darunterliegenden Tabelle aktualisiert wurden, lief die Query in nur 4 Sekunden durch. Die Query sah etwa wie folgt aus: WITH…

hungsblog | Nguyen Hung Manh | Dresden
Nach oben scrollen