Поддерживает ли Apache Drill несколько запросов одновременно?

Я хочу запустить select Sql Server Query за один раз. Я использую Drill во встроенном режиме.

select * from <storagePluginName1>.<schemaName>.<tableName>;

select * from <storagePluginName2>.<schemaName>.<tableName>;

Пример:-

select * from SqlServer.dbo.`Category`;
select * from sqldemo.dbo.`Attributes`;

Поддерживает ли Apache Drill несколько запросов одновременно или нет.??? Если да, то как.??


person Naveen D    schedule 25.03.2016    source источник
comment
Нет, вы не можете запускать несколько запросов из Drill. Я тестировал с помощью Drill-Shell, веб-интерфейса, Rest API, я сделал исключение.   -  person Dev    schedule 28.03.2016
comment
какое исключение вы получаете? может быть сложно выполнять несколько запросов параллельно из Sqlline, но вы определенно можете запускать запросы параллельно из веб-интерфейса или с помощью драйвера JDBC.   -  person adeneche    schedule 30.03.2016
comment
@adeneche что это за трюк... :)   -  person Dev    schedule 31.03.2016
comment
@devツ ты имеешь в виду из sqlline? если Drill работает в распределенном режиме (а не во встроенном режиме), то вы можете запустить несколько экземпляров sqlline, подключенных к кластеру Drill, тогда каждый экземпляр Sqlline сможет отправлять запросы независимо от других запущенных экземпляров.   -  person adeneche    schedule 31.03.2016
comment
@adeneche да, мы можем сделать это в распределенном режиме. Я написал в контексте встроенного режима. OP использует Drill во встроенном режиме (не упоминается в вопросе, но у меня есть контекст из его старых вопросов)   -  person Dev    schedule 31.03.2016
comment
я использую дрель во встроенном режиме. Можно ли запустить несколько запросов во встроенном режиме?   -  person Naveen D    schedule 31.03.2016
comment
@devツ на самом деле вы можете сделать это даже во встроенном режиме, я только что попробовал: P отправил ответ, объясняющий, как это сделать сразу   -  person adeneche    schedule 31.03.2016
comment
@NaveenD, можете ли вы отредактировать вопрос, чтобы было ясно, что вы работаете во встроенном режиме? это поможет будущим читателям. Спасибо   -  person adeneche    schedule 31.03.2016


Ответы (2)


Итак, вы работаете во встроенном режиме и хотите параллельно выполнять несколько запросов из sqlline. Вот как это сделать:

  • после того, как вы запустите Drill, сделайте в веб-интерфейсе и проверьте значение, отображаемое для «Порт пользователя», скажем, это: 172.30.1.119:31010
  • вы можете создать другие экземпляры sqlline, подключенные к тому же Drillbit, запустив

    sqlline -u jdbc:drill:drillbit=172.30.1.119:31010

Теперь вы сможете отправлять параллельные запросы из этих экземпляров sqlline. Вы можете проверить в веб-интерфейсе, что запросы действительно выполняются одновременно.

person adeneche    schedule 31.03.2016
comment
Это то же самое, что открывать дополнительные вкладки интерфейса детализации в браузере и запускать несколько запросов. Я думаю, что вопрос OP заключается в том, что, если последовательность важна для нескольких запросов. например. use dfs.tmp; alter session set store.format='csv'; create table dfs.tmp.my_output as select * from cp.`employee.json`; - person nir; 12.07.2016

К сожалению, ответ НЕТ, по крайней мере, из версии, которую я использовал (1.15). Парсер Drill будет рассматривать ';' разделитель как недопустимый символ.

0: jdbc:drill:drillbit=localhost:3001> select 1; select 1;
Error: PARSE ERROR: Encountered ";" at line 1, column 9.
Was expecting one of:
...   
person Ben    schedule 14.04.2020