如何通过GCP原生SFTP连接器从IP封禁的SFTP服务器导入数据至BigQuery
分步实现SFTP数据导入GCP BigQuery(带静态IP白名单配置)
一、准备固定出站IP(用于SFTP白名单)
SFTP服务商需白名单GCP的请求IP,需配置Cloud NAT绑定静态IP确保出站流量固定:
- 创建静态外部IP
- 进入GCP控制台 → VPC网络 → 外部IP地址
- 点击「保留静态地址」,自定义名称(如
sftp-outbound-ip),类型选区域(需与后续Cloud NAT同区域),IPv4版本,点击保留 - 记录该IP,提供给SFTP服务商加入白名单
- 配置Cloud NAT网关
- 进入GCP控制台 → VPC网络 → 云NAT
- 点击「创建云NAT网关」,自定义名称(如
sftp-nat-gateway) - 选择目标VPC(默认VPC或自定义VPC均可)
- 云路由器:选择现有路由器或创建同区域新路由器
- NAT IP地址:勾选「指定静态IP地址」,选择刚创建的静态IP
- 保持其他默认配置,点击创建
二、用GCP原生Transfer Service拉取SFTP数据到Cloud Storage
Cloud Storage Transfer Service是GCP托管的原生SFTP集成工具,可直接同步SFTP数据到GCS:
- 创建GCS中转存储桶
- 进入GCP控制台 → Cloud Storage → 存储桶 → 创建存储桶
- 自定义名称(如
sftp-bigquery-staging),区域与Cloud NAT同区域,其余默认,点击创建
- 创建SFTP传输任务
- 进入GCP控制台 → Cloud Storage → 传输 → 创建传输任务
- 源类型选择SFTP,填写SFTP服务器信息:主机名(IP/域名)、端口(默认22)、用户名,选择密码或SSH密钥认证(按服务商要求配置)
- 源路径:填写SFTP上需同步的文件目录(如
/data/daily-exports/) - 目标:选择刚创建的GCS存储桶,可指定目标子路径(如
sftp-imports/) - 网络配置:展开后勾选「使用VPC网络」,选择绑定了Cloud NAT的VPC及同区域子网
- 传输策略:按需选择一次性同步或定时同步(如每日凌晨),点击创建
- 等待任务执行,验证数据是否成功同步到GCS
三、将GCS数据导入BigQuery
完成SFTP到GCS的同步后,将数据加载至BigQuery:
- 创建BigQuery数据集
- 进入GCP控制台 → BigQuery → 数据集 → 创建数据集
- 自定义名称(如
sftp_imports),区域与GCS存储桶同区域,点击创建
- 加载数据到BigQuery表
- 进入目标数据集 → 创建表
- 源选择Cloud Storage,选择GCS中存储SFTP数据的路径,匹配原始数据格式(CSV/JSON/Parquet等)
- 表结构:可选择自动检测模式或手动定义字段
- 高级选项:按需配置分区、集群(大数据量场景),选择写入方式(追加/覆盖)
- 点击创建,等待数据加载完成
- (可选)自动同步配置
- 若需实时/定时同步,可配置Cloud Functions监听GCS对象创建事件,触发BigQuery自动加载;或使用BigQuery外部表直接查询GCS数据
四、验证流程
- 检查Transfer Service任务日志,确认无连接被拒绝错误(说明静态IP已被SFTP服务商白名单允许)
- 验证GCS中文件的完整性与正确性
- 查询BigQuery目标表,确认数据导入无误
内容的提问来源于stack exchange,提问作者Berra
相关产品推荐
相关产品推荐

