def load_tables(dataset, tablespecs): """Construct a dictionary of BigQuery tables given the input tablespec. Args: dataset: bigquery.Dataset tablespecs: list of strings of "NAME:DAYS", e.g. ["day:1"] Returns: {name: (bigquery.Table, incremental table name)} """ project, dataset_name = dataset.split(':') dataset = bigquery.Client(project).dataset(dataset_name) tables = {} for spec in tablespecs: name, days = spec.split(':') table = dataset.table(name) try: table.reload() except google.cloud.exceptions.NotFound: # pylint: disable=no-member table.schema = load_schema(bigquery.schema.SchemaField) table.create() tables[name] = (table, make_json.get_table(float(days))) return tables
def load_tables(dataset, tablespecs): """Construct a dictionary of BigQuery tables given the input tablespec. Args: dataset: bigquery.Dataset tablespecs: list of strings of "NAME:DAYS", e.g. ["day:1"] Returns: client, {name: (bigquery.Table, incremental table name)} """ project, dataset_name = dataset.split(':') bq_client = bigquery.Client(project) tables = {} for spec in tablespecs: table_name, days = spec.split(':') table_ref = f'{project}.{dataset_name}.{table_name}' try: table = bq_client.get_table(table_ref) # pylint: disable=no-member except google.cloud.exceptions.NotFound: table = bq_client.create_table(table_ref) # pylint: disable=no-member table.schema = load_schema(bigquery.schema.SchemaField) tables[table_name] = (table, make_json.get_table(float(days))) return bq_client, tables