0

我正在尝试比较我的 PostgreSQL 数据仓库和新创建的 Hive 数据仓库上的相同功能,该数据仓库在具有相同数据和相同表结构的同一个盒子上。我试图了解 Hive 的好处,但是......尽管数据加载到 PostgreSQL 中的运行速度要慢 3 倍 - PostgreSQL 上的索引创建/重建速度要快 20 倍,但不需要每次都重建索引蜂巢。我的问题是:我在 Hive 配置中缺少什么?

我的设置是: CREATE TABLE mytable (aa int, bb string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION '/data/spaces/hadoop/hadoopfs';

LOAD DATA LOCAL INPATH '/data/Informix94/spaces/postgres/myfile_big' OVERWRITE INTO TABLE mytable;

CREATE INDEX mytable_indx ON TABLE mytable(aa) AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' WITH DEFERRED REBUILD LOCATION '/data/spaces/hadoop/hadoopfs';

设置 hive.optimize.autoindex=true; 设置 hive.optimize.index.filter=true;

改变索引 mytable_indx ON mytable 重建;

我的 Box 是一个 3 克内存的虚拟机,上面运行着 PostgreSQL,占用了大约 1 克内存。他充当元数据存储。我正在使用 CentOS、Hadoop、Hive 的最新稳定版本,并且没有更改 Hive 默认设置,除了 matadata 存储位置和统计信息禁用。

结果:索引重建在 260.000.000 行上需要 4798 秒,在 5.000.000 行上需要 80 秒。

4

1 回答 1

0

只有当您的数据不再适合单台机器时,Hive 才能正常工作。所以你看到的结果是预期的结果。因此,一旦您收集了 TB 或 PB 的数据,您就会对 Hive 感到更加满意。在您描述的用例中,PostgreSQL 将是一个更好的匹配。

于 2014-02-05T14:57:22.747 回答