У вас здесь две проблемы:
TIME()
для извлечения временной части периода времени . С учетом этих двух проблем, вы получите:
select
f.fly_reg,
TIME(f.start_tid) AS st,
f.start_hight
FROM vbsk_dk_02.fab_master_flyvedata f
where TIME(f.start_tid) between '12:00:00' AND '18:00:00'
. В качестве опции, если вам действительно не нужно значение времени в select, вы можете удалить его и просто иметь его в предложении where. Кроме того, вы можете использовать функцию HOUR()
, если это подходит лучше. С этими двумя изменениями ваш запрос упростит:
select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18
, который много опережает:)
Я не знаю, что program.py
делает. Но очень редко можно использовать --pipe
вместе с find
. Поэтому я думаю, что это то, что вам нужно:
find data -type f | parallel -P 70 python program.py > output
При --pipe
вывод из find
должен составлять не менее 70 МБ, чтобы 70 параллельных заданий выполнялись параллельно, поскольку по умолчанию --block-size
равен 1 МБ :
find data -type f | parallel --pipe -P 70 python program.py > output
Если program.py
действительно читает имена файлов на stdin, то вам, вероятно, следует использовать --round-robin
с меньшим --block
:
find data -type f | parallel --pipe --block 1k --round-robin -P 70 python program.py > output
Это будет принимать входные данные из find
и отдайте первый 1 КБайт на первую работу, 70-й КБайт на 70-ю работу и 71-й КБайт на первую работу.