Cómo optimizar el escaneo de 1 archivo / tabla enorme en Hive para confirmar / verificar si el punto lat largo está contenido en una forma de geometría wkt

Actualmente estoy tratando de asociar cada ping largo lat de un dispositivo a su código postal.

He desnormalizado los datos de ping del dispositivo de longitud larga y he creado una tabla de unión de productos cruzados / producto cartesiano en la que cada fila tiene el ST_Point (largo, lat), geometry_shape_of_ZIP y el código postal asociado para esa geometría. Para fines de prueba, tengo alrededor de 45 millones de filas en la tabla y aumentará la producción a aproximadamente mil millones cada día.

Aunque los datos están aplanados y no hay condiciones de unión, la consulta tarda aproximadamente 2 horas en completarse. ¿Hay alguna forma más rápida de calcular consultas espaciales? O cómo puedo optimizar la siguiente consulta.

Inline es uno de los pasos de optimización que ya he realizado. Usando las optimizaciones, todas las demás operaciones se realizan en un máximo de 5 minutos, excepto este paso. Estoy usando aws cluster 2 mater nodos y 5 nodos de datos.

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 es la función de esri (ref:https://github.com/Esri/spatial-framework-for-hadoop/wiki/UDF-Documentation#relationship-tests )

Cualquier ayuda es muy apreciada.

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta