如何使用 AWS Glue Crawler 读取 PostgreSQL 表分区?

Posted

技术标签:

【中文标题】如何使用 AWS Glue Crawler 读取 PostgreSQL 表分区?【英文标题】:How can I read PostgreSQL Table partitions with AWS Glue Crawler? 【发布时间】:2020-05-27 20:12:18 【问题描述】:

在 Postgresql 11 中创建分区时,我的爬虫无法正确读取 RDS 分区表。

分区DDL的例子是

表:

CREATE TABLE book (
    ID int8 NULL,
    effectivetodate date NULL,
) PARTITION BY RANGE(effectivetodate);

分区:

CREATE TABLE book_historical PARTITION OF portfolio for VALUES FROM ('1000-12-31') TO ('2019-12-31');
CREATE TABLE book_current PARTITION OF portfolio DEFAULT;

观察结果是两张表:

book_historical book_current

由爬虫创建,但主表

不存在。

【问题讨论】:

欢迎来到 ***。请为您的问题使用正确的格式,以便其他人能够理解并回答它。我建议你阅读询问guidelines of *** @Abhishek 看起来更好吗? 是的!很快就会有人回答你的问题... 【参考方案1】:

不使用范围,只需传递列名进行分区,爬虫将根据您的列动态分区

CREATE TABLE book (
    ID int8 NULL,
    effectivetodate date NULL,
) PARTITION BY effectivetodate;

【讨论】:

感谢您的回答,舒巴姆。我在 Postgresql 11.6 中工作,直接按字段分区不起作用。我们可以按列表、范围等进行分区。 我以为你在说 Glue 爬虫 是的,我说的是爬虫,但是我们需要在PostgreSQL中创建一个分区,然后爬虫才能爬取分区。所以在我的代码中,我使用日期范围对表进行分区。爬虫无法爬取主表,但能够将分区表作为独立表读取。 有一个数据分组识别分区的选项,你选择了吗?

以上是关于如何使用 AWS Glue Crawler 读取 PostgreSQL 表分区?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Glue Crawler无法提取CSV标头

AWS Glue Crawler 为每个分区添加表?

AWS Glue Crawler 将 json 文件分类为 UNKNOWN

通过 AWS Glue Crawler 识别并存储在数据目录中的表的异常

将文件上传到 S3 存储桶后,AWS Glue Crawler 的基于事件的触发器?

AWS Athena 从 S3 的 GLUE Crawler 输入 csv 创建的表中返回零记录