BigQuery supports clustering for both partitioned and non-partitioned tables.

Reference: [https://cloud.google.com/bigquery/docs/clustered-tables](https://cloud.google.com/bigquery/docs/clustered-tables)
airflow/providers/google/cloud/hooks/bigquery.py
raise Exception(
            '{var}Expect format of (<project:)<dataset>.<table>, '
            'got {input}'.format(var=var_print(var_name), input=table_input)
        )
    cmpt = rest.split('.')
    if len(cmpt) == 3:
        if project_id:
            raise ValueError("{var}Use either : or . to specify project".format(var=var_print(var_name)))
        project_id = cmpt[0]
        dataset_id = cmpt[1]
        table_id = cmpt[2]
    elif len(cmpt) == 2:
        dataset_id = cmpt[0]
        table_id = cmpt[1]
    else:
        raise Exception(
            '{var}Expect format of (<project.|<project:)<dataset>.<table>, '
            'got {input}'.format(var=var_print(var_name), input=table_input)
        )
    if project_id is None:
        if var_name is not None:
            log.info(
                'Project not included in %s: %s; using project "%s"',
                var_name,
                table_input,
                default_project_id,
            )
        project_id = default_project_id
    return project_id, dataset_id, table_id
def _cleanse_time_partitioning(