Class: ChConnect::Connection

Inherits:
Object
  • Object
show all
Defined in:
lib/ch_connect/connection.rb

Overview

A single connection to ClickHouse server.

Examples:

conn = ChConnect::Connection.new
response = conn.query("SELECT * FROM users WHERE id = 1")

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = ChConnect.config) ⇒ Connection

Creates a new connection.

Parameters:

  • config (Config) (defaults to: ChConnect.config)

    configuration instance (defaults to global config)



16
17
18
19
# File 'lib/ch_connect/connection.rb', line 16

def initialize(config = ChConnect.config)
  @config = config
  @transport = HttpTransport.new(config)
end

Instance Attribute Details

#configConfig (readonly)

Returns the configuration used by this connection.

Returns:

  • (Config)

    the configuration used by this connection



11
12
13
# File 'lib/ch_connect/connection.rb', line 11

def config
  @config
end

Instance Method Details

#query(sql, options = {}) ⇒ Response

Executes a SQL query and returns the response.

Parameters:

  • sql (String)

    SQL query to execute

  • options (Hash) (defaults to: {})

    query options

Options Hash (options):

  • :params (Hash)

    query parameters

Returns:

  • (Response)

    query response with rows, columns, and metadata

Raises:



28
29
30
31
32
33
# File 'lib/ch_connect/connection.rb', line 28

def query(sql, options = {})
  @config.instrumenter.instrument("query.clickhouse", {sql: sql}) do
    result = @transport.execute(sql, options)
    NativeFormatParser.new(result.body).parse.with(summary: result.summary)
  end
end