I want to transfer Cloud SQL for PostgreSQL data to BigQuery.
So, I am setting BigQuery Data Transfer Service.
https://cloud.google.com/bigquery/docs/salesforce-transfer
Premise
Cloud SQL does not allow 0.0.0.0/0
resource "google_sql_database_instance" "postgres" {
database_version = "POSTGRES_14"
settings {
ip_configuration {
ipv4_enabled = var.public_access_enabled
private_network = var.vpc_id
ssl_mode = "ENCRYPTED_ONLY"
authorized_networks {
name = "internal"
value = "company_ip"
}
}
}
}
Description
BigQuery Data Transfer Service has below error.
「Transfer run failed with system error code FAILED_PRECONDITION.」
「“System error when starting to transfer asset [db/schema/table], try again later.”」
resource "google_bigquery_dataset" "cloud_sql_to_bigquery" {
dataset_id = "cloud_sql_to_bigquery"
location = "asia-northeast1"
access {
role = "OWNER"
user_by_email = "terraform@project.iam.gserviceaccount.com"
}
access {
role = "READER"
domain = "comany_domain"
}
}
resource "google_bigquery_data_transfer_config" "cloud_sql_to_bigquery" {
display_name = "cloud_sql_to_bigquery"
data_source_id = "postgresql"
location = "asia-northeast1"
schedule = "every 1 hours"
destination_dataset_id = google_bigquery_dataset.cloud_sql_to_bigquery.dataset_id
params = {
"connector.endpoint.host" = "private_ip"
"connector.endpoint.port" = "5432"
"connector.database" = var.TF_POSTGRES_DATABASE
"connector.authentication.username" = var.TF_POSTGRES_USER
"connector.authentication.password" = var.TF_POSTGRES_PASSWORD
"connector.schema" = "public"
"connector.networkAttachment" = "projects/.../regions/asia-northeast1/networkAttachments/..."
"assets" = jsonencode([
"${var.TF_POSTGRES_DATABASE}/public/table_name"
])
}
}
Additional explanation
Before adding 「connector.networkAttachment」and
connector.endpoint.host is public_ip, BigQuery Data Transfer Service has below error.
「INVALID_ARGUMENT: The connection attempt failed.」
「Invalid datasource configuration provided when starting to transfer asset [db/schema/table] INVALID_ARGUMENT: The connection attempt failed.」
Images


So, i think not network error.Thank for watching the post.
