【问题标题】:How to export data from table as CSV from Greenplum database to AWS s3 bucket如何将表中的数据作为 CSV 从 Greenplum 数据库导出到 AWS s3 存储桶
【发布时间】:2018-08-30 00:09:19
【问题描述】:

我在表格中有数据

select * from my_table

它包含10k 观察。如何将表中的数据作为 CSV 导出到s3 bucket。 (我不想将数据导出到我的本地机器然后推送到s3)。

【问题讨论】:

标签: amazon-web-services amazon-s3 greenplum


【解决方案1】:

请,请,请停止使用 PostgreSQL 和 Greenplum 标记您的问题。如果您使用的是 Greenplum 与 PostgreSQL,那么您的问题的答案会非常不同。我怎么强调都不过分。

如果您使用的是 Greenplum,您应该使用外部表中的 S3 协议来读取和写入数据到 S3。

所以你的桌子:

select * from my_table;

还有你的外部表:

CREATE EXTERNAL TABLE ext_my_table (LIKE my_table) 
LOCATION ('s3://s3_endpoint/bucket_name')
FORMAT 'TEXT' (DELIMITER '|' NULL AS '' ESCAPE AS E'\\');

然后写入您的 s3 存储桶:

INSERT INTO ext_my_table SELECT * FROM my_table;

您需要在 Greenplum 集群上进行一些配置,以便您也拥有一个 s3 配置文件。这也适用于每个段目录。

gpseg_data_dir/gpseg-prefixN/s3/s3.conf

文件内容示例:

[default]
secret = "secret"
accessid = "user access id"
threadnum = 3
chunksize = 67108864

更多关于 S3 的信息可以在这里找到:http://gpdb.docs.pivotal.io/5100/admin_guide/external/g-s3-protocol.html#amazon-emr__s3_config_file

【讨论】:

    【解决方案2】:

    我建议首先使用 WINSCP 或文件传输将数据加载到您的主节点。 然后将此文件从您的主节点移动到 S3 存储。

    因为,将数据从 Master 节点移动到 S3 存储会利用 Amazon 的带宽,这将比我们用于将文件从本地机器传输到 S3 的本地连接带宽快得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-11
      • 2022-12-20
      相关资源
      最近更新 更多