datasets/cloud_datasets/pipelines/pdp_extract_tabular_metadata/pipeline.yaml (212 lines of code) (raw):
# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
resources:
- type: bigquery_table
dataset_id: _cloud_datasets
table_id: "tabular_datasets"
description: "This table contains all the metadata for all the tabular datasets in the Cloud Datasets program"
schema: |-
[
{
"name": "extracted_at",
"description": "The date and time when this row was extracted from BigQuery",
"type": "TIMESTAMP"
},
{
"name": "created_at",
"description": "The date and time when the dataset was created",
"type": "TIMESTAMP"
},
{
"name": "modified_at",
"description": "The date and time when the dataset was last modified",
"type": "TIMESTAMP"
},
{
"name": "project_id",
"description": "The GCP project where the public dataset is stored",
"type": "STRING"
},
{
"name": "dataset_id",
"description": "The BigQuery dataset ID",
"type": "STRING"
},
{
"name": "description",
"description": "The dataset description",
"type": "STRING"
},
{
"name": "num_tables",
"description": "Number of tables contained in this dataset",
"type": "INTEGER"
},
{
"name": "is_public",
"description": "Whether or not the dataset is public to all users",
"type": "BOOLEAN"
}
]
- type: bigquery_table
dataset_id: _cloud_datasets
table_id: "tables"
description: "This table contains all the metadata for all the tables in the Cloud Datasets program"
schema: |-
[
{
"name": "extracted_at",
"description": "The date and time when this row was extracted from BigQuery",
"type": "TIMESTAMP"
},
{
"name": "created_at",
"description": "The date and time when the dataset was created",
"type": "TIMESTAMP"
},
{
"name": "modified_at",
"description": "The date and time when the dataset was last modified",
"type": "TIMESTAMP"
},
{
"name": "project_id",
"description": "The GCP project where the public dataset is stored",
"type": "STRING"
},
{
"name": "dataset_id",
"description": "The BigQuery dataset ID",
"type": "STRING"
},
{
"name": "table_id",
"description": "The BigQuery table ID",
"type": "STRING"
},
{
"name": "description",
"description": "The dataset description",
"type": "STRING"
},
{
"name": "type",
"description": "The type of the table",
"type": "STRING"
},
{
"name": "num_bytes",
"description": "The number of bytes the table allocated on disk",
"type": "INTEGER"
},
{
"name": "num_rows",
"description": "The number of rows in the table",
"type": "INTEGER"
},
{
"name": "num_columns",
"description": "The number of columns in the table",
"type": "INTEGER"
},
{
"name": "described_columns",
"description": "The number of columns in the table with a description",
"type": "INTEGER"
}
]
- type: bigquery_table
dataset_id: _cloud_datasets
table_id: "tables_fields"
description: "This table contains all the metadata for all the field in all the tables in the Cloud Datasets program"
schema: |-
[
{
"name": "extracted_at",
"description": "The date and time when this row was extracted from BigQuery",
"type": "TIMESTAMP"
},
{
"name": "project_id",
"description": "The GCP project where the public dataset is stored",
"type": "STRING"
},
{
"name": "dataset_id",
"description": "The BigQuery dataset ID",
"type": "STRING"
},
{
"name": "table_id",
"description": "The BigQuery table ID",
"type": "STRING"
},
{
"name": "name",
"description": "The name of the field",
"type": "STRING"
},
{
"name": "description",
"description": "The description for the field",
"type": "STRING"
},
{
"name": "field_type",
"description": "The type of the field",
"type": "STRING"
},
{
"name": "mode",
"description": "The mode of the field",
"type": "STRING"
},
{
"name": "precision",
"description": "Precision for the NUMERIC field",
"type": "INTEGER"
},
{
"name": "scale",
"description": "Scale for the NUMERIC field",
"type": "INTEGER"
},
{
"name": "max_length",
"description": "Maximum length for the STRING or BYTES field",
"type": "INTEGER"
}
]
dag:
airflow_version: 2
initialize:
dag_id: pdp_extract_tabular_metadata
default_args:
owner: "Google"
depends_on_past: False
start_date: '2022-08-20'
max_active_runs: 1
schedule_interval: "@daily"
catchup: False
default_view: graph
tasks:
- operator: "KubernetesPodOperator"
description: "Extract the metadata for tabular datasets"
args:
task_id: "pdp_extract_tabular_metadata_task"
name: "pdp_extract_tabular_metadata_task"
namespace: "composer"
service_account_name: "datasets"
image_pull_policy: "Always"
image: "{{ var.json.cloud_datasets.container_registry.pdp_extract_tabular_metadata_image }}"
env_vars:
SOURCE_PROJECTS_IDS: "{{ var.json.cloud_datasets.pdp_extract_tabular_metadata.source_projects_ids }}"
TARGET_PROJECT_ID: "{{ var.value.gcp_project }}"
TARGET_DATASET: "{{ var.json.cloud_datasets.pdp_extract_tabular_metadata.target_dataset }}"
TABULAR_DATASET_TABLE_NAME: "{{ var.json.cloud_datasets.pdp_extract_tabular_metadata.tabular_dataset_table_name }}"
TABLES_TABLE_NAME: "{{ var.json.cloud_datasets.pdp_extract_tabular_metadata.tables_table_name }}"
TABLES_FIELDS_TABLE_NAME: "{{ var.json.cloud_datasets.pdp_extract_tabular_metadata.tables_fields_table_name }}"
resources:
request_memory: "128M"
request_cpu: "200m"
graph_paths:
- "pdp_extract_tabular_metadata_task"