如何使用Node.js中的Cloud Functions在CloudSQL中加载CSV数据?

时间:2019-02-11 13:50:31

标签: node.js google-cloud-functions google-cloud-sql

我正在特定存储桶中的CSV文件中接收数据。我必须将该数据加载到相应的CloudSQL表中。我对此有以下疑问:

  1. 我是否可以选择在我的云功能代码中调用任何api或gcloud命令或CURL命令,以CSV作为输入并在DB中执行插入?
  2. 如果无法使用上述选项,那么是否存在任何性能优化的方法可用于准备查询和在CloudSQL中触发查询,因为数据量很大,我认为加载该数据将花费很多时间。

1 个答案:

答案 0 :(得分:0)

documentation on importing a CSV into CloudSQL包含以下curl调用示例:

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"importContext":
                  {"fileType": "CSV",
                   "uri": "gs://<BUCKET_NAME>/<PATH_TO_DUMP_FILE>",
                   "database": "<DATABASE_NAME>",
                   "csvImportOptions":
                        {"table": "<TABLE_NAME>"}}}' \
   -X POST \
   https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/import

一些重要的事情要注意: