集成 Vertica 与 Hadoop 的 MapR 发行版
MapR 是 MapR Technologies 推出的一款 Apache Hadoop 发行版,它用自身的功能扩展了标准 Hadoop 组件。Vertica 可以通过以下方式与 MapR 集成:
-
您可以通过 NFS 挂载点从 MapR 读取数据。将 MapR 文件系统挂载为 NFS 挂载点后,您可以使用 CREATE EXTERNAL TABLE AS COPY 或 COPY 来访问数据,就像它在本地文件系统上一样。此选项为读取数据提供了最佳性能。
-
您可以使用 HCatalog 连接器来读取 Hive 数据。出于性能原因,请勿在 MapR 中将 HCatalog 连接器与 ORC 或 Parquet 数据一起使用。相反,应将 MapR 文件系统挂载为 NFS 挂载点并在不使用 Hive 架构的情况下创建外部表。有关读取 Hive 数据的详细信息,请参阅使用 HCatalog 连接器。
-
您可以使用原生 Vertica 格式 (ROS) 创建存储位置以将数据存储在 MapR 中。将 MapR 文件系统挂载为 NFS 挂载点,然后使用 CREATE LOCATION...ALL NODES SHARED 创建存储位置。(CREATE LOCATION 通常不支持 NFS 挂载点,但在 MapR 中支持它们。)
注意
如果您创建 Vertica 数据库并将其初始存储位置放在 MapR 上,Vertica 会为 DATA 和 TEMP 使用指定存储位置。Vertica 不支持 MapR 上的 TEMP 存储位置,因此在创建位置后,您必须对其进行更改以仅存储 DATA 文件。请参阅更改位置用途。确保您在 Linux 文件系统上有一个 TEMP 位置。
Hadoop 的其他 Vertica 集成不适用于 MapR。
有关将 MapR 文件系统挂载为 NFS 挂载点的信息,请参阅 MapR 网站上的 Accessing Data with NFS(使用 NFS 访问数据)和 Configuring Vertica Analytics Platform with MapR(使用 MapR 配置 Vertica Analytics Platform)。特别是,您必须配置 MapR 才能将 Vertica 添加为 MapR 服务。
示例
在以下示例中,MapR 文件系统已挂载为 /mapr。
以下语句从 ORC 数据创建外部表:
=> CREATE EXTERNAL TABLE t (a1 INT, a2 VARCHAR(20))
AS COPY FROM '/mapr/data/file.orc' ORC;
以下语句从 Parquet 数据创建外部表并利用分区修剪(请参阅分区文件路径):
=> CREATE EXTERNAL TABLE t2 (id int, name varchar(50), created date, region varchar(50))
AS COPY FROM '/mapr/*/*/*' PARTITION COLUMNS created, region PARQUET();
以下语句将 ORC 数据从 MapR 加载到 Vertica:
=> COPY t FROM '/mapr/data/*.orc' ON ANY NODE ORC;
以下语句在 MapR 文件系统中创建存储位置来保存 ROS 数据:
=> CREATE LOCATION '/mapr/my.cluster.com/data' SHARED USAGE 'DATA' LABEL 'maprfs';
=> SELECT ALTER_LOCATION_USE('/mapr/my.cluster.com/data', '', 'DATA');