Является ли использование поля отметки времени с concat (to_date) наиболее эффективным способом запроса в предыдущий день в Impala? - PullRequest
0 голосов
/ 21 января 2019

Я запрашиваю данные из HDFS с использованием Impala в сценарии Python с использованием библиотеки Python Impyla. Конкретные данные являются прокси-данными, и их множество. У меня есть скрипт, который запускается ежедневно, чтобы вытащить предыдущий день и запускает статистику. В настоящее время я использую поле devicereceipttime для этого запроса, который хранится как метка времени.

from impala.dbapi import connect
from impala.util import as_pandas
import pandas as pd

#Pull desired features from the proxy_realtime_p table
cursor.execute('select request, count(*) as count \
from default.proxy_realtime_p \
where devicereceipttime BETWEEN concat(to_date(now() - interval 1 days), " 00:00:00") and concat(to_date(now() - interval 1 days), " 23:59:59") \
group by request \
order by count desc')

Этот запрос занимает немного времени и хотел бы ускорить его, если это возможно. Является ли мой запрос наиболее эффективным из приведенных ниже полей?

devicereceipttime (timestamp)
year (int)
month (int)
day (int)
hour (int)
minute (int)
seconds (int)
...