【发布时间】:2019-02-13 19:00:50
【问题描述】:
除了自己流式传输 csv 文件并为每一行数据煞费苦心地执行插入之外,是否可以使用 google cloud sdk 从云函数内部批量导入整个 csv 文件。我知道在 gcp 控制台中,您可以转到导入选项卡,从存储中选择一个文件并导入。但是我怎样才能以编程方式模拟呢?
【问题讨论】:
标签: mysql node.js google-cloud-platform google-cloud-functions etl
除了自己流式传输 csv 文件并为每一行数据煞费苦心地执行插入之外,是否可以使用 google cloud sdk 从云函数内部批量导入整个 csv 文件。我知道在 gcp 控制台中,您可以转到导入选项卡,从存储中选择一个文件并导入。但是我怎样才能以编程方式模拟呢?
【问题讨论】:
标签: mysql node.js google-cloud-platform google-cloud-functions etl
一般来说,必须解析.csv 并从中生成SQL; .csv 中的一行将由一个 INSERT 语句表示。首先,您必须 upload 文件 - 或将其拉入 Cloud Functions 临时存储,例如。 gcs.bucket.file(filePath).download。
那么最简单的可能是使用库,例如。 csv2sql-lite - 有一个很大的缺点,即无法完全控制导入 - 而例如。 csv-parse 将提供更多控制(例如,检查可能的重复项、跳过某些列、导入不同的表等等)。
...以及连接到 Cloud SQL 的命令,请参阅Connecting from Cloud Functions。
【讨论】:
ETL(提取、转换、加载)始终是相同的过程,无论使用何种环境或语言,无论数据来自何处,也无论数据写入何处。