用户定义的解析器
解析器将接收字节流,并将相应的元组序列传递到 Vertica 加载进程。您可以使用用户定义的解析器函数解析以下数据:
-
Vertica 内置解析器无法理解其格式的数据。
-
所需的控制比内置解析器提供的控制更精确的数据。
例如,您可以使用特定的 CSV 库加载 CSV 文件。请参阅 Vertica SDK 查看两个 CSV 示例。
COPY 支持单个用户定义的解析器,您可以将其与用户定义的源以及零个或多个用户定义的筛选器实例一起使用。如果您实施 UDParser 类,还必须实施相应的 ParserFactory。
有时可以通过添加块分割器来提高解析器的性能。块分割器可拆分输入并使用多个线程来解析输入。块分割器仅在 C++ API 中可用。有关详细信息,请参阅“协作解析”和“UDChunker 类”。在某些特殊情况下,您可以通过使用*分摊加载*进一步提高性能,当使用此方法时,输入由多个 Vertica 节点进行解析。