Vertica - 导出到 Parquet 的最佳实践是什么

Vertica - What is the best practice for exporting to Parquet

我有一个 Vertica 数据库,应该用于我的 "Hot" 数据。 我发现我可以将我的 "Cold" 数据保存为 HDFS 上的镶木地板文件作为外部 table,我也成功地将我的数据导出到镶木地板文件。 关于这个过程我有几个问题: * 导出到镶木地板 - 如何经常做?我需要 运行 将查询作为 cron 选项卡吗?
* 当我创建一个外部 table 时,Vertica 是否知道将它 "connect" 到我的主 table?我的意思是,当 运行ning 任何查询时,Verica 也会在与存储 "hot" 数据的主要 table 相关的外部 table 中搜索。

如果您想定期导出,则需要使用外部调度程序(如 cron)。您可以导出到 HDFS、NFS 或 S3。

如果您在 Vertica 中有一些数据(您的热数据),在外部 table 中有其他(冷)数据,那么它们是两个独立的 table。您可以一起查询它们(select... 从热、冷),但您的外部 Parquet 数据不是 "in" 保存 Vertica(ROS,热)数据的 table。

当您查询外部 table 时,Vertica 会从外部位置读取相关数据。从某种意义上说,它是在每个查询上使用 CREATE EXTERNAL TABLE 表达式的 FROM 子句进行轻量级加载。 (Parquet 柱状格式和谓词下推等优化意味着这并不痛苦。)这意味着如果您的 FROM 子句是一个 glob(如 hdfs:///data/*/*.parquet),如果您导出更多数据,则不需要更新 table 定义——它就是有效。

请注意,每次导出都需要到一个新目录中;如果你把它们都放在同一个父目录下,那么你可以像我的例子一样使用 glob。参见 the documentation