123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- // 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.
- syntax = "proto3";
- package google.cloud.bigquery.migration.v2;
- option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2";
- option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2;migration";
- option java_multiple_files = true;
- option java_outer_classname = "TranslationConfigProto";
- option java_package = "com.google.cloud.bigquery.migration.v2";
- option php_namespace = "Google\\Cloud\\BigQuery\\Migration\\V2";
- // The translation config to capture necessary settings for a translation task
- // and subtask.
- message TranslationConfigDetails {
- // The chosen path where the source for input files will be found.
- oneof source_location {
- // The Cloud Storage path for a directory of files to translate in a task.
- string gcs_source_path = 1;
- }
- // The chosen path where the destination for output files will be found.
- oneof target_location {
- // The Cloud Storage path to write back the corresponding input files to.
- string gcs_target_path = 2;
- }
- // The dialect of the input files.
- Dialect source_dialect = 3;
- // The target dialect for the engine to translate the input to.
- Dialect target_dialect = 4;
- // The mapping of full SQL object names from their current state to the
- // desired output.
- oneof output_name_mapping {
- // The mapping of objects to their desired output names in list form.
- ObjectNameMappingList name_mapping_list = 5;
- }
- // The default source environment values for the translation.
- SourceEnv source_env = 6;
- }
- // The possible dialect options for translation.
- message Dialect {
- // The possible dialect options that this message represents.
- oneof dialect_value {
- // The BigQuery dialect
- BigQueryDialect bigquery_dialect = 1;
- // The HiveQL dialect
- HiveQLDialect hiveql_dialect = 2;
- // The Redshift dialect
- RedshiftDialect redshift_dialect = 3;
- // The Teradata dialect
- TeradataDialect teradata_dialect = 4;
- // The Oracle dialect
- OracleDialect oracle_dialect = 5;
- // The SparkSQL dialect
- SparkSQLDialect sparksql_dialect = 6;
- // The Snowflake dialect
- SnowflakeDialect snowflake_dialect = 7;
- // The Netezza dialect
- NetezzaDialect netezza_dialect = 8;
- // The Azure Synapse dialect
- AzureSynapseDialect azure_synapse_dialect = 9;
- // The Vertica dialect
- VerticaDialect vertica_dialect = 10;
- // The SQL Server dialect
- SQLServerDialect sql_server_dialect = 11;
- // The Postgresql dialect
- PostgresqlDialect postgresql_dialect = 12;
- // The Presto dialect
- PrestoDialect presto_dialect = 13;
- // The MySQL dialect
- MySQLDialect mysql_dialect = 14;
- }
- }
- // The dialect definition for BigQuery.
- message BigQueryDialect {}
- // The dialect definition for HiveQL.
- message HiveQLDialect {}
- // The dialect definition for Redshift.
- message RedshiftDialect {}
- // The dialect definition for Teradata.
- message TeradataDialect {
- // The sub-dialect options for Teradata.
- enum Mode {
- // Unspecified mode.
- MODE_UNSPECIFIED = 0;
- // Teradata SQL mode.
- SQL = 1;
- // BTEQ mode (which includes SQL).
- BTEQ = 2;
- }
- // Which Teradata sub-dialect mode the user specifies.
- Mode mode = 1;
- }
- // The dialect definition for Oracle.
- message OracleDialect {}
- // The dialect definition for SparkSQL.
- message SparkSQLDialect {}
- // The dialect definition for Snowflake.
- message SnowflakeDialect {}
- // The dialect definition for Netezza.
- message NetezzaDialect {}
- // The dialect definition for Azure Synapse.
- message AzureSynapseDialect {}
- // The dialect definition for Vertica.
- message VerticaDialect {}
- // The dialect definition for SQL Server.
- message SQLServerDialect {}
- // The dialect definition for Postgresql.
- message PostgresqlDialect {}
- // The dialect definition for Presto.
- message PrestoDialect {}
- // The dialect definition for MySQL.
- message MySQLDialect {}
- // Represents a map of name mappings using a list of key:value proto messages of
- // existing name to desired output name.
- message ObjectNameMappingList {
- // The elements of the object name map.
- repeated ObjectNameMapping name_map = 1;
- }
- // Represents a key-value pair of NameMappingKey to NameMappingValue to
- // represent the mapping of SQL names from the input value to desired output.
- message ObjectNameMapping {
- // The name of the object in source that is being mapped.
- NameMappingKey source = 1;
- // The desired target name of the object that is being mapped.
- NameMappingValue target = 2;
- }
- // The potential components of a full name mapping that will be mapped
- // during translation in the source data warehouse.
- message NameMappingKey {
- // The type of the object that is being mapped.
- enum Type {
- // Unspecified name mapping type.
- TYPE_UNSPECIFIED = 0;
- // The object being mapped is a database.
- DATABASE = 1;
- // The object being mapped is a schema.
- SCHEMA = 2;
- // The object being mapped is a relation.
- RELATION = 3;
- // The object being mapped is an attribute.
- ATTRIBUTE = 4;
- // The object being mapped is a relation alias.
- RELATION_ALIAS = 5;
- // The object being mapped is a an attribute alias.
- ATTRIBUTE_ALIAS = 6;
- // The object being mapped is a function.
- FUNCTION = 7;
- }
- // The type of object that is being mapped.
- Type type = 1;
- // The database name (BigQuery project ID equivalent in the source data
- // warehouse).
- string database = 2;
- // The schema name (BigQuery dataset equivalent in the source data warehouse).
- string schema = 3;
- // The relation name (BigQuery table or view equivalent in the source data
- // warehouse).
- string relation = 4;
- // The attribute name (BigQuery column equivalent in the source data
- // warehouse).
- string attribute = 5;
- }
- // The potential components of a full name mapping that will be mapped
- // during translation in the target data warehouse.
- message NameMappingValue {
- // The database name (BigQuery project ID equivalent in the target data
- // warehouse).
- string database = 1;
- // The schema name (BigQuery dataset equivalent in the target data warehouse).
- string schema = 2;
- // The relation name (BigQuery table or view equivalent in the target data
- // warehouse).
- string relation = 3;
- // The attribute name (BigQuery column equivalent in the target data
- // warehouse).
- string attribute = 4;
- }
- // Represents the default source environment values for the translation.
- message SourceEnv {
- // The default database name to fully qualify SQL objects when their database
- // name is missing.
- string default_database = 1;
- // The schema search path. When SQL objects are missing schema name,
- // translation engine will search through this list to find the value.
- repeated string schema_search_path = 2;
- }
|