SHOPLINE QL 与 BigQuery 集成指南

背景

在我们推出 SHOPLINE QL 之前,商家可能已经在使用第三方查询引擎或服务,例如 BigQuery。考虑到现有数据迁移或分析需求,现在我们建议使用 SHOPLINE QL 来处理这些数据。

从 SHOPLINE QL API 获取数据

通过此 API,你可以获取订单数据、商品数据、客户数据等,然后将数据写入本地文件或中间件,例如 MySQL、Amazon S3、Google Cloud Storage 等。

写入本地文件示例

使用 Go 语言分页获取数据并写入 CSV 文件:

func StoreDataToLocalFile(fileName string) {
  dataSetColumn := []string{"order_seq", "region", "province", "city", "sales_channel", "order_quantity", "refunds", "total_sales", "date_time"}
  file, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666)
  defer file.Close()
  
  pageNum := 1
  pageSize := 500
  for {
    resp := slapi.GetDataFromOpenShoplineApi(pageNum, pageSize)
    if resp == nil || len(resp) == 0 {
      break
    }
    // 写入数据到文件...
    pageNum++
  }
}

写入 S3 示例

func StoreDataToAwsS3File(bodyByte io.Reader, fileName string) {
  output, err := _client.PutObject(context.TODO(), &s3.PutObjectInput{
    Bucket: aws.String(_s3Config.Bucket),
    Key:    aws.String("shopline_ql/" + fileName),
    Body:   bodyByte,
  })
}

在 BigQuery 中创建项目、数据集和表

创建项目

  1. 在 Google Cloud 控制台点击 “创建项目”
  2. 输入项目名称(如:shopline-ql)
  3. 选择组织
  4. 点击创建

创建数据集

  1. 进入 BigQuery Studio
  2. 选择项目,点击 “…” → “创建数据集”
  3. 输入数据集 ID(如:shopline_ql)
  4. 选择位置类型(区域或多区域)
  5. 点击创建数据集

创建表

使用以下 Schema 创建 orders 表:

[
  {"name": "order_seq", "type": "STRING", "mode": "REQUIRED"},
  {"name": "region", "type": "STRING", "mode": "NULLABLE"},
  {"name": "province", "type": "STRING", "mode": "NULLABLE"},
  {"name": "city", "type": "STRING", "mode": "NULLABLE"},
  {"name": "sales_channel", "type": "STRING", "mode": "NULLABLE"},
  {"name": "order_quantity", "type": "INTEGER", "mode": "NULLABLE"},
  {"name": "refunds", "type": "INTEGER", "mode": "NULLABLE"},
  {"name": "total_sales", "type": "INTEGER", "mode": "NULLABLE"},
  {"name": "date_time", "type": "DATETIME", "mode": "REQUIRED"}
]

设置 date_time 字段为分区列,分区粒度为小时。

定时任务配置

使用 BigQuery Data Transfer Service 定时从 S3 加载数据:

  1. 进入 BigQuery Studio → Data Transfers
  2. 选择 Source: Amazon S3
  3. 配置传输任务:
    • 显示名称:SHOPLINE QL Schedule
    • 重复频率:每 24 小时
    • 数据集:shopline_ql
    • 目标表:orders
    • S3 URI:s3://your-bucket/shopline_ql/
    • Access Key ID 和 Secret Access Key
    • 文件格式:CSV
    • 写入模式:WRITE_APPEND(追加)或 WRITE_TRUNCATE(覆盖)

配置完成后,系统会定时从 S3 加载前一天的数据到 BigQuery,然后你就可以在 BigQuery 中执行查询分析了。