Loading...
Loading...
Translates SQL queries, DDL schemas, and stored procedures from legacy database dialects (Teradata, Oracle, Redshift, Snowflake, SparkSQL, HiveQL) to BigQuery GoogleSQL using the BigQuery Migration Service (BQMS) MCP server. Use when translating legacy SQL queries, migrating schemas or metadata zip archives, or configuring BigQuery Migration Service (BQMS) YAML translation settings. Don't use for executing BigQuery queries or managing datasets and tables (use bigquery-basics), diagnosing runtime job errors (use bigquery-troubleshooting), or tuning slot reservations (use bigquery-optimization).
npx skill4agent add google/skills bigquery-migration-sql-translatorgcloud config set project {project_id}bigquerymigration.googleapis.comgcloud services enable bigquerymigration.googleapis.comroles/mcp.toolUserroles/bigquerymigration.editorroles/storage.objectViewerroles/storage.objectCreatorroles/storage.objectAdmintranslate_querytranslate_batch_queriesgcloud storage rm -r gs://{bucket}/{folder}translation_tracker.md| Iteration | Status | Total Errors | Correctness Errors | Completeness Errors | Compatibility Errors | Key Actions / Transformations |
|---|
.sqltranslate_batch_queriestranslate_querytranslation_report.csvtranslate_querytranslate_queryprojectNumberlocationinputQuerysourceDialecttargetDialectBigQuerymetadataFilePathgs://.../metadata.ziptranslationConfigsget_translationtranslation_stateRUNNINGPENDINGget_translationtranslationprojectNumberlocationtranslation.stateSUCCEEDEDFAILEDtranslated_querytranslation_logsseverityERRORWARNINGcategoryRelationNotFoundeffectCORRECTNESSCOMPLETENESSCOMPATIBILITYERROR_TYPE(...)ERROR_TYPEbq query --dry_run --use_legacy_sql=falseNot foundmust be qualified with a datasetbqNoSuchFunctionERROR_TYPEexplain_translationexplain_translationtranslationprojectNumberlocationtranslation_report.csv*.config.yamlgcloud storage cp input/*.sql gs://my-bucket/migration/input/
gcloud storage cp *.config.yaml gs://my-bucket/migration/input/sourceBaseUritranslate_batch_queriestranslate_batch_queriesprojectNumberlocationsourceDialecttargetDialectsourceBaseUritargetBaseUritranslate_metadatametadata.ziptranslate_metadatasourceBaseUrimetadata.ziptargetBaseUrifetch_batch_translationtranslation.stateSUCCEEDEDFAILEDtranslation.target_base_urigcloud storage cp -r gs://my-bucket/migration/output/ ./local_output/report/translation_report.csv.sqlERROR_TYPE(...)Not foundCORRECTNESSCOMPLETENESSCOMPATIBILITYCORRECTNESSCOMPLETENESSCOMPATIBILITYTOPLIMIT| Effect | Common Causes | Reference Guide |
|---|---|---|
| Syntax errors, unescaped literals, application script wrappers, | effect_correctness.md |
| Missing tables, views, columns ( | effect_completeness.md |
| Functions or features without direct GoogleSQL mapping. | effect_compatibility.md |
| Task | Description | Reference Guide |
|---|---|---|
| YAML Configurations | Database/schema redirection, name mapping, table partitioning and clustering injection, optimizer transformations, statement rewriters, and environment settings. Schemas in | translation_yaml_config.md |
| MCP Server Setup | Configuring the remote BigQuery Migration Service (BQMS) MCP server, OAuth scopes, and IAM roles. | mcp_config.md |
| Dialect | Key Considerations | Reference Guide |
|---|---|---|
| Teradata | SET/MULTISET tables, | teradata_gotchas.md |
| Oracle | PL/SQL procedures, | oracle_gotchas.md |
| Snowflake | Dynamic templates, | snowflake_gotchas.md |