Class: UmbrellioUtils::ClickHouse::Backends::Legacy

Inherits:
Base
  • Object
show all
Includes:
Memery
Defined in:
lib/umbrellio_utils/click_house/backends/legacy.rb

Overview

Adapter for the umbrellio/click_house gem (HTTP driver).

Constant Summary collapse

SERVER_ERROR =
::ClickHouse::Error

Instance Method Summary collapse

Methods inherited from Base

#count, #create_database, #db_name, #drop_database, #drop_table!, #from, #on_cluster, #optimize_table!, #parse_value, #pg_table_connection, #populate_temp_table!, #truncate_table!, #with_temp_table

Instance Method Details

#admin_execute(sql) ⇒ Object

Legacy HTTP driver can issue DDL directly; no admin side-channel needed. Base#create_database / #drop_database call this.



53
54
55
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 53

def admin_execute(sql)
  client.execute(sql)
end

#configObject



57
58
59
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 57

def config
  client.config
end

#describe_table(table_name, db_name: self.db_name) ⇒ Object



38
39
40
41
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 38

def describe_table(table_name, db_name: self.db_name)
  sql = "DESCRIBE TABLE #{full_table_name(table_name, db_name)} FORMAT JSON"
  log_errors(sql) { select_all(sql).map { |x| Misc::StrictHash[x.symbolize_keys] } }
end

#execute(sql, host: nil, **opts) ⇒ Object



14
15
16
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 14

def execute(sql, host: nil, **opts)
  log_errors(sql) { client(host).execute(sql, params: opts) }
end

#insert(table_name, db_name: self.db_name, rows: []) ⇒ Object



34
35
36
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 34

def insert(table_name, db_name: self.db_name, rows: [])
  client.insert(full_table_name(table_name, db_name), rows, format: "JSONEachRow")
end

#loggerObject



61
62
63
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 61

def logger
  client.config.logger
end

#query(dataset, host: nil, **opts) ⇒ Object



18
19
20
21
22
23
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 18

def query(dataset, host: nil, **opts)
  sql = sql_for(dataset)
  log_errors(sql) do
    select_all(sql, host:, **opts).map { |x| Misc::StrictHash[x.symbolize_keys] }
  end
end

#query_each(dataset, host: nil) ⇒ Object



30
31
32
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 30

def query_each(dataset, host: nil, **, &)
  query(dataset, host:, **).each(&)
end

#query_value(dataset, host: nil, **opts) ⇒ Object



25
26
27
28
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 25

def query_value(dataset, host: nil, **opts)
  sql = sql_for(dataset)
  log_errors(sql) { select_value(sql, host:, **opts) }
end

#server_versionObject



43
44
45
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 43

def server_version
  select_value("SELECT version()").to_f
end

#tablesObject



47
48
49
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 47

def tables
  client.tables
end