Class: UmbrellioUtils::ClickHouse::Backends::Legacy
- Inherits:
-
Base
- Object
- Base
- UmbrellioUtils::ClickHouse::Backends::Legacy
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
-
#admin_execute(sql) ⇒ Object
Legacy HTTP driver can issue DDL directly; no admin side-channel needed.
-
#config ⇒ Object
-
#describe_table(table_name, db_name: self.db_name) ⇒ Object
-
#execute(sql, host: nil, **opts) ⇒ Object
-
#insert(table_name, db_name: self.db_name, rows: []) ⇒ Object
-
#logger ⇒ Object
-
#query(dataset, host: nil, **opts) ⇒ Object
-
#query_each(dataset, host: nil) ⇒ Object
-
#query_value(dataset, host: nil, **opts) ⇒ Object
-
#server_version ⇒ Object
-
#tables ⇒ Object
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
|
#config ⇒ Object
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
|
#logger ⇒ Object
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_version ⇒ Object
43
44
45
|
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 43
def server_version
select_value("SELECT version()").to_f
end
|
#tables ⇒ Object
47
48
49
|
# File 'lib/umbrellio_utils/click_house/backends/legacy.rb', line 47
def tables
client.tables
end
|