BIGQUERY → STACKIT · ARCHITECTUUR

BigQuery naar STACKIT: het dataplatform ontwerpen

BigQuery wordt niet verplaatst, het wordt vervangen door een ontwerp. StackToIT deelt een BigQuery-dataset in als REDESIGN met zekerheidsniveau LOW en schrijft er geen Terraform voor, omdat er geen enkele STACKIT-resource bestaat die een serverless warehouse met zijn SQL-dialect en factureringsmodel kan vervangen. Deze pagina zet de opties uiteen, laat zien wat de engine doet met de onderdelen rond het warehouse en hoe u kiest.

Een dataset met tabellen, beoordeeld als één eenheid

Een kleine analytics-omgeving die voor deze pagina is geschreven en op 4 november 2026 door StackToIT is beoordeeld: een dataset, een gepartitioneerde tabel, een view, een datasetgrant, een bucket en een topic. Links: de dataset en de tabel orders zoals de invoer ze declareert. Rechts: een fragment van de eenheid in assessment.json, met de waarden precies zoals de run ze schreef; de servicetekst van het doel is weggelaten.

Voorbeeldinvoermain.tf
resource "google_bigquery_dataset" "sales" {
  dataset_id                 = "sales"
  location                   = "EU"
  default_table_expiration_ms = 31536000000
}

resource "google_bigquery_table" "orders" {
  dataset_id          = google_bigquery_dataset.sales.dataset_id
  table_id            = "orders"
  deletion_protection = true

  time_partitioning {
    type  = "DAY"
    field = "order_date"
  }

  clustering = ["customer_id"]

  schema = jsonencode([
    { name = "order_id", type = "STRING", mode = "REQUIRED" },
    { name = "customer_id", type = "STRING", mode = "REQUIRED" },
    { name = "order_date", type = "DATE", mode = "REQUIRED" },
    { name = "total", type = "NUMERIC", mode = "NULLABLE" }
  ])
}
Assessment van StackToITassessment.json
{
  "id": "google_bigquery_dataset.sales",
  "kind": "data_warehouse",
  "facets": [
    "google_bigquery_dataset_iam_member.analysts",
    "google_bigquery_table.daily_revenue",
    "google_bigquery_table.orders"
  ],
  "result": {
    "class": "REDESIGN",
    "confidence": "LOW",
    "target": {
      "resources": [
        "stackit_dremio_instance"
      ]
    },
    "reason": "BigQuery is a serverless warehouse with its own SQL dialect, storage and billing model. On STACKIT, data lands as files (e.g. Iceberg) in Object Storage queried with Dremio, or in a self-managed warehouse; queries, scheduled queries and BI connections are rewritten."
  }
}
  • Tabellen, view en grant gaan op in de dataset

    De twee tabellen en de datasetgrant staan vermeld als facetten van de dataset-eenheid, dus zes resources worden drie eenheden. Wat de eenheid vertegenwoordigt, is het hele warehouse-deel, niet één object.

  • Voor het warehouse wordt niets als concept geschreven

    De klasse is REDESIGN en het zekerheidsniveau LOW. De genoemde doelresource is een Dremio-instance, die de provider aanmerkt als onderdeel van een opt-in-functie die sterk kan wijzigen; de run noemt die als kandidaat en schrijft geen blok. De Dremio-pagina van STACKIT voegt toe dat per november 2026 een soft limit op actieve instances per project geldt en dat de enginegroottes in de huidige releasefase zijn begrensd; meer capaciteit loopt via de support van STACKIT.

  • Twaalf kritieke instellingen blijven bij u

    Het architectenrapport noemt ze per soort voor de dataset-eenheid: identiteitstoegang (member en rol van de datasetgrant), verlopen van data, beveiliging tegen verwijderen op beide tabellen, de locatie, drie namen, het tabelschema, en het partitietype en de partitiekolom. Elke instelling is een beslissing over de vervanging, geen waarde om te kopiëren.

De onderdelen rond het warehouse zijn als concept geschreven

Uit dezelfde run. Een landingsbucket en een eventtopic zijn gewone migraties. Links: de invoer. Daarna de blokken die de engine schreef, één paneel per bestand, zonder de reviewcommentaren erboven.

Voorbeeldinvoermain.tf
resource "google_storage_bucket" "landing" {
  name                        = "shop-analytics-landing"
  location                    = "EUROPE-WEST3"
  uniform_bucket_level_access = true
}

resource "google_pubsub_topic" "events" {
  name = "order-events"
}
STACKIT: storage.tfterraform/storage.tf
resource "stackit_objectstorage_bucket" "landing" {
  project_id = var.project_id
  name       = "shop-analytics-landing"
}
STACKIT: messaging.tfterraform/messaging.tf
resource "stackit_rabbitmq_instance" "messaging" {
  project_id = var.project_id
  name       = "messaging"
  plan_name  = var.rabbitmq_plan_name
  version    = var.rabbitmq_version
  parameters = {
    sgw_acl = join(",", var.rabbitmq_allowed_cidrs)
  }
}
  • De bucket is het fundament

    Een Cloud Storage-bucket wordt een STACKIT Object Storage-bucket (RECONFIGURE). Welk warehouseontwerp u ook kiest, de bestanden komen hier terecht, dus dit bouwt u als eerste.

  • Pub/Sub-topic naar RabbitMQ

    Een topic wordt een exchange op één gedeelde RabbitMQ-instance (REPLATFORM). Het concept maakt alleen de instance aan; exchanges, queues en de overstap van de Pub/Sub-client naar AMQP zijn aan u.

  • Dataverplaatsing is een openstaande beslissing

    migration/data-movement.md noemt de dataset en de bucket als stateful eenheden met een nog onbekend mechanisme en merkt op dat de omvang en de wijzigingssnelheid van de data niet in de bron staan.

De opties en hun afwegingen

OptiePast wanneerAfweging
Lakehouse: bestanden in Object Storage, bevraagd met STACKIT DremioVeel SQL-gebruikers en BI-tools; data mag als bestanden in een open formaat bestaanQueries en views worden herschreven naar Dremio SQL; de dienst is in de provider opt-in en daar beschikbaar in eu01
Zelfbeheerd warehouse op servers of SKEU hebt een specifieke engine nodig of volledige controle over de tuningU beheert, patcht, schaalt en maakt er zelf back-ups van
PostgreSQL Flex voor kleine relationele martsDe data is bescheiden en de queries zijn relationeelEén managed instance; die schaalt niet uit zoals een serverless warehouse
Laat deze workload voorlopig op BigQueryDe data mag een tijdlang buiten STACKIT blijvenTwee platforms om te draaien, en exports blijven een taak voor later

De eerste twee rijen zijn de doelen die de engine voor BigQuery noemt. De laatste twee zijn opties die een architect kan afwegen; de run stelt ze niet voor.

Zo beslist u

Beantwoord deze vragen in volgorde; de antwoorden wijzen meestal de rij aan.

  1. Wie bevraagt het, en waarmee

    Maak een lijst van analisten, rapporten en geplande jobs. Het SQL-dialect van BigQuery, geneste en herhaalde velden en BigQuery ML-modellen schrijft u allemaal opnieuw of vervangt u (algemene praktijk, geen uitvoer van de run); tel ze, want dat zijn de werkelijke kosten.

  2. Hoe groot, en hoe snel verandert het

    De run meldt ronduit dat geen van beide in de bron staat. Zonder deze gegevens kan de dataverplaatsing niet worden gepland en kan een instance niet worden gedimensioneerd.

  3. Wat moet verlopen of blijven

    Uw dataset stelt een standaardverlooptijd van tabellen van één jaar in, wat de run markeert. Bij een ontwerp op basis van bestanden wordt het verlopen van data een job of lifecycleregel die u bewust schrijft.

  4. Wie mag wat lezen

    Dremio documenteert toegangscontrole op rij- en kolomniveau en aanmelden via een OIDC-identiteitsprovider. Vertaal elke datasetgrant van BigQuery naar een van die regels in plaats van rollen te kopiëren.

De data verplaatsen, zodra u hebt gekozen

Algemene praktijk, geen uitvoer van de engine. De run legt alleen vast dat een mechanisme moet worden gekozen.

  1. Exporteren uit BigQuery

    Een tabelexport schrijft alleen naar Cloud Storage, als CSV, newline-delimited JSON, Avro of Parquet. De dataset en de bucket moeten op dezelfde locatie staan en één bestand bevat tot 1 GB aan tabeldata, dus gebruik een wildcard in de bestandsnaam.

  2. Kopiëren naar Object Storage

    Kopieer de geëxporteerde bestanden naar de STACKIT-bucket met een S3-compatibele tool zoals rclone. De bucket spreekt de S3 API via HTTPS.

  3. De tabellen registreren

    Dremio heeft native connectoren voor S3-compatibele opslag en ondersteunt Iceberg- en Delta Lake-tabellen. Bepaal de partitie-indeling bewust, want de run noemt de partitiekolom als openstaand.

  4. Views en schema’s herschrijven

    De dagelijkse omzetview is in BigQuery SQL geschreven en wordt handmatig herschreven. STACKIT Workflows, gebouwd op Apache Airflow, kan terugkerende jobs als Python-DAG’s draaien; de webgebaseerde DAG-editor is nog niet beschikbaar.

  5. Streaming-invoer

    Waar events voorheen naar BigQuery stroomden, neemt STACKIT Intake ze op via het Kafka-protocol in Iceberg-tabellen in een Dremio-catalogus. Controleer of het bij uw producers past voordat u erop bouwt.

Vragen van datateams

Waarom schrijft StackToIT geen Terraform voor BigQuery?

Omdat het juiste doel afhangt van een ontwerpkeuze: bestanden die met Dremio worden bevraagd, of een warehouse dat u zelf beheert. De run noemt de kandidaten, somt de openstaande instellingen op en laat de keuze aan u.

Is er een STACKIT-dienst die gelijkwaardig is aan BigQuery?

Niet als één dienst. Het dichtstbijzijnde managed pad in de documentatie van STACKIT is een lakehouse: bestanden in een open formaat in Object Storage, bevraagd met Dremio. Dat is een ander model, dus queries en tooling veranderen.

Worden partities en clustering van BigQuery overgenomen?

Geen enkele instelling gaat vanzelf mee. De run noemt de partitiekolom, het partitietype en het tabelschema als openstaande punten. De run leest de clustering op customer_id maar maakt er geen punt van, dus zet clustering op uw eigen lijst; u bepaalt de indeling van de bestanden of tabellen op het doel.

Kunnen we eerst de data verplaatsen en later ontwerpen?

Ja. Exporteren naar Parquet en kopiëren naar een Object Storage-bucket legt u niet vast op een engine. Het is een veilige eerste stap, omdat elke STACKIT-optie hierboven bestanden leest of kan laden.

Bronnen

Uw volgende stap: STACKIT.

Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.

Laat uw gegevens achter, onze specialisten nemen contact met u op.

Liever zelf een e-mail sturen? connect@stacktoit.com

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring