Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
YouTube Security VideosGoogle Cloud Tech: Gemini is coming to your city(24.09.2026 um 15:00 Uhr)
AI & KI NachrichtenGoogle’s latest moonshot to put machine learning in space(24.09.2026 um 15:12 Uhr)
Windows Tipps & SecurityPoll: What's your favorite Surface of 2026?(24.09.2026 um 14:58 Uhr)
Sichere ProgrammierungStreaming Materialized Views for Live Read Models (2026)(24.09.2026 um 15:02 Uhr)
Sichere ProgrammierungA Day Is Not 86400 Seconds: The DST Bug in Your Date Math(24.09.2026 um 15:02 Uhr)
Sichere ProgrammierungSetting up Traefik: reverse proxy with automatic HTTPS(24.09.2026 um 15:02 Uhr)
Sichere ProgrammierungA 200 OK response does not prove a secret leak(24.09.2026 um 15:02 Uhr)
Sichere ProgrammierungHow hot do you like it?(24.09.2026 um 15:05 Uhr)
YouTube Security VideosGoogle Cloud Tech: Gemini is coming to your city(24.09.2026 um 15:00 Uhr)
AI & KI NachrichtenGoogle’s latest moonshot to put machine learning in space(24.09.2026 um 15:12 Uhr)
Windows Tipps & SecurityPoll: What's your favorite Surface of 2026?(24.09.2026 um 14:58 Uhr)
Sichere ProgrammierungStreaming Materialized Views for Live Read Models (2026)(24.09.2026 um 15:02 Uhr)
Sichere ProgrammierungA Day Is Not 86400 Seconds: The DST Bug in Your Date Math(24.09.2026 um 15:02 Uhr)
Sichere ProgrammierungSetting up Traefik: reverse proxy with automatic HTTPS(24.09.2026 um 15:02 Uhr)
Sichere ProgrammierungA 200 OK response does not prove a secret leak(24.09.2026 um 15:02 Uhr)
Sichere ProgrammierungHow hot do you like it?(24.09.2026 um 15:05 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

Real-World ETL Pipeline from a Public Google Sheet

Spreadsheets are everywhere. They’re easy to use, easy to share, and often become the first home of business data. But they’re terrible for analytics, automation, and scale. In this article, I’ll walk through how I built a produ…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

Spreadsheets are everywhere.



They’re easy to use, easy to share, and often become the first home of business data. But they’re terrible for analytics, automation, and scale.



In this article, I’ll walk through how I built a production-style ETL pipeline that:




  • Extracts data from a public Google Sheet

  • Cleans and validates the data using Python

  • Loads the data into PostgreSQL and MongoDB

  • Handles real-world issues like UUIDs, connection strings, and performance bottlenecks









The Problem



A supermarket dataset was stored in a Google Sheet. While this works for manual inspection, it introduces several problems:




  • No schema enforcement

  • No support for analytics or BI tools

  • Poor performance for large queries

  • No safe way to integrate with applications



The goal was to move this data into proper databases while following real ETL best practices.









Architecture Overview






Public Google Sheet (CSV Export)

Python ETL

Transform & Validate

PostgreSQL (Analytics) MongoDB (Documents)






Why two databases?





  • PostgreSQL acts as the system of record for analytics and reporting


  • MongoDB provides flexible, document-based storage for application access









Tools Used




  • Python 3.12


  • UV for dependency and environment management


  • Pandas for data transformation


  • Requests for HTTP-based extraction


  • PostgreSQL (via SQLAlchemy)


  • MongoDB (via PyMongo)


  • Loguru for structured logging









Step 1: Extracting Data from a Public Google Sheet



Instead of dealing with Google Cloud authentication, I used a simpler (and very realistic) approach.



Google Sheets exposes a CSV export endpoint for public sheets.



A human-friendly link like this:




https://docs.google.com/spreadsheets/d/<sheet-id>/edit






can be converted to:




https://docs.google.com/spreadsheets/d/<sheet-id>/export?format=csv&gid=<gid>






Python can then fetch the data directly:




response = requests.get(csv_url)
df = pd.read_csv(StringIO(response.text))






No API keys. No OAuth. Fully automated.









Step 2: Transforming the Data (Where Things Get Real)



This is where assumptions break.



I initially assumed the id column was numeric. It wasn’t.



It contained UUIDs like:




47d54138-a950-4ec0-9d4a-e637e8dfb290






Trying to cast this to an integer caused the pipeline to fail.






Lesson #1: The data always wins



The fix was simple but important:




  • Treat id as a string

  • Update both transformation logic and database schemas









Step 3: Loading into PostgreSQL



PostgreSQL is the backbone of the pipeline.



Key design decisions:




  • Strong schema enforcement

  • Idempotent inserts

  • Safe re-runs of the pipeline



The table is created if it doesn’t exist, and inserts use:




ON CONFLICT (id) DO NOTHING






This ensures:




  • No duplicate records

  • No need to truncate tables

  • Safe incremental runs









Step 4: Loading into MongoDB (and Fixing Performance)



My first MongoDB implementation used update_one() in a loop.



It worked — but it was painfully slow.





  • The fix was switching to bulk operations:





collection.bulk_write(operations, ordered=False)






This reduced load time.









Step 5: Debugging a Nasty PostgreSQL Error



One of the most confusing errors I hit was:




could not translate host name "4401@localhost"






It turned out the PostgreSQL password contained an @ symbol.






Lesson #3: Database passwords must be URL-safe



The solution was URL encoding:




KIM@4401 → KIM%404401












Results



After fixing these issues, the pipeline:




  • Runs end-to-end.

  • Can be safely re-run without duplicates

  • Loads clean data into both databases

  • Handles real-world data quirks correctly









Key Takeaways




  • Spreadsheets are common sources — but not suitable destinations

  • Never assume data types without inspecting real data

  • UUIDs are extremely common in production systems

  • Bulk operations matter for performance

  • Environment variables and connection strings are frequent failure points









Final Thoughts



This project wasn’t about flashy tools.



It was about building something real, breaking it, and fixing it.

CTI Threat Relationship Graph2 Knoten / 1 Relationen
CVE / Incident Software MITRE ATT&CK CWE Weakness IoC
SOC Incident Playbook: Remote Code Execution (RCE) Defense
title: Detect Exploitation - Real-World ETL Pipeline from a Public Google Sheet
id: dbc5546f-b211-42e6-a11b-8f080d81c654
status: experimental
description: Automatisch generierte SIEM-Erkennungsregel basierend auf CTI Intelligence
references:
  - https://tsecurity.de/
author: iShareStuff CTI Automated Detection Engine
date: 2026-09-24
logsource:
  category: network_connection
  product: any
detection:
  selection:
      CommandLine|contains:
        - 'exploit'
  condition: selection
falsepositives:
  - Legitime administrative Zugriffe oder Penetrationstests
level: high
tags:
  - attack.initial_access
rule CTI_Threat_Indicator {
    meta:
        author = "iShareStuff CTI Automated Detection Engine"
        date = "2026-09-24"
        description = "YARA Signature for "
    strings:
        $str = "Real-World ETL Pipeline from a" ascii wide
    condition:
        any of them
}
tsecurity.de Cognitive Threat RAG
Fokus-Vektor:

Kognitive Analyse für identifizierte Bedrohung: Erhöhte Bedrohungslage im Bereich Real-World ETL Pipeline from a Public Go.... Basierend auf 368k Vektor-Korrelationen werden sofortige Isolationsmaßnahmen für betroffene Endpunkte empfohlen.

🛡️ Angriffsfläche & Exposure

Netzwerk/Remote-Zugriff ohne Vorauthentifizierung möglich.

Empfohlene Sofortmaßnahmen
  • 1. Perimeter-Inspektion: Relevante Portfreigaben und exponierte Endpunkte unverzüglich scannen.
  • 2. Patch-Applikation: Hersteller-Hotfix einspielen oder betroffene Daemons in isolierte DMZ-Segmente überführen.
  • 3. Telemetrie & EDR-Alerts: Prozessaufrufe und Child-Processes auf anomale Shell-Spawns überwachen.
🔗 Semantisch verwandte Zero-Days MariaDB 11.7 VEC
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Real-World ETL Pipeline from a Public Google Sheet

Thematisch verwandte Begriffe: RealWorld, Pipeline, from, Public · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-97179 | A security vulnerability has been detected in O2OA up to 9.5.3/10.0.2. T…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel TTP ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick