sanchezzzhak / kak-clickhouse

Yii2 ext. ClickHouse
69 stars 43 forks source link

Как добавить http-настройку КХ в запросе? #43

Closed digitalist closed 5 years ago

digitalist commented 5 years ago

хочется сделать что-то в духе http://localhost:8123/?max_query_size=100000000&query=SELECT%201 (из https://github.com/yandex/ClickHouse/issues/2529#issuecomment-400288969)

можно ли как-то отправлять подобные дополнительные параметры при запросе из kak-clickhouse?

sanchezzzhak commented 5 years ago

Привет, глобально для всех запросов через конфиг:

return [ 
  'class' => 'kak\clickhouse\Connection',
   'dsn' => 'localhost',
   'database' => 'default',
   'port' => 8123,
   'username' => '{username}',
   'password' => '{password}',
   'enableSchemaCache' => true,
   'schemaCache' => 'cache',
   'schemaCacheDuration' => 86400,
    'options' => [
       'log_queries' => 1,                           // профилирование запросов, результат смотреть в system.log_queries
       'max_query_size' => 100000000
    ]
];

Также для одного запроса можно через, createCommand

добавить к текущим настройкам которые в конфиге + свои параметры

$command = $clickhouse->createCommand($sql)->addOptions([
   'max_query_size' => 100000000
]);     
$result  = $command->queryAll();

устанавливает только указанные параметры, игнорируя конфиг

$command = $clickhouse->createCommand($sql)->options([
   'max_query_size' => 100000000
]);     
$result  = $command->queryAll();

Для AR/Query методы options, addOptions отсутствует, но там должен работать глобальный конфиг.