1

我有一个 Amazon Elastic Map Reduce (EMR) 作业,我想用它来处理从 Amazon Aurora MySQL 表中卸载的数据,就像我从 Amazon Redshift 中处理的一样。也就是说,运行如下查询:

unload ('select * from whatever where week = \'2011/11/21\'') to 's3://somebucket' credentials 'blah'

然后,EMR 作业处理转储数据中的行并将其写回 S3。

这可能吗?如何?

4

3 回答 3

2

现在似乎支持此功能。该命令称为SELECT INTO OUTFILE S3.

于 2017-06-30T11:02:17.033 回答
0

在最初编写此答案后(第一次的答案是“否”),Aurora 添加了此功能。

您现在可以使用SELECT INTO OUTFILE S3SQL 语句从 Amazon Aurora 数据库集群中查询数据,并将其直接保存到 Amazon S3 存储桶中的文本文件中。这意味着您不再需要将数据带到 SQL 客户端然后将其从客户端复制到 Amazon S3 的两步过程。这是一种有选择地将数据导出到 Amazon Redshift 或任何其他应用程序的简单方法。

https://aws.amazon.com/about-aws/whats-new/2017/06/amazon-aurora-can-export-data-into-amazon-s3/

Aurora for MySQL 不支持此功能。

如您所知,在传统服务器上,MySQL 有两个互补的功能,LOAD DATA INFILESELECT INTO OUTFILE,它们与本地(到服务器)文件一起工作。2016 年末,Aurora宣布推出S3 模拟LOAD DATA INFILE——LOAD DATA FROM S3但至少目前还没有相反的功能。

于 2016-12-14T02:18:15.823 回答
0

您可以使用 SELECT INTO OUTFILE S3 语句从 Amazon Aurora MySQL 数据库集群中查询数据,并将其直接保存到存储在 Amazon S3 存储桶中的文本文件中。这个功能是很久以前添加的。

例子:

SELECT * FROM employees INTO OUTFILE S3 's3-us-west-2://aurora-select-into-s3-pdx/sample_employee_data' 
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

这里是支持的所有选项:

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
        [PARTITION partition_list]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
        [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
         [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [PROCEDURE procedure_name(argument_list)]
INTO OUTFILE S3 's3_uri'
[CHARACTER SET charset_name]
    [export_options]
    [MANIFEST {ON | OFF}]
    [OVERWRITE {ON | OFF}]

export_options:
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]

您可以在此处的 AWS 文档中找到它:https ://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Integrating.SaveIntoS3.html

于 2018-01-29T07:26:13.663 回答