【问题标题】:Using Cron to export data from mysql database to CSV, then getting all it's data to bigquery table使用 Cron 将数据从 mysql 数据库导出到 CSV,然后将所有数据获取到 bigquery 表
【发布时间】:2019-02-17 01:32:59
【问题描述】:

使用 Cron 将数据从 mysql 数据库导出到 CSV,然后读取此 csv 文件并使用 bigquery 将其所有数据获取到谷歌云

大家好,我有一个名为 db_test 的 Mysql 数据库,其中有一个名为 members_test(id, name) 的表。我正在开发 Linux Ubunto 操作系统。我正在尝试使用 cronjob 在午夜从该表中获取数据到 CSV 文件中。另外我想让 bigquery 以某种方式读取这个 csv 文件并获取它的数据并将它们放入保存在谷歌云平台上的名为 cloud_members_tab 的表中。

如何做到这一点?

【问题讨论】:

    标签: mysql csv google-cloud-platform google-bigquery


    【解决方案1】:
    1. 确保正确生成 CSV(不要依赖 MySQL CSV 导出)
    2. 安装gsutilbq 命令行实用程序
    3. 将 CSV 上传到 Google 云存储

    使用如下的 shell 命令:

    gsutil cp -j -o="GSUtil:parallel_composite_upload_threshold=150M" /tmp/export.csv gs://bucket/export.csv

    1. 使用bq load

    bq 加载 --source_format=CSV --field_delimiter="," --null_marker="\N" --allow_quoted_newlines --autodetect --source_format=CSV dataset.tablename gs://bucket/export.csv

    【讨论】:

    • 我已经写了这个 .sh 文件:#!/bin/bash dbUser=root dbName=db_test csv_file="/tmp/members.csv" if [ -f $csv_file ] then rm $csv_file fi mysql --user=$dbUser --database=$dbName --execute="select * into outfile '$csv_file' 由 ',' 结束的字段,由 '"' 包围的行以 '\n' 结尾;"
    • 在你的回答中你提到了数据集和表格,但没有提到我的谷歌云帐户的用户名或密码
    • 请不要依赖 mySQL CSV 输出,因为它不符合标准,所以它不起作用。你需要为它写一个编程脚本。
    • 我的谷歌驱动器中也有一个 csv 文件,我正在尝试使用云 shell 命令将它带到谷歌云存储桶中。你能帮忙吗
    • @HassanHAJJAR 你能打开新帖子,因为这是一个不同的问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2019-12-14
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多