google_dataproc_metastore_service

A managed metastore service that serves metadata queries.

To get more information about Service, see:

Open in Cloud Shell

Example Usage - Dataproc Metastore Service Basic

resource "google_dataproc_metastore_service" "default" {
  service_id = "metastore-srv"
  location   = "us-central1"
  port       = 9080
  tier       = "DEVELOPER"

  maintenance_window {
    hour_of_day = 2
    day_of_week = "SUNDAY"
  }

  hive_metastore_config {
    version = "2.3.6"
  }

  labels = {
    env = "test"
  }
}
## Example Usage - Dataproc Metastore Service Cmek Example
resource "google_dataproc_metastore_service" "default" {
  service_id = "example-service"
  location   = "us-central1"

  encryption_config {
    kms_key = google_kms_crypto_key.crypto_key.id
  }

  hive_metastore_config {
    version = "3.1.2"
  }
}

resource "google_kms_crypto_key" "crypto_key" {
  provider = google-beta
  name     = "example-key"
  key_ring = google_kms_key_ring.key_ring.id

  purpose  = "ENCRYPT_DECRYPT"
}

resource "google_kms_key_ring" "key_ring" {
  provider = google-beta
  name     = "example-keyring"
  location = "us-central1"
}
## Example Usage - Dataproc Metastore Service Private Service Connect
resource "google_compute_network" "net" {
  name                    = "my-network"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "subnet" {
  name                     = "my-subnetwork"
  region                   = "us-central1"
  network                  = google_compute_network.net.id
  ip_cidr_range            = "10.0.0.0/22"
  private_ip_google_access = true
}

resource "google_dataproc_metastore_service" "default" {
  service_id = "metastore-srv"
  location   = "us-central1"

  hive_metastore_config {
    version = "3.1.2"
  }

  network_config {
    consumers {
      subnetwork = google_compute_subnetwork.subnet.id
    }
  }
}
## Example Usage - Dataproc Metastore Service Private Service Connect Custom Routes
resource "google_compute_network" "net" {
  provider                = google-beta
  name                    = "my-network"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "subnet" {
  provider                 = google-beta
  name                     = "my-subnetwork"
  region                   = "us-central1"
  network                  = google_compute_network.net.id
  ip_cidr_range            = "10.0.0.0/22"
  private_ip_google_access = true
}

resource "google_dataproc_metastore_service" "default" {
  provider   = google-beta
  service_id = "metastore-srv"
  location   = "us-central1"

  hive_metastore_config {
    version = "3.1.2"
  }

  network_config {
    consumers {
      subnetwork            = google_compute_subnetwork.subnet.id
    }
    custom_routes_enabled = true
  }
}
Open in Cloud Shell

Example Usage - Dataproc Metastore Service Dpms2

resource "google_dataproc_metastore_service" "dpms2" {
  service_id = "ms-dpms2"
  location   = "us-central1"

  # DPMS 2 requires SPANNER database type, and does not require
  # a maintenance window.
  database_type = "SPANNER"

  hive_metastore_config {
    version           = "3.1.2"
  }

  scaling_config {
    instance_size = "EXTRA_SMALL"
  }
}
Open in Cloud Shell

Example Usage - Dataproc Metastore Service Dpms2 Scaling Factor

resource "google_dataproc_metastore_service" "dpms2_scaling_factor" {
  service_id = "ms-dpms2sf"
  location   = "us-central1"

  # DPMS 2 requires SPANNER database type, and does not require
  # a maintenance window.
  database_type = "SPANNER"

  hive_metastore_config {
    version           = "3.1.2"
  }

  scaling_config {
    scaling_factor = "2"
  }
}
Open in Cloud Shell

Example Usage - Dataproc Metastore Service Scheduled Backup

resource "google_dataproc_metastore_service" "backup" {
  service_id = "backup"
  location   = "us-central1"
  port       = 9080
  tier       = "DEVELOPER"

  maintenance_window {
    hour_of_day = 2
    day_of_week = "SUNDAY"
  }

  hive_metastore_config {
    version = "2.3.6"
  }

  scheduled_backup {
    enabled         = true
    cron_schedule   = "0 0 * * *"
    time_zone       = "UTC"
    backup_location = "gs://${google_storage_bucket.bucket.name}"
  }

  labels = {
    env = "test"
  }
}

resource "google_storage_bucket" "bucket" {
  name     = "backup"
  location = "us-central1"
}

Argument Reference

The following arguments are supported:


The scaling_config block supports:

The scheduled_backup block supports:

The maintenance_window block supports:

The encryption_config block supports:

The hive_metastore_config block supports:

The kerberos_config block supports:

The keytab block supports:

The auxiliary_versions block supports:

The network_config block supports:

The consumers block supports:

The metadata_integration block supports:

The data_catalog_config block supports:

The telemetry_config block supports:

Attributes Reference

In addition to the arguments listed above, the following computed attributes are exported:

Timeouts

This resource provides the following Timeouts configuration options:

Import

Service can be imported using any of these accepted formats:

In Terraform v1.5.0 and later, use an import block to import Service using one of the formats above. For example:

import {
  id = "projects/{{project}}/locations/{{location}}/services/{{service_id}}"
  to = google_dataproc_metastore_service.default
}

When using the terraform import command, Service can be imported using one of the formats above. For example:

$ terraform import google_dataproc_metastore_service.default projects/{{project}}/locations/{{location}}/services/{{service_id}}
$ terraform import google_dataproc_metastore_service.default {{project}}/{{location}}/{{service_id}}
$ terraform import google_dataproc_metastore_service.default {{location}}/{{service_id}}

User Project Overrides

This resource supports User Project Overrides.