从GS Bucket导入CSV到CloudSQL SQL Server时遇400错误,求排查
问题原因与解决办法
错误根源
gcloud sql import csv命令仅支持Cloud SQL的MySQL和PostgreSQL实例,完全不适用于SQL Server实例,这就是你触发"Unknown export file type"错误的核心原因。
正确导入方式(针对Cloud SQL for SQL Server)
方法1:使用bcp命令(Cloud Shell中执行)
Cloud Shell默认预装了SQL Server的bcp工具,直接用以下格式执行:
bcp TestDb.dbo.covid_clean in gs://testbucketsabir/covid_clean.csv -S testinstance -U 你的SQL用户名 -P 你的SQL密码 -c -t,
参数说明:
-c:以纯文本格式处理CSV文件-t,:指定CSV的列分隔符为逗号(如果你的CSV用其他分隔符,比如制表符,替换为-t\t)- 替换
你的SQL用户名和你的SQL密码为你创建Cloud SQL实例时设置的登录凭据
方法2:用SQL Server Management Studio (SSMS)导入
- 用SSMS连接到你的Cloud SQL for SQL Server实例(需提前配置连接权限)
- 右键目标表
covid_clean,选择「任务」→「导入数据」 - 数据源选择「平面文件源」,指定GS Bucket中CSV文件的路径(可先将CSV下载到本地,或通过Cloud Storage集成直接访问)
- 按照向导完成列映射、数据类型匹配等设置,最终执行导入
注意事项
- 确保CSV文件的列数量、数据类型和目标表
covid_clean完全对应,否则会出现导入失败或数据异常 - 使用bcp时,要保证Cloud Shell有访问Cloud SQL实例的权限(若用私有IP,需配置VPC访问)
- Cloud Storage桶和Cloud SQL实例需处于同一区域,避免跨区域的权限限制或性能问题
内容的提问来源于stack exchange,提问作者SGM Sabir
相关产品推荐
相关产品推荐

