Cloud Intelligence™
Airflow und superQuery
Diese Seite ist auch in English, Español, Français, Italiano, 日本語 und Português verfügbar.
About Eben Du Toit
I lead engineering teams in the Partner Channel space, building the tooling that helps customers make sense of their revenue — turning complex partner and billing data into something they can actually see, trust, and act on. The work sits at the intersection of cloud cost management, FinOps, and billing integrations, with data flowing across GCP, BigQuery, MongoDB Atlas, Snowflake, and the wider cloud ecosystem. It's technically meaty, and I love that about it.
My days are split between people and systems — growing and aligning multiple teams, helping the team navigate the environment, hiring, and partnering with stakeholders across the org. I shift between maker mode and manager mode depending on what's needed: sometimes I'm deep in the code building features, sometimes I'm in the room helping my teams move forward. I care a lot about building teams where good engineers can do their best work.
What I work on
Partner Channel engineering and revenue management tooling · Cloud cost management and FinOps · Billing data pipelines and integrations · Engineering leadership, hiring, and team process
Good topics to find me for
Anything Partner Channel, revenue, FinOps, or billing-related · Data engineering and pipeline architecture · Engineering management, hiring, or team culture
Outside work
When I'm not in a terminal, I'm usually behind a camera — shooting on a Nikon Z or whatever vintage film body I'm currently infatuated with. I follow mountain biking and trail running closely, have strong opinions about mechanical keyboards and good stationery, and watch more anime than I probably admit. I also play Rocket League with more optimism than results.
Cape Town · SAST (UTC+2)
My personal page
BigQuery-Kosten in Echtzeit überwachen – mit dem SuperQueryOperator
Foto von Soheb Zaidi auf Unsplash
"Was kostet das?" Eine Frage, die in der Tech-Welt so oft fällt, dass jeder im Start-up kurz zusammenzuckt, sobald sie kommt. Die Antwort lautet fast immer: "Wissen wir nicht genau."
Eines der besten Tools, um workloads im Data-Engineering zu orchestrieren, ist Apache Airflow. Es hat schon viele Unternehmen aus dem starren Cron-Korsett befreit und auf die Big-Data-Welle der Directed Acyclic Graphs (DAGs) gehoben.
Das heißt natürlich auch: Riesige Datenmengen wandern in Datenbanken hinein und wieder heraus – und mit jeder dieser Bewegungen entstehen Kosten, denen man kaum entkommt.
Eine dieser Datenbanken – im Grunde ein Supercomputer – ist Google BigQuery. Sie ist das Flaggschiff von Google Cloud und verarbeitet Daten im Petabyte-Maßstab. Ihre Stärke: Sie nimmt Ihnen Sorgen um die Datenbankinfrastruktur ab, sodass Sie sich auf das konzentrieren können, worauf es ankommt – die Qualität Ihrer Analysen und die zu lösenden Datenflussprobleme.
Ein wichtiger Punkt bei BigQuery: Wie schnell die Kosten für das Scannen von Daten in die Höhe schießen können, hängt stark davon ab, wie achtsam Einzelpersonen oder ganze Teams arbeiten. Selbst erfahrene Data Engineers erzählen mit Schaudern davon, wie sie versehentlich über Daten gescannt haben, die sie gar nicht gebraucht hätten – und damit die monatliche Analyserechnung über das Budget hinaus getrieben haben.
Genau hier setzt superQuery an. Die Idee dahinter: Sie müssen sich nicht um Ihre Kosten sorgen, weil Sie alle nötigen Informationen sowie ein paar Schutzmechanismen zur Hand haben, um fundierte Entscheidungen zu treffen.
PerfectScale™ for Kubernetes
Ready to optimize?
Get your free Kubernetes savings analysis

Ihre Kosten in Airflow im Blick

Während Ihre Airflow-DAGs munter ihre Arbeit verrichten und Daten an die Verarbeitungssysteme Ihrer Wahl schicken, läuft im Hintergrund jede Menge Logging mit. Die Airflow-Logs sind leicht zugänglich, gut lesbar und liefern einen soliden Überblick darüber, was Ihr DAG gerade tut. Wäre es nicht klasse, wenn die Log-Dateien zusätzlich Informationen zum Query-Ausführungsplan zeigen würden – und zwar konkret, welche Kosten entstanden sind und wie viele Daten insgesamt gescannt wurden? Auf jeden Fall! Etwa so:
--------------------------------------------------------------------Starting attempt 1 of 4--------------------------------------------------------------------
[2019-03-11 21:12:02,129] {models.py:1593} INFO - Executing <Task(SuperQueryOperator): connect_to_superquery_proxy> on 2019-03-01T00:00:00+00:00[2019-03-11 21:12:03,836] {superq_operators.py:54} INFO - Executing: #standardSQLSELECT COUNT(testField) FROM `mydata.PROD.myTable`;[2019-03-11 21:12:03,844] {logging_mixin.py:95} INFO - [2019-03-11 21:12:03,843] {base_hook.py:83} INFO - Using connection to: id: mysql_default. Host: superproxy.system.io, Port: 3306, Schema: None, Login: XXXXXX, Password: XXXXXXXX, extra: {}[2019-03-11 21:12:15,172] {superq_operators.py:68} INFO - (('{ "startTime":1552331525642, "endTime":1552331534624, "executionTime":"8988", "bigQueryTotalBytesProcessed":26388279066, "bigQueryTotalCost":"0.12", "superQueryTotalBytesProcessed":0, "superQueryTotalCost":"0.00", "saving":0, "totalRows":"1",}', '', '1', 'true'),)[2019-03-11 21:12:17,121] {logging_mixin.py:95} INFO - [2019-03-11 21:12:17,119] {jobs.py:2527} INFO - Task exited with return code 0Dieser Log-Auszug zeigt: Ihr BigQuery-Operator in Airflow hat 24 GB Daten gescannt, Kosten 0,12 $. So einfach ist das. Sie können die Log-Dateien außerdem mit einem Drittanbieter-Tool oder einem Bash-Skript parsen und sich so eine Zusammenfassung der Kosten zusammenstellen, die durch DAGs entstehen, die Daten aus BigQuery scannen.

Wie funktioniert das Ganze?
SuperQuery nutzt einen MySQL-Proxy, damit die Anbindung universell funktioniert, und stellt eine SQL-Schnittstelle bereit, über die Sie Informationen abrufen können.
Was Sie als Nächstes brauchen: den SuperQueryOperator
Mit diesen Schritten erreichen Sie die oben beschriebene Funktionalität:
- Fügen Sie das superquery-Plugin zu Airflow hinzu, damit Sie den SuperQueryOperator verwenden können.
- Registrieren Sie sich für eine superQuery-Testversion und holen Sie sich die Zugangsdaten für den superQuery-MySQL-Proxy.
- Testen Sie Ihre Verbindung zum Proxy mit dem unten bereitgestellten DAG.
- Ersetzen Sie in Ihren eigenen DAGs die BigQuery-Operatoren durch den SuperQuery-Operator, wenn Sie diese Funktionalität nutzen möchten.
Your cloud bill shouldn't be a mystery
Optimization, automation, expertise. In one platform.
Den SuperQueryOperator einsetzen
So sieht die Schnittstelle des SuperQuery-Operators aus:
TEST_SQL = """#standardSQLSELECT COUNT(*) FROM `mydata.PROD.myTable`;"""SuperQueryOperator( task_id="connect_to_superquery_proxy", sql=TEST_SQL, database="", explain=True, # False if you don't want information dag=dag)Hier der Code für den Operator, den Sie in den plugins-Ordner in Airflow kopieren sollten:
https://gist.github.com/super-eben/b1d49538b46fa3f55c5bddfe73405b34
Und hier etwas Code, mit dem Sie Ihre Verbindung zu SuperQuery testen können:
https://gist.github.com/super-eben/dcfa4420c419331e5a12a8b23e0a088c
Fazit
Dieser Beitrag zeigt, wie Sie Ihre Airflow-Kosten transparent machen, sobald Sie Airflow-Tasks an BigQuery anbinden – in beide Richtungen. Der SuperQuery-Proxy lässt sich darüber hinaus für viele weitere Details zum Ausführungsplan einsetzen und macht so die Stärken des Systems voll nutzbar.
Viel Erfolg beim Kostenmonitoring – und beim Sparen!