Vertica HDFS 作为外部表

Posted

技术标签:

【中文标题】Vertica HDFS 作为外部表【英文标题】:Vertica HDFS as external table 【发布时间】:2019-06-04 14:38:00 【问题描述】:

使用 Vertica 和 Parquet 的最佳做法是什么

我的应用架构是: 卡夫卡主题(Avro 数据)。 垂直数据库。 Vertica 的调度程序使用来自 Kafka 的数据并将其摄取到 Vertica 中的托管表中。

假设我只有一个月数据的 Vertica 存储。 据我了解,我可以使用 parquet 在 HDFS 上创建一个外部表,而 Vertica API 也使我能够查询这些表。 这种情况的最佳实践是什么?我可以添加一些 Vertica 调度程序来处理从托管表到外部表的日期(如镶木地板)。 如何在 Vertica 中配置滚动数据(每天 30 天前丢弃) 谢谢。

【问题讨论】:

【参考方案1】:

您可以将外部表与 Parquet 数据一起使用,无论该数据曾经在 Vertica 中还是来自其他来源。对于 Parquet 和 ORC 格式,有一些 extra features,例如谓词下推和利用分区列。

您可以export data in Vertica to Parquet format。您可以导出查询结果,因此您只能选择 30 天前的数据。尽管该部分位于 Vertica 文档的 Hadoop 部分中,但您实际上可以在任何地方编写 Parquet 文件;你根本不需要运行 HDFS。它必须是数据库中所有节点都可以到达的地方,因为外部表会在查询时读取数据。

我不知道在 Vertica 中执行计划导出的方法,但您可以编写一个脚本并在每晚运行它。您可以使用 vsql -f filename.sql 从命令行运行 .sql 脚本。

【讨论】:

以上是关于Vertica HDFS 作为外部表的主要内容,如果未能解决你的问题,请参考以下文章

hive外部表

如何使用greenplum外部表访问hadoop hdfs

将数据从 HDFS 复制到 Hive 中的外部表时出错

hive外部表分区

Clickhouse外部储存表引擎(HDFSMySQLKafka)

在存储在 hdfs 中的 orc 文件上创建外部表后,select * 返回时间戳的空值