Hadoop 如何优化配置单元中1个大型文件/表格的扫描,以确认/检查wkt几何图形中是否包含lat long点

Hadoop 如何优化配置单元中1个大型文件/表格的扫描,以确认/检查wkt几何图形中是否包含lat long点,hadoop,hive,geospatial,spatial,hiveql,Hadoop,Hive,Geospatial,Spatial,Hiveql,我目前正在尝试将设备上的每个lat-long ping与其邮政编码关联起来 我已经对lat-long设备ping数据进行了非标准化,并创建了一个跨积/笛卡尔积联接表,其中每一行都有ST_点(long,lat)、几何体、ZIP的形状以及该几何体的相关邮政编码。出于测试目的,我在表中有大约4500万行,它的产量将增加到每天约10亿行 即使数据被展平并且没有连接条件,查询也需要大约2小时才能完成。有没有更快的方法来计算空间查询?或者如何优化以下查询 内联是我已经执行的一些优化步骤。使用优化,除了这一步

我目前正在尝试将设备上的每个lat-long ping与其邮政编码关联起来

我已经对lat-long设备ping数据进行了非标准化,并创建了一个跨积/笛卡尔积联接表,其中每一行都有ST_点(long,lat)、几何体、ZIP的形状以及该几何体的相关邮政编码。出于测试目的,我在表中有大约4500万行,它的产量将增加到每天约10亿行

即使数据被展平并且没有连接条件,查询也需要大约2小时才能完成。有没有更快的方法来计算空间查询?或者如何优化以下查询

内联是我已经执行的一些优化步骤。使用优化,除了这一步之外,所有其他操作最多可在5分钟内完成。我使用的是aws群集2个主节点和5个数据节点

set hive.vectorized.execution.enabled = true;

set hive.execution.engine=tez;

set hive.enforce.sorting=true;

set hive.cbo.enable=true;

set hive.compute.query.using.stats=true;

set hive.stats.fetch.column.stats=true;

set hive.stats.fetch.partition.stats=true;

analyze table tele_us_zipmatch compute statistics for columns;

CREATE TABLE zipcheck (

`long4` double,

`lat4` double,

state_name string,

country_code string,

country_name string, region string,

zip int,

countyname string) PARTITIONED by (state_id string)

STORED AS ORC TBLPROPERTIES ("orc.compress" = "SNAPPY",

'orc.create.index'='true',

'orc.bloom.filter.columns'='');

INSERT OVERWRITE TABLE zipcheck PARTITION(state_id)

select long4, lat4, state_name, country_code, country_name, region, zip, countyname, state_id from tele_us_zipmatch

where ST_Contains(wkt_shape,zip_point)=TRUE;
ST_Contains是来自esri的函数(参考:)

非常感谢您的帮助


谢谢。

如果邮政编码数据集可以放入内存,请尝试一个自定义Map Reduce应用程序,通过调整


[collaborator]

如果邮政编码数据集可以放入内存,请尝试一个自定义Map Reduce应用程序,通过调整


[collaborator]

对于您或您的组织,是否可以为自定义map reduce应用程序编写自定义Java代码?我们还没有在mapreduce中尝试过。然而,当我们在informatica中编写java转换时,没有什么可以阻止我们。如果它加快了流程,我们可以利用该选项。对于您或您的组织来说,它是为自定义map reduce应用程序编写自定义Java代码的选项吗?我们还没有使用mapreduce尝试过。然而,当我们在informatica中编写java转换时,没有什么可以阻止我们。如果它能加快进程,我们可以利用这个选项。谢谢你给我指点存储库。我会尽快运行此程序,并将结果反馈给您。使用四叉树索引非常有效!在一个小测试集群中,我能够在大约6分钟内处理超过4000万条条目。它花了一些时间来读取wkt并处理多个多边形,最终它是值得的。我仍然认为代码可以优化。我们以后再做!令人惊讶的MapReduce比所有配置单元优化都快。-谢谢你给我指点存储库。我会尽快运行此程序,并将结果反馈给您。使用四叉树索引非常有效!在一个小测试集群中,我能够在大约6分钟内处理超过4000万条条目。它花了一些时间来读取wkt并处理多个多边形,最终它是值得的。我仍然认为代码可以优化。我们以后再做!令人惊讶的MapReduce比所有配置单元优化都快。-谢谢