Fully qualified names are globally unique, case-sensitive resource identifiers that you can use with Dataplex to refer to Google Cloud and non-Google Cloud resources. They are composed of a prefix followed by segments delimited with dots. The maximum length is 4,000 characters.
For example, fully qualified names are used for systems that support the automatic ingestion of metadata from Google Cloud.
Predefined formats
The following table lists supported predefined formats for fully qualified names.
Surround segments that contain reserved characters, such as colons, dots, and whitespace, with backticks. Use double backticks to specify a backtick within a segment.
Resource | Format | |
---|---|---|
BigQuery | ||
Dataset | bigquery:{projectId}.{datasetId} |
|
Table | bigquery:{projectId}.{datasetId}.{tableId} |
|
View | bigquery:{projectId}.{datasetId}.{viewId} |
|
Model | bigquery:{projectId}.{datasetId}.{modelId} |
|
Sharded table | bigquery:sharded:{projectId}.{datasetId}.{tablePrefix} |
|
Routine | bigquery:routine:{projectId}.{datasetId}.{routineId} |
|
Connection | bigquery:connection:{projectId}.{location}.{connectionId} |
|
Dataplex | ||
Lake | dataplex:{projectId}.{location}.{lakeId} |
|
Zone | dataplex:{projectId}.{location}.{lakeId}.{zoneId} |
|
Table | dataplex:{projectId}.{location}.{lakeId}.{zoneId}.{tableId} |
|
Fileset | dataplex:{projectId}.{location}.{lakeId}.{zoneId}.{filesetId} |
|
Dataproc Metastore | ||
Service | dataproc_metastore:{projectId}.{location}.{instanceId} |
|
Database | dataproc_metastore:{projectId}.{location}.{instanceId}.{databaseId} |
|
Table | dataproc_metastore:{projectId}.{location}.{instanceId}.{databaseId}.{tableId} |
|
Cloud Storage | ||
Bucket | gcs:{bucketName} |
|
Path | gcs:{bucketName}.{virtualPath} |
|
Analytics Hub | ||
Exchange | analytics_hub:{projectId}.{location}.{exchangeId} |
|
Listing | analytics_hub:{projectId}.{location}.{exchangeId}.{listingId} . |
|
Spanner | ||
Instance | spanner:{projectId}.{instanceConfigId}.{instanceId} |
|
Database | spanner:{projectId}.{instanceConfigId}.{instanceId}.{databaseId} |
|
Table | spanner:{projectId}.{instanceConfigId}.{instanceId}.{databaseId}.{tableId} |
|
View | spanner:{projectId}.{instanceConfigId}.{instanceId}.{databaseId}.{viewId} |
|
Bigtable | ||
Instance | bigtable:{projectId}.{instanceId} |
|
Table | bigtable:{projectId}.{instanceId}.{tableId} |
|
Cloud SQL for MySQL | ||
Instance | cloudsql_mysql:{projectId}.{location}.{instanceId} |
|
Schema | cloudsql_mysql:{projectId}.{location}.{instanceId}.{schemaId} |
|
Table | cloudsql_mysql:{projectId}.{location}.{instanceId}.{schemaId}.{tableId} |
|
Cloud SQL for PostgreSQL | ||
Instance | cloudsql_postgresql:{projectId}.{location}.{instanceId} |
|
Database | cloudsql_postgresql:{projectId}.{location}.{instanceId}.{databaseId} |
|
Schema | cloudsql_postgresql:{projectId}.{location}.{instanceId}.{databaseId}.{schemaId} |
|
Table | cloudsql_postgresql:{projectId}.{location}.{instanceId}.{databaseId}.{schemaId}.{tableId} |
|
Looker | ||
Instance | looker:{instanceId} |
|
Dashboard | looker:dashboard:{instanceId}.{folderId}.{dashboardId} |
|
Explore | looker:explore:{instanceId}.{folderId}.{exploreId} |
|
Look | looker:look:{instanceId}.{folderId}.{lookId} |
|
Vertex AI | ||
Model | vertex_ai:model:{projectId}.{locationId}.{modelId}.{version} |
|
Dataset | vertex_ai:dataset:{projectId}.{locationId}.{datasetId} |
|
FeatureGroup | vertex_ai:featuregroup:{projectId}.{locationId}.{featureGroupId} . |
|
FeatureOnlineStore | vertex_ai:featureonlinestore:{projectId}.{locationId}.{featureOnlineStoreId} |
|
FeatureView | vertex_ai:featureonlinestore:{projectId}.{locationId}.{featureOnlineStoreId}.{FeatureViewId} |
|
Pub/Sub | ||
Topic | pubsub:topic:{projectId}.{topicId} |
|
Subscription | pubsub:subscription:{projectId}.{subscriptionId} |
|
AWS S3 | ||
Bucket | s3:{bucket} |
|
Path | s3:{bucket}.{virtualPath} |
|
AWS Redshift | ||
Instance | redshift:{clusterId}.{region}.{port} |
|
Database | redshift:{clusterId}.{region}.{port}.{databaseId} |
|
Schema | redshift:{clusterId}.{region}.{port}.{databaseId}.{schemaId} |
|
Table | redshift:{clusterId}.{region}.{port}.{databaseId}.{schemaId}.{tableId} |
|
AWS Athena | ||
Catalog | athena:{catalogId}.{region} |
|
Database | athena:{catalogId}.{region}.{databaseId} |
|
Table | athena:{catalogId}.{region}.{databaseId}.{tableId} |
|
Azure Blob Storage | ||
Account | abs:{account} |
|
Container | abs:{account}.{container} |
|
Path | abs:{account}.{container}.{virtualPath} |
|
Azure Cosmos DB | ||
Account | cosmos-db:{accountName} |
|
Database | cosmos-db:{accountName}.{databaseId} |
|
Container | cosmos-db:{accountName}.{databaseId}.{containerId} |
|
Azure Data Explorer | ||
Cluster | kusto:{clusterName}.{region} |
|
Database | kusto:{clusterName}.{region}.{databaseId} |
|
Table | kusto:{clusterName}.{region}.{databaseId}.{tableId} |
|
MySQL | ||
Instance | mysql:{dns} |
|
Schema | mysql:{dns}.{schemaId} |
|
Table | mysql:{dns}.{schemaId}.{tableId} |
|
PostgreSQL | ||
Instance | postgresql:{dns} |
|
Database | postgresql:{dns}.{databaseId} |
|
Schema | postgresql:{dns}.{databaseId}.{schemaId} |
|
Table | postgresql:{dns}.{databaseId}.{schemaId}.{tableId} |
|
Tableau | ||
Server | tableau:{dns} |
|
Site | tableau:{dns}.{site} |
|
Project | tableau:project:{dns}.{site}.{projectId} |
|
Data source | tableau:datasource:{dns}.{site}.{projectId}.{datasourceId} |
|
Workbook | tableau:workbook:{dns}.{site}.{projectId}.{workbookId} |
|
Sheet | tableau:sheet:{dns}.{site}.{projectId}.{workbookId}.{sheetId} |
|
Dashboard | tableau:dashboard:{dns}.{site}.{projectId}.{workbookId}.{dashboardId} |
|
Apache Kafka | ||
Cluster | kafka:{dns} |
|
Topic | kafka:{dns}.{topicId} |
|
Apache Hive | ||
Instance | hive_metastore:{dns} |
|
Database | hive_metastore:{dns}.{database} |
|
Table | hive_metastore:{dns}.{database}.{table} |
|
Oracle Database | ||
Instance | oracle:{dns} |
|
Database | oracle:{dns}.{databaseId} |
|
Schema | oracle:{dns}.{databaseId}.{schemaId} |
|
Table | oracle:{dns}.{databaseId}.{schemaId}.{tableId} |
|
Microsoft SQL Server | ||
Instance | sqlserver:{dns} |
|
Database | sqlserver:{dns}.{databaseId} |
|
Schema | sqlserver:{dns}.{databaseId}.{schemaId} |
|
Table | sqlserver:{dns}.{databaseId}.{schemaId}.{tableId} |
|
Apache Cassandra | ||
Cluster | cassandra:{dns} |
|
Keyspace | cassandra:{dns}.{keyspaceId} |
|
Table | cassandra:{dns}.{keyspaceId}.{tableId} |
|
IBM Informix | ||
Instance | informix:{dns} |
|
Database | informix:{dns}.{databaseId} |
|
Schema | informix:{dns}.{databaseId}.{schemaId} |
|
Table | informix:{dns}.{databaseId}.{schemaId}.{tableId} |
|
IBM DB2 | ||
Instance | db2:{dns} |
|
Database | db2:{dns}.{databaseId} |
|
Schema | db2:{dns}.{databaseId}.{schemaId} |
|
Table | db2:{dns}.{databaseId}.{schemaId}.{tableId} |
|
Trino | ||
Instance | trino:{dns} |
|
Catalog | trino:{dns}.{catalogId} |
|
Schema | trino:{dns}.{catalogId}.{schemaId} |
|
Table | trino:{dns}.{catalogId}.{schemaId}.{tableId} |
|
Snowflake | ||
Account | snowflake:{accountName} |
|
Database | snowflake:{accountName}.{databaseId} |
|
Schema | snowflake:{accountName}.{databaseId}.{schemaId} |
|
Table | snowflake:{accountName}.{databaseId}.{schemaId}.{tableId} |
|
Hadoop Distributed File System | ||
Instance | hdfs:{dns} |
|
Path | hdfs:{dns}.{path} |
|
Databricks File System | ||
Instance | dbfs:{workspace} |
|
Path | dbfs:{workspace}.{path} |
|
Generic File System | ||
Instance | filesystem:{dns} |
|
Path | filesystem:{dns}.{path} |
|
Salesforce | ||
SObject | salesforce:{environment}.{orgId}.{sobject} |
Custom formats
You can create a custom fully qualified name format by using the custom:
prefix. Custom formats are not validated, and may not be compatible with
Dataplex features. To ease future migration,
create custom formats that are similar to predefined formats.