[{"data":1,"prerenderedAt":705},["ShallowReactive",2],{"/de-de/blog/how-gitlab-duo-agent-platform-transforms-dataops/":3,"navigation-de-de":35,"banner-de-de":454,"footer-de-de":467,"Dennis van Rooijen":676,"next-steps-de-de":690},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":11,"config":24,"_id":28,"_type":29,"title":30,"_source":31,"_file":32,"_stem":33,"_extension":34},"/de-de/blog/how-gitlab-duo-agent-platform-transforms-dataops","blog",false,"",{"title":9,"description":10},"Wie GitLab Duo Agent Platform DataOps transformiert","Erfahre, wie du manuelle Programmierung in voll automatisierte Generierung verwandelst – am Beispiel der dbt-Modellerstellung.",{"title":12,"description":13,"authors":14,"heroImage":16,"date":17,"category":18,"tags":19,"body":23},"Wie du mit der GitLab Duo Agent Platform deine DataOps transformiert","So wird aus manueller Programmierung eine vollautomatische Generierung, erklärt am Beispiel der dbt-Modellerstellung.",[15],"Dennis van Rooijen","blog/hero%20images/workflow_1800x945.png","2025-09-16","ai-ml",[20,21,22],"product","tutorial","features","Die manuelle Erstellung von dbt-Modellen ist ein mühsamer Prozess, der\nStunden an Arbeitszeit verschlingt. Besonders wenn keine (größeren)\nGeschäftstransformationen vorgenommen werden, gehört diese Aufgabe nicht zu\nden attraktivsten Tätigkeiten eines Dateningenieurs.\n\n\nAber was wäre, wenn du diesen gesamten Prozess automatisieren könntest? In dieser Anleitung zeige ich dir genau, wie [GitLab Duo Agent Platform](https://about.gitlab.com/de-de/gitlab-duo/agent-platform/) umfassende dbt-Modelle in nur wenigen Minuten generiert – komplett mit ordnungsgemäßer Struktur, Tests und Dokumentation.\n\n\n## Was wir aufbauen\n\n\nUnser Marketing-Team möchte Werbeinvestitionen effektiv verwalten und optimieren. Eine der Werbeplattformen ist Reddit, daher extrahieren wir Daten von der Reddit Ads API in unsere unternehmensweite [Datenplattform](https://handbook.gitlab.com/handbook/enterprise-data/platform/) Snowflake. Bei GitLab haben wir drei Speicherebenen:\n\n\n1. `raw`-Ebene – erster Landepunkt für unverarbeitete Daten aus externen Quellen; noch nicht für geschäftliche Nutzung bereit\n\n2. `prep`-Ebene – erste Transformationsebene mit Quellmodellen; noch nicht für allgemeine geschäftliche Nutzung bereit\n\n3. `prod`-Ebene – final transformierte Daten, bereit für geschäftliche Nutzung und Tableau-Berichte\n\n\n![Diagramm der Speicherebenen](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/zo7vespktzfdtdtiauz7.png)\n\n\nFür diese Anleitung sind die Daten bereits durch unsere Extraktionslösung Fivetran in der raw-Ebene gelandet, und wir werden dbt-Modelle generieren, die die Daten von der `prep`-Ebene zur `prod`-Ebene verarbeiten.\n\n\nOhne eine einzige Zeile dbt-Code selbst schreiben zu müssen, werden wir am Ende der Anleitung Folgendes haben:\n\n\n* **Quellmodelle** in der prep-Ebene\n\n* **Workspace-Modelle** in der prod-Ebene\n\n* **Vollständige dbt-Konfigurationen** für alle 13 Tabellen (einschließlich 112 Spalten) im Reddit Ads-Datensatz\n\n* **Test-Abfragen** zur Validierung der Ergebnisse\n\n\nDer gesamte Prozess dauert weniger als 10 Minuten – im Vergleich zu den Stunden, die normalerweise dafür benötigt würden. Hier sind die zu befolgenden Schritte:\n\n\n## 1. Die Datenstruktur vorbereiten\n\n\nBevor GitLab Duo unsere Modelle generieren kann, muss es die vollständige Tabellenstruktur verstehen. Der Schlüssel liegt darin, eine Abfrage gegen Snowflakes Informationsschema auszuführen, da wir derzeit untersuchen, wie wir GitLab Duo über das Model Context Protocol ([MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)) mit unserer Snowflake-Instanz verbinden können:\n\n\n```sql\n\nSELECT \n    table_name,\n    column_name,\n    data_type,\n    is_nullable,\n    CASE \n        WHEN is_nullable = 'NO' THEN 'PRIMARY_KEY'\n        ELSE NULL \n    END as key_type\nFROM raw.information_schema.columns\n\nWHERE table_schema = 'REDDIT_ADS'\n\nORDER BY table_name, ordinal_position;\n\n```\n\n\nDiese Abfrage erfasst:\n\n\n* Alle Tabellen- und Spaltennamen\n\n* Datentypen für die korrekte Modellstruktur\n\n* Nullable-Einschränkungen\n\n* Primärschlüssel-Identifikation (nicht-nullable Spalten in diesem Datensatz)\n\n\n**Profi-Tipp:** Im Reddit Ads-Datensatz dienen alle nicht-nullable Spalten als Primärschlüssel – ein Muster. Ich habe dies überprüft, indem ich Tabellen wie `ad_group` kontrollierte, die zwei nicht-nullable Spalten (`account_id` und `id`) hat, die beide als Primärschlüssel markiert sind. Die Ausführung dieser Abfrage lieferte 112 Zeilen Metadaten, die ich als CSV-Datei für die Modellgenerierung exportierte. Während dieser manuelle Schritt heute gut funktioniert, untersuchen wir eine direkte Integration von GitLab Duo mit unserer Datenplattform über MCP, um diesen Prozess vollständig zu automatisieren.\n\n\n## 2. GitLab Duo einrichten\n\n\nEs gibt zwei Möglichkeiten, mit [GitLab Duo](https://docs.gitlab.com/user/get_started/getting_started_gitlab_duo/) zu interagieren:\n\n\n1. **Web-UI-Chat-Funktion**\n\n2. **Visual Studio Code-Plugin**\n\n\nIch habe mich für das VS Code-Plugin entschieden, da ich die dbt-Modelle lokal ausführen kann, um sie zu testen.\n\n\n## 3. Den 'magischen' Prompt eingeben\n\n\nHier ist der exakte Prompt, den ich zur Generierung des gesamten dbt-Codes verwendet habe:\n\n\n```yaml\n\nCreate dbt models for all the tables in the file structure.csv.\n\n\nI want to have the source models created, with a filter that dedupes the data based on the primary key. Create these in a new folder reddit_ads.\n\nI want to have workspace models created and store these in the workspace_marketing schema.\n\n\nTake this MR as example: [I've referenced to previous source implementation]. Here is the same done for Source A, but now it needs to be done for Reddit Ads. \n\n\nPlease check the dbt style guide when creating the code: https://handbook.gitlab.com/handbook/enterprise-data/platform/dbt-guide/\n\n```\n\n\nSchlüsselelemente, die diesen Prompt effektiv machten:\n\n\n* **Klare Spezifikationen** für sowohl Quell- als auch Workspace-Modelle\n\n* **Referenzbeispiel** aus einem vorherigen ähnlichen Merge Request\n\n* **Style Guide-Referenz** zur Sicherstellung von Codequalität und Konsistenz\n\n* **Spezifisches Schema-Targeting** für ordnungsgemäße Organisation\n\n\n## 4. GitLab Duos Prozess\n\n\nNach dem Einreichen des Prompts machte sich GitLab Duo an die Arbeit. Der gesamte Generierungsprozess dauerte einige Minuten, während dessen GitLab Duo:\n\n\n1. **Die CSV-Eingabedatei las und analysierte**\n\n2. **Tabellenstrukturen aus den Metadaten untersuchte**\n\n3. **Unseren dbt-Style-Guide als Referenz für Coding-Standards nutzte**\n\n4. **Ähnliche Merge Requests berücksichtigte** für die korrekte Strukturierung\n\n5. **Quellmodelle für alle 13 Tabellen generierte**\n\n6. **Workspace-Modelle für alle 13 Tabellen erstellte**\n\n7. **Unterstützende dbt-Dateien generierte**:\n\n   * `sources.yml`-Konfiguration\n   * `schema.yml`-Dateien mit Tests und Dokumentation\n   * Aktualisierte `dbt_project.yml` mit Schema-Referenzen\n\n## Die Ergebnisse\n\n\nDie Ausgabe war bemerkenswert:\n\n\n* **1 modifizierte Datei:** dbt_project.yml (reddit_ads Schema-Konfiguration hinzugefügt)\n\n* **29 neue Dateien:**\n\n  * **26 dbt-Modelle** (13 Quell- + 13 Workspace-Modelle)\n  * **3 YAML-Dateien**\n* **Fast 900 Zeilen Code** automatisch generiert\n\n* **Integrierte Daten-Tests,** einschließlich Unique-Constraints auf Primärschlüssel-Spalten\n\n* **Generische Beschreibungen** für alle Modelle und Spalten\n\n* **Saubere Deduplizierungs-Logik** in Quellmodellen\n\n* **Saubere, konsistente Code-Struktur** gemäß dem GitLab dbt-Style-Guide\n\n\n```yaml\n\ntransform/snowflake-dbt/\n\n├── dbt_project.yml                                                    [MODIFIZIERT]\n\n└── models/\n    ├── sources/\n    │   └── reddit_ads/\n    │       ├── reddit_ads_ad_group_source.sql                        [NEU]\n    │       ├── reddit_ads_ad_source.sql                              [NEU]\n    │       ├── reddit_ads_business_account_source.sql                [NEU]\n    │       ├── reddit_ads_campaign_source.sql                        [NEU]\n    │       ├── reddit_ads_custom_audience_history_source.sql         [NEU]\n    │       ├── reddit_ads_geolocation_source.sql                     [NEU]\n    │       ├── reddit_ads_interest_source.sql                        [NEU]\n    │       ├── reddit_ads_targeting_community_source.sql             [NEU]\n    │       ├── reddit_ads_targeting_custom_audience_source.sql       [NEU]\n    │       ├── reddit_ads_targeting_device_source.sql                [NEU]\n    │       ├── reddit_ads_targeting_geolocation_source.sql           [NEU]\n    │       ├── reddit_ads_targeting_interest_source.sql              [NEU]\n    │       ├── reddit_ads_time_zone_source.sql                       [NEU]\n    │       ├── schema.yml                                            [NEU]\n    │       └── sources.yml                                           [NEU]\n    └── workspaces/\n        └── workspace_marketing/\n            └── reddit_ads/\n                ├── schema.yml                                        [NEU]\n                ├── wk_reddit_ads_ad.sql                              [NEU]\n                ├── wk_reddit_ads_ad_group.sql                        [NEU]\n                ├── wk_reddit_ads_business_account.sql                [NEU]\n                ├── wk_reddit_ads_campaign.sql                        [NEU]\n                ├── wk_reddit_ads_custom_audience_history.sql         [NEU]\n                ├── wk_reddit_ads_geolocation.sql                     [NEU]\n                ├── wk_reddit_ads_interest.sql                        [NEU]\n                ├── wk_reddit_ads_targeting_community.sql             [NEU]\n                ├── wk_reddit_ads_targeting_custom_audience.sql       [NEU]\n                ├── wk_reddit_ads_targeting_device.sql                [NEU]\n                ├── wk_reddit_ads_targeting_geolocation.sql           [NEU]\n                ├── wk_reddit_ads_targeting_interest.sql              [NEU]\n                └── wk_reddit_ads_time_zone.sql                       [NEU]\n```\n\n\n### Beispiel des generierten Codes\n\n\nHier ist ein Beispiel für die Qualität des generierten Codes. Für die `time_zone`-Tabelle erstellte GitLab Duo:\n\n\n**Prep-Ebene Quellmodell**\n\n\n```sql\n\nWITH source AS (\n  SELECT *\n  FROM {{ source('reddit_ads','time_zone') }}\n  QUALIFY ROW_NUMBER() OVER (PARTITION BY id ORDER BY _fivetran_synced DESC) = 1\n),\n\n\nrenamed AS (\n  SELECT\n    id::VARCHAR                               AS time_zone_id,\n    code::VARCHAR                             AS time_zone_code,\n    dst_offset::NUMBER                        AS time_zone_dst_offset,\n    is_dst_active::BOOLEAN                    AS is_time_zone_dst_active,\n    name::VARCHAR                             AS time_zone_name,\n    offset::NUMBER                            AS time_zone_offset,\n    _fivetran_synced::TIMESTAMP               AS fivetran_synced_at\n  FROM source\n)\n\n\nSELECT * FROM renamed\n\n```\n\n\n**Schema.yml**\n\n\n```yaml\n\nmodels:\n  - name: reddit_ads_time_zone_source\n    description: Zeitzonendaten aus dem Reddit Ads-System\n    columns:\n      - name: time_zone_id\n        description: Eindeutige Kennung für Zeitzoneneinträge\n        data_tests:\n          - unique\n          - not_null\n      - name: time_zone_code\n        description: Code für die Zeitzone\n      - name: time_zone_dst_offset\n        description: Sommerzeitverschiebung für die Zeitzone\n      - name: is_time_zone_dst_active\n        description: Flag, das angibt, ob Sommerzeit aktiv ist\n      - name: time_zone_name\n        description: Name der Zeitzone\n      - name: time_zone_offset\n        description: Verschiebung für die Zeitzone\n      - name: fivetran_synced_at\n        description: Zeitstempel, wann der Datensatz zuletzt von Fivetran synchronisiert wurde\n```\n\n\n**Source.yml**\n\n\n```yaml\n\nsources:\n  - name: reddit_ads\n    database: RAW\n    schema: reddit_ads\n    loaded_at_field: _fivetran_synced\n    loader: fivetran\n    description: Reddit Ads-Daten\n\n    quoting:\n      database: true\n      schema: false\n      identifier: false\n\n    tables:\n      - name: time_zone\n```\n\n\n**Workspace-Modell**\n\n\n```sql\n\nWITH source AS (\n  SELECT *\n  FROM {{ ref('reddit_ads_time_zone_source') }}\n)\n\n\nSELECT * FROM source\n\n```\n\n\n## 5. Qualitätsvalidierung\n\n\nNachdem der Code gut aussah, habe ich ihn zum MR gepusht und die [CI-Test-Pipeline](https://handbook.gitlab.com/handbook/enterprise-data/platform/ci-jobs/#build_changes) ausgeführt, um den Code zu testen und das Ergebnis zu validieren. Ich bat GitLab Duo, eine Validierungsabfrage zu erstellen:\n\n\n```yaml\n\nCreate a test query to test the row counts between the raw layer and the workspace layer. Keep in mind that we do deduplication, so we can compare both using distinct on the primary keys.\n\n```\n\n\nDie KI generierte eine umfassende Validierungsabfrage, die:\n\n\n* Zeilenanzahlen zwischen raw- und workspace-Ebenen verglich\n\n* Die Deduplizierungs-Logik berücksichtigte\n\n* Alle 13 Tabellen testete\n\n* Datenerhaltungsprozentsätze berechnete\n\n\n\u003Cdetails>\n\n\u003Csummary>Generierte SQL-Test-Abfrage\u003C/summary>\n\n\n```sql\n\n-- Reddit Ads Zeilenanzahl-Validierungstest\n\n-- Vergleicht eindeutige Zählungen zwischen RAW-Ebene und WORKSPACE_MARKETING-Ebene\n\n-- Berücksichtigt Deduplizierungs-Logik in Quellmodellen\n\n\nWITH raw_counts AS (\n  -- Tabellen mit einzelnem Primärschlüssel\n  SELECT 'ad' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.AD\n  \n  UNION ALL\n  \n  SELECT 'business_account' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.BUSINESS_ACCOUNT\n  \n  UNION ALL\n  \n  SELECT 'campaign' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.CAMPAIGN\n  \n  UNION ALL\n  \n  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.CUSTOM_AUDIENCE_HISTORY\n  \n  UNION ALL\n  \n  SELECT 'geolocation' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'interest' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.INTEREST\n  \n  UNION ALL\n  \n  SELECT 'time_zone' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.TIME_ZONE\n  \n  -- Tabellen mit zusammengesetzten Primärschlüsseln\n  UNION ALL\n  \n  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(account_id, '|', id)) AS raw_count\n  FROM RAW.REDDIT_ADS.AD_GROUP\n  \n  UNION ALL\n  \n  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', community_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_COMMUNITY\n  \n  UNION ALL\n  \n  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', custom_audience_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_CUSTOM_AUDIENCE\n  \n  UNION ALL\n  \n  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT _fivetran_id) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_DEVICE\n  \n  UNION ALL\n  \n  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', geolocation_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', interest_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_INTEREST\n),\n\n\nworkspace_counts AS (\n  -- Workspace-Ebene zählt unter Verwendung von Primärschlüsseln aus schema.yml\n  SELECT 'ad' AS table_name, COUNT(DISTINCT ad_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD\n  \n  UNION ALL\n  \n  SELECT 'business_account' AS table_name, COUNT(DISTINCT business_account_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_BUSINESS_ACCOUNT\n  \n  UNION ALL\n  \n  SELECT 'campaign' AS table_name, COUNT(DISTINCT campaign_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CAMPAIGN\n  \n  UNION ALL\n  \n  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT custom_audience_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CUSTOM_AUDIENCE_HISTORY\n  \n  UNION ALL\n  \n  SELECT 'geolocation' AS table_name, COUNT(DISTINCT geolocation_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'interest' AS table_name, COUNT(DISTINCT interest_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_INTEREST\n  \n  UNION ALL\n  \n  SELECT 'time_zone' AS table_name, COUNT(DISTINCT time_zone_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TIME_ZONE\n  \n  -- Tabellen mit zusammengesetzten Primärschlüsseln\n  UNION ALL\n  \n  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(ad_group_account_id, '|', ad_group_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD_GROUP\n  \n  UNION ALL\n  \n  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(targeting_community_ad_group_id, '|', targeting_community_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_COMMUNITY\n  \n  UNION ALL\n  \n  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(targeting_custom_audience_ad_group_id, '|', targeting_custom_audience_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_CUSTOM_AUDIENCE\n  \n  UNION ALL\n  \n  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT targeting_device_fivetran_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_DEVICE\n  \n  UNION ALL\n  \n  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(targeting_geolocation_ad_group_id, '|', targeting_geolocation_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(targeting_interest_ad_group_id, '|', targeting_interest_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_INTEREST\n)\n\n\n-- Abschließender Vergleich mit Validierungsergebnissen\n\nSELECT \n  r.table_name,\n  r.raw_count,\n  w.workspace_count,\n  r.raw_count - w.workspace_count AS count_difference,\n  CASE \n    WHEN r.raw_count = w.workspace_count THEN '✅ BESTANDEN'\n    WHEN r.raw_count > w.workspace_count THEN '⚠️ RAW > WORKSPACE (Erwartet durch Deduplizierung)'\n    ELSE '❌ FEHLGESCHLAGEN - WORKSPACE > RAW (Unerwartet)'\n  END AS validation_status,\n  ROUND((w.workspace_count::FLOAT / r.raw_count::FLOAT) * 100, 2) AS data_retention_percentage\nFROM raw_counts r\n\nJOIN workspace_counts w ON r.table_name = w.table_name\n\nORDER BY r.table_name;\n\n```\n\n\n\u003C/details>\n\n\n![Tabelle mit Abfrageergebnissen](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/guicjhzwvrz3czwjs3xo.png)\n\n\nDie Ausführung dieser Abfrage zeigte:\n\n\n* **Null Unterschiede** in der Zeilenanzahl nach Deduplizierung\n\n* **100% Datenerhaltung** über alle Tabellen hinweg\n\n* **Alle Tests erfolgreich bestanden**\n\n\n## Das Fazit: Massive Zeitersparnis\n\n\n* **Traditioneller Ansatz:** 6-8 Stunden manuelles Programmieren, Testen und Debugging\n\n* **GitLab Duo-Ansatz:** 6-8 Minuten Generierung + Überprüfungszeit\n\n\nDies bedeutet eine 60-fache Verbesserung der Entwicklereffizienz (von 6-8 Stunden auf 6-8 Minuten) bei gleichbleibend hoher Codequalität.\n\n\n## Best Practices für den Erfolg\n\n\nBasierend auf dieser Erfahrung sind hier die wichtigsten Empfehlungen:\n\n\n### Bereite deine Metadaten vor\n\n\n* Extrahiere vollständige Tabellenstrukturen einschließlich Datentypen und Einschränkungen\n\n* Identifiziere Primärschlüssel und Beziehungen im Voraus\n\n* Exportiere saubere, gut formatierte CSV-Eingabedateien\n\n\n**Hinweis:** Durch die Verbindung von GitLab Duo über MCP mit deinen (Meta-)Daten könntest du diesen manuellen Schritt ausschließen.\n\n\n### Biete klaren Kontext\n\n\n* Referenziere nach Möglichkeit bestehende Beispiel-MRs\n\n* Spezifiziere deine Codierungsstandards und Style Guides\n\n* Sei explizit bei Ordnerstruktur und Namenskonventionen\n\n\n### Validiere gründlich\n\n\n* Erstelle immer Validierungsabfragen für die Datenintegrität\n\n* Teste lokal vor dem Mergen\n\n* Führe deine CI/CD-Pipeline aus, um Probleme zu erkennen\n\n\n### Nutze KI für Folgeaufgaben\n\n\n* Generiere Testabfragen automatisch\n\n* Erstelle Dokumentationsvorlagen\n\n* Baue Validierungsskripte\n\n\n## Was kommt als Nächstes\n\n\nDiese Demonstration zeigt, wie KI-gestützte Entwicklungstools wie GitLab Duo auch Data-Engineering-Workflows transformieren. Die Fähigkeit, Hunderte von Zeilen produktionsreifem Code in Minuten zu generieren – komplett mit Tests, Dokumentation und ordnungsgemäßer Struktur – stellt einen fundamentalen Wandel dar, wie wir an repetitive Entwicklungsaufgaben herangehen.\n\n\nIndem wir KI nutzen, um die repetitiven Aspekte der dbt-Modellerstellung zu bewältigen, können sich Dateningenieure auf Aktivitäten mit höherem Wert konzentrieren, wie Datenmodellierungsstrategie, Performance-Optimierung und Implementierung von Geschäftslogik.\n\n\n**Bereit, es selbst auszuprobieren?** Beginne mit einem kleinen Datensatz, bereite deine Metadaten sorgfältig vor und sieh zu, wie GitLab Duo Stunden an Arbeit in Minuten automatisierter Generierung verwandelt.\n\n\n> [Teste GitLab Duo Agent Platform noch heute.](https://about.gitlab.com/de-de/gitlab-duo/agent-platform/)\n\n\n## Weiterlesen\n\n\n* [GitLab 18.3: KI-Orchestrierung im Software Engineering erweitern](https://about.gitlab.com/de-de/blog/gitlab-13-expanding-ai-orchestration-in-software-engineering/)\n\n* [GitLab Duo Agent Platform Public Beta: Next-Gen KI-Orchestrierung und mehr](https://about.gitlab.com/de-de/blog/gitlab-duo-agent-platform-public-beta/)\n",{"slug":25,"featured":26,"template":27},"how-gitlab-duo-agent-platform-transforms-dataops",true,"BlogPost","content:de-de:blog:how-gitlab-duo-agent-platform-transforms-dataops.yml","yaml","How Gitlab Duo Agent Platform Transforms Dataops","content","de-de/blog/how-gitlab-duo-agent-platform-transforms-dataops.yml","de-de/blog/how-gitlab-duo-agent-platform-transforms-dataops","yml",{"_path":36,"_dir":37,"_draft":6,"_partial":6,"_locale":7,"data":38,"_id":450,"_type":29,"title":451,"_source":31,"_file":452,"_stem":453,"_extension":34},"/shared/de-de/main-navigation","de-de",{"logo":39,"freeTrial":44,"sales":49,"login":54,"items":59,"search":391,"minimal":427,"duo":441},{"config":40},{"href":41,"dataGaName":42,"dataGaLocation":43},"/de-de/","gitlab logo","header",{"text":45,"config":46},"Kostenlose Testversion anfordern",{"href":47,"dataGaName":48,"dataGaLocation":43},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":50,"config":51},"Vertrieb kontaktieren",{"href":52,"dataGaName":53,"dataGaLocation":43},"/de-de/sales/","sales",{"text":55,"config":56},"Anmelden",{"href":57,"dataGaName":58,"dataGaLocation":43},"https://gitlab.com/users/sign_in/","sign in",[60,104,202,207,312,372],{"text":61,"config":62,"cards":64,"footer":87},"Plattform",{"dataNavLevelOne":63},"platform",[65,71,79],{"title":61,"description":66,"link":67},"Die umfassendste KI-basierte DevSecOps-Plattform",{"text":68,"config":69},"Erkunde unsere Plattform",{"href":70,"dataGaName":63,"dataGaLocation":43},"/de-de/platform/",{"title":72,"description":73,"link":74},"GitLab Duo (KI)","Entwickle Software schneller mit KI in jeder Phase der Entwicklung",{"text":75,"config":76},"Lerne GitLab Duo kennen",{"href":77,"dataGaName":78,"dataGaLocation":43},"/de-de/gitlab-duo/","gitlab duo ai",{"title":80,"description":81,"link":82},"Gründe, die für GitLab sprechen","10 Gründe, warum Unternehmen sich für GitLab entscheiden",{"text":83,"config":84},"Mehr erfahren",{"href":85,"dataGaName":86,"dataGaLocation":43},"/de-de/why-gitlab/","why gitlab",{"title":88,"items":89},"Erste Schritte mit",[90,95,100],{"text":91,"config":92},"Platform Engineering",{"href":93,"dataGaName":94,"dataGaLocation":43},"/de-de/solutions/platform-engineering/","platform engineering",{"text":96,"config":97},"Entwicklererfahrung",{"href":98,"dataGaName":99,"dataGaLocation":43},"/de-de/developer-experience/","Developer experience",{"text":101,"config":102},"MLOps",{"href":103,"dataGaName":101,"dataGaLocation":43},"/de-de/topics/devops/the-role-of-ai-in-devops/",{"text":105,"left":26,"config":106,"link":108,"lists":112,"footer":184},"Produkt",{"dataNavLevelOne":107},"solutions",{"text":109,"config":110},"Alle Lösungen anzeigen",{"href":111,"dataGaName":107,"dataGaLocation":43},"/de-de/solutions/",[113,139,162],{"title":114,"description":115,"link":116,"items":121},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":117},{"icon":118,"href":119,"dataGaName":120,"dataGaLocation":43},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[122,126,130,135],{"text":123,"config":124},"CI/CD",{"href":125,"dataGaLocation":43,"dataGaName":123},"/de-de/solutions/continuous-integration/",{"text":127,"config":128},"KI-unterstützte Entwicklung",{"href":77,"dataGaLocation":43,"dataGaName":129},"AI assisted development",{"text":131,"config":132},"Quellcodeverwaltung",{"href":133,"dataGaLocation":43,"dataGaName":134},"/de-de/solutions/source-code-management/","Source Code Management",{"text":136,"config":137},"Automatisierte Softwarebereitstellung",{"href":119,"dataGaLocation":43,"dataGaName":138},"Automated software delivery",{"title":140,"description":141,"link":142,"items":147},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":143},{"href":144,"dataGaName":145,"dataGaLocation":43,"icon":146},"/de-de/solutions/security-compliance/","security and compliance","ShieldCheckLight",[148,153,158],{"text":149,"config":150},"Application Security Testing",{"href":151,"dataGaName":152,"dataGaLocation":43},"/solutions/application-security-testing/","Application security testing",{"text":154,"config":155},"Schutz der Software-Lieferkette",{"href":156,"dataGaLocation":43,"dataGaName":157},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":159,"config":160},"Software Compliance",{"href":161,"dataGaName":159,"dataGaLocation":43},"/solutions/software-compliance/",{"title":163,"link":164,"items":169},"Bewertung",{"config":165},{"icon":166,"href":167,"dataGaName":168,"dataGaLocation":43},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[170,174,179],{"text":171,"config":172},"Sichtbarkeit und Bewertung",{"href":167,"dataGaLocation":43,"dataGaName":173},"Visibility and Measurement",{"text":175,"config":176},"Wertstrommanagement",{"href":177,"dataGaLocation":43,"dataGaName":178},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":180,"config":181},"Analysen und Einblicke",{"href":182,"dataGaLocation":43,"dataGaName":183},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":185,"items":186},"GitLab für",[187,192,197],{"text":188,"config":189},"Enterprise",{"href":190,"dataGaLocation":43,"dataGaName":191},"/de-de/enterprise/","enterprise",{"text":193,"config":194},"Kleinunternehmen",{"href":195,"dataGaLocation":43,"dataGaName":196},"/de-de/small-business/","small business",{"text":198,"config":199},"den öffentlichen Sektor",{"href":200,"dataGaLocation":43,"dataGaName":201},"/de-de/solutions/public-sector/","public sector",{"text":203,"config":204},"Preise",{"href":205,"dataGaName":206,"dataGaLocation":43,"dataNavLevelOne":206},"/de-de/pricing/","pricing",{"text":208,"config":209,"link":211,"lists":215,"feature":299},"Ressourcen",{"dataNavLevelOne":210},"resources",{"text":212,"config":213},"Alle Ressourcen anzeigen",{"href":214,"dataGaName":210,"dataGaLocation":43},"/de-de/resources/",[216,249,271],{"title":217,"items":218},"Erste Schritte",[219,224,229,234,239,244],{"text":220,"config":221},"Installieren",{"href":222,"dataGaName":223,"dataGaLocation":43},"/de-de/install/","install",{"text":225,"config":226},"Kurzanleitungen",{"href":227,"dataGaName":228,"dataGaLocation":43},"/de-de/get-started/","quick setup checklists",{"text":230,"config":231},"Lernen",{"href":232,"dataGaLocation":43,"dataGaName":233},"https://university.gitlab.com/","learn",{"text":235,"config":236},"Produktdokumentation",{"href":237,"dataGaName":238,"dataGaLocation":43},"https://docs.gitlab.com/","product documentation",{"text":240,"config":241},"Best-Practice-Videos",{"href":242,"dataGaName":243,"dataGaLocation":43},"/de-de/getting-started-videos/","best practice videos",{"text":245,"config":246},"Integrationen",{"href":247,"dataGaName":248,"dataGaLocation":43},"/de-de/integrations/","integrations",{"title":250,"items":251},"Entdecken",[252,257,261,266],{"text":253,"config":254},"Kundenerfolge",{"href":255,"dataGaName":256,"dataGaLocation":43},"/de-de/customers/","customer success stories",{"text":258,"config":259},"Blog",{"href":260,"dataGaName":5,"dataGaLocation":43},"/de-de/blog/",{"text":262,"config":263},"Remote",{"href":264,"dataGaName":265,"dataGaLocation":43},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":267,"config":268},"TeamOps",{"href":269,"dataGaName":270,"dataGaLocation":43},"/de-de/teamops/","teamops",{"title":272,"items":273},"Vernetzen",[274,279,284,289,294],{"text":275,"config":276},"GitLab-Services",{"href":277,"dataGaName":278,"dataGaLocation":43},"/de-de/services/","services",{"text":280,"config":281},"Community",{"href":282,"dataGaName":283,"dataGaLocation":43},"/community/","community",{"text":285,"config":286},"Forum",{"href":287,"dataGaName":288,"dataGaLocation":43},"https://forum.gitlab.com/","forum",{"text":290,"config":291},"Veranstaltungen",{"href":292,"dataGaName":293,"dataGaLocation":43},"/events/","events",{"text":295,"config":296},"Partner",{"href":297,"dataGaName":298,"dataGaLocation":43},"/partners/","partners",{"backgroundColor":300,"textColor":301,"text":302,"image":303,"link":307},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":304,"config":305},"the source promo card",{"src":306},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":308,"config":309},"Lies die News",{"href":310,"dataGaName":311,"dataGaLocation":43},"/de-de/the-source/","the source",{"text":313,"config":314,"lists":316},"Unternehmen",{"dataNavLevelOne":315},"company",[317],{"items":318},[319,324,330,332,337,342,347,352,357,362,367],{"text":320,"config":321},"Über",{"href":322,"dataGaName":323,"dataGaLocation":43},"/de-de/company/","about",{"text":325,"config":326,"footerGa":329},"Karriere",{"href":327,"dataGaName":328,"dataGaLocation":43},"/jobs/","jobs",{"dataGaName":328},{"text":290,"config":331},{"href":292,"dataGaName":293,"dataGaLocation":43},{"text":333,"config":334},"Geschäftsführung",{"href":335,"dataGaName":336,"dataGaLocation":43},"/company/team/e-group/","leadership",{"text":338,"config":339},"Team",{"href":340,"dataGaName":341,"dataGaLocation":43},"/company/team/","team",{"text":343,"config":344},"Handbuch",{"href":345,"dataGaName":346,"dataGaLocation":43},"https://handbook.gitlab.com/","handbook",{"text":348,"config":349},"Investor Relations",{"href":350,"dataGaName":351,"dataGaLocation":43},"https://ir.gitlab.com/","investor relations",{"text":353,"config":354},"Trust Center",{"href":355,"dataGaName":356,"dataGaLocation":43},"/de-de/security/","trust center",{"text":358,"config":359},"AI Transparency Center",{"href":360,"dataGaName":361,"dataGaLocation":43},"/de-de/ai-transparency-center/","ai transparency center",{"text":363,"config":364},"Newsletter",{"href":365,"dataGaName":366,"dataGaLocation":43},"/company/contact/","newsletter",{"text":368,"config":369},"Presse",{"href":370,"dataGaName":371,"dataGaLocation":43},"/press/","press",{"text":373,"config":374,"lists":375},"Kontakt",{"dataNavLevelOne":315},[376],{"items":377},[378,381,386],{"text":50,"config":379},{"href":52,"dataGaName":380,"dataGaLocation":43},"talk to sales",{"text":382,"config":383},"Support",{"href":384,"dataGaName":385,"dataGaLocation":43},"/support/","get help",{"text":387,"config":388},"Kundenportal",{"href":389,"dataGaName":390,"dataGaLocation":43},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":392,"login":393,"suggestions":400},"Schließen",{"text":394,"link":395},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":396,"config":397},"gitlab.com",{"href":57,"dataGaName":398,"dataGaLocation":399},"search login","search",{"text":401,"default":402},"Vorschläge",[403,406,411,413,418,423],{"text":72,"config":404},{"href":77,"dataGaName":405,"dataGaLocation":399},"GitLab Duo (AI)",{"text":407,"config":408},"Code Suggestions (KI)",{"href":409,"dataGaName":410,"dataGaLocation":399},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":123,"config":412},{"href":125,"dataGaName":123,"dataGaLocation":399},{"text":414,"config":415},"GitLab auf AWS",{"href":416,"dataGaName":417,"dataGaLocation":399},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":419,"config":420},"GitLab auf Google Cloud",{"href":421,"dataGaName":422,"dataGaLocation":399},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":424,"config":425},"Warum GitLab?",{"href":85,"dataGaName":426,"dataGaLocation":399},"Why GitLab?",{"freeTrial":428,"mobileIcon":433,"desktopIcon":438},{"text":429,"config":430},"Kostenlos testen",{"href":431,"dataGaName":48,"dataGaLocation":432},"https://gitlab.com/-/trials/new/","nav",{"altText":434,"config":435},"GitLab-Symbol",{"src":436,"dataGaName":437,"dataGaLocation":432},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":434,"config":439},{"src":440,"dataGaName":437,"dataGaLocation":432},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":442,"mobileIcon":446,"desktopIcon":448},{"text":443,"config":444},"Erfahre mehr über GitLab Duo",{"href":77,"dataGaName":445,"dataGaLocation":432},"gitlab duo",{"altText":434,"config":447},{"src":436,"dataGaName":437,"dataGaLocation":432},{"altText":434,"config":449},{"src":440,"dataGaName":437,"dataGaLocation":432},"content:shared:de-de:main-navigation.yml","Main Navigation","shared/de-de/main-navigation.yml","shared/de-de/main-navigation",{"_path":455,"_dir":37,"_draft":6,"_partial":6,"_locale":7,"title":456,"button":457,"config":462,"_id":464,"_type":29,"_source":31,"_file":465,"_stem":466,"_extension":34},"/shared/de-de/banner","GitLab Duo Agent Platform ist jetzt in öffentlicher Beta!",{"text":458,"config":459},"Beta testen",{"href":460,"dataGaName":461,"dataGaLocation":43},"/de-de/gitlab-duo/agent-platform/","duo banner",{"layout":463},"release","content:shared:de-de:banner.yml","shared/de-de/banner.yml","shared/de-de/banner",{"_path":468,"_dir":37,"_draft":6,"_partial":6,"_locale":7,"data":469,"_id":672,"_type":29,"title":673,"_source":31,"_file":674,"_stem":675,"_extension":34},"/shared/de-de/main-footer",{"text":470,"source":471,"edit":477,"contribute":482,"config":487,"items":492,"minimal":664},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":472,"config":473},"Quelltext der Seite anzeigen",{"href":474,"dataGaName":475,"dataGaLocation":476},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":478,"config":479},"Diese Seite bearbeiten",{"href":480,"dataGaName":481,"dataGaLocation":476},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":483,"config":484},"Beteilige dich",{"href":485,"dataGaName":486,"dataGaLocation":476},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":488,"facebook":489,"youtube":490,"linkedin":491},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[493,516,571,600,634],{"title":61,"links":494,"subMenu":499},[495],{"text":496,"config":497},"DevSecOps-Plattform",{"href":70,"dataGaName":498,"dataGaLocation":476},"devsecops platform",[500],{"title":203,"links":501},[502,506,511],{"text":503,"config":504},"Tarife anzeigen",{"href":205,"dataGaName":505,"dataGaLocation":476},"view plans",{"text":507,"config":508},"Vorteile von Premium",{"href":509,"dataGaName":510,"dataGaLocation":476},"/de-de/pricing/premium/","why premium",{"text":512,"config":513},"Vorteile von Ultimate",{"href":514,"dataGaName":515,"dataGaLocation":476},"/de-de/pricing/ultimate/","why ultimate",{"title":517,"links":518},"Lösungen",[519,524,527,529,534,539,543,546,549,554,556,558,561,566],{"text":520,"config":521},"Digitale Transformation",{"href":522,"dataGaName":523,"dataGaLocation":476},"/de-de/topics/digital-transformation/","digital transformation",{"text":525,"config":526},"Sicherheit und Compliance",{"href":151,"dataGaName":152,"dataGaLocation":476},{"text":136,"config":528},{"href":119,"dataGaName":120,"dataGaLocation":476},{"text":530,"config":531},"Agile Entwicklung",{"href":532,"dataGaName":533,"dataGaLocation":476},"/de-de/solutions/agile-delivery/","agile delivery",{"text":535,"config":536},"Cloud-Transformation",{"href":537,"dataGaName":538,"dataGaLocation":476},"/de-de/topics/cloud-native/","cloud transformation",{"text":540,"config":541},"SCM",{"href":133,"dataGaName":542,"dataGaLocation":476},"source code management",{"text":123,"config":544},{"href":125,"dataGaName":545,"dataGaLocation":476},"continuous integration & delivery",{"text":175,"config":547},{"href":177,"dataGaName":548,"dataGaLocation":476},"value stream management",{"text":550,"config":551},"GitOps",{"href":552,"dataGaName":553,"dataGaLocation":476},"/de-de/solutions/gitops/","gitops",{"text":188,"config":555},{"href":190,"dataGaName":191,"dataGaLocation":476},{"text":193,"config":557},{"href":195,"dataGaName":196,"dataGaLocation":476},{"text":559,"config":560},"Öffentlicher Sektor",{"href":200,"dataGaName":201,"dataGaLocation":476},{"text":562,"config":563},"Bildungswesen",{"href":564,"dataGaName":565,"dataGaLocation":476},"/de-de/solutions/education/","education",{"text":567,"config":568},"Finanzdienstleistungen",{"href":569,"dataGaName":570,"dataGaLocation":476},"/de-de/solutions/finance/","financial services",{"title":208,"links":572},[573,575,577,579,582,584,586,588,590,592,594,596,598],{"text":220,"config":574},{"href":222,"dataGaName":223,"dataGaLocation":476},{"text":225,"config":576},{"href":227,"dataGaName":228,"dataGaLocation":476},{"text":230,"config":578},{"href":232,"dataGaName":233,"dataGaLocation":476},{"text":235,"config":580},{"href":237,"dataGaName":581,"dataGaLocation":476},"docs",{"text":258,"config":583},{"href":260,"dataGaName":5,"dataGaLocation":476},{"text":253,"config":585},{"href":255,"dataGaName":256,"dataGaLocation":476},{"text":262,"config":587},{"href":264,"dataGaName":265,"dataGaLocation":476},{"text":275,"config":589},{"href":277,"dataGaName":278,"dataGaLocation":476},{"text":267,"config":591},{"href":269,"dataGaName":270,"dataGaLocation":476},{"text":280,"config":593},{"href":282,"dataGaName":283,"dataGaLocation":476},{"text":285,"config":595},{"href":287,"dataGaName":288,"dataGaLocation":476},{"text":290,"config":597},{"href":292,"dataGaName":293,"dataGaLocation":476},{"text":295,"config":599},{"href":297,"dataGaName":298,"dataGaLocation":476},{"title":313,"links":601},[602,604,606,608,610,612,614,618,623,625,627,629],{"text":320,"config":603},{"href":322,"dataGaName":315,"dataGaLocation":476},{"text":325,"config":605},{"href":327,"dataGaName":328,"dataGaLocation":476},{"text":333,"config":607},{"href":335,"dataGaName":336,"dataGaLocation":476},{"text":338,"config":609},{"href":340,"dataGaName":341,"dataGaLocation":476},{"text":343,"config":611},{"href":345,"dataGaName":346,"dataGaLocation":476},{"text":348,"config":613},{"href":350,"dataGaName":351,"dataGaLocation":476},{"text":615,"config":616},"Sustainability",{"href":617,"dataGaName":615,"dataGaLocation":476},"/sustainability/",{"text":619,"config":620},"Vielfalt, Inklusion und Zugehörigkeit",{"href":621,"dataGaName":622,"dataGaLocation":476},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":353,"config":624},{"href":355,"dataGaName":356,"dataGaLocation":476},{"text":363,"config":626},{"href":365,"dataGaName":366,"dataGaLocation":476},{"text":368,"config":628},{"href":370,"dataGaName":371,"dataGaLocation":476},{"text":630,"config":631},"Transparenzerklärung zu moderner Sklaverei",{"href":632,"dataGaName":633,"dataGaLocation":476},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":635,"links":636},"Nimm Kontakt auf",[637,640,642,644,649,654,659],{"text":638,"config":639},"Sprich mit einem Experten/einer Expertin",{"href":52,"dataGaName":53,"dataGaLocation":476},{"text":382,"config":641},{"href":384,"dataGaName":385,"dataGaLocation":476},{"text":387,"config":643},{"href":389,"dataGaName":390,"dataGaLocation":476},{"text":645,"config":646},"Status",{"href":647,"dataGaName":648,"dataGaLocation":476},"https://status.gitlab.com/","status",{"text":650,"config":651},"Nutzungsbedingungen",{"href":652,"dataGaName":653,"dataGaLocation":476},"/terms/","terms of use",{"text":655,"config":656},"Datenschutzerklärung",{"href":657,"dataGaName":658,"dataGaLocation":476},"/de-de/privacy/","privacy statement",{"text":660,"config":661},"Cookie-Einstellungen",{"dataGaName":662,"dataGaLocation":476,"id":663,"isOneTrustButton":26},"cookie preferences","ot-sdk-btn",{"items":665},[666,668,670],{"text":650,"config":667},{"href":652,"dataGaName":653,"dataGaLocation":476},{"text":655,"config":669},{"href":657,"dataGaName":658,"dataGaLocation":476},{"text":660,"config":671},{"dataGaName":662,"dataGaLocation":476,"id":663,"isOneTrustButton":26},"content:shared:de-de:main-footer.yml","Main Footer","shared/de-de/main-footer.yml","shared/de-de/main-footer",[677],{"_path":678,"_dir":679,"_draft":6,"_partial":6,"_locale":7,"content":680,"config":683,"_id":686,"_type":29,"title":687,"_source":31,"_file":688,"_stem":689,"_extension":34},"/en-us/blog/authors/dennis-van-rooijen","authors",{"name":15,"config":681},{"headshot":682},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758031391/muvwg1sxetzekmuhqdql.png",{"template":684,"gitlabHandle":685},"BlogAuthor","dvanrooijen2","content:en-us:blog:authors:dennis-van-rooijen.yml","Dennis Van Rooijen","en-us/blog/authors/dennis-van-rooijen.yml","en-us/blog/authors/dennis-van-rooijen",{"_path":691,"_dir":37,"_draft":6,"_partial":6,"_locale":7,"header":692,"eyebrow":693,"blurb":694,"button":695,"secondaryButton":699,"_id":701,"_type":29,"title":702,"_source":31,"_file":703,"_stem":704,"_extension":34},"/shared/de-de/next-steps","Stelle jetzt bessere Software schneller bereit","Mehr als 50 % der Fortune-100-Unternehmen vertrauen GitLab","Erlebe, was dein Team mit der intelligenten\n\n\nDevSecOps-Plattform erreichen kann.\n",{"text":45,"config":696},{"href":697,"dataGaName":48,"dataGaLocation":698},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":50,"config":700},{"href":52,"dataGaName":53,"dataGaLocation":698},"content:shared:de-de:next-steps.yml","Next Steps","shared/de-de/next-steps.yml","shared/de-de/next-steps",1759347832297]