Huginn.Clickhouse.Query (Huginn v0.4.0)

View Source

Builds QueryInfo messages for ClickHouse gRPC requests.

Summary

Functions

Builds a QueryInfo struct for a SQL query.

Builds a cancel QueryInfo to stop a running query.

Builds a continuation QueryInfo for streaming input.

Builds an external table definition for use with queries.

Builds a QueryInfo struct for an INSERT query with input data.

Merges authentication options into query options.

Types

query_opts()

@type query_opts() :: [
  database: String.t(),
  user_name: String.t(),
  password: String.t(),
  jwt: String.t(),
  format: String.t(),
  settings: map(),
  query_id: String.t(),
  session_id: String.t(),
  session_timeout: non_neg_integer(),
  compression: String.t(),
  send_output_columns: boolean()
]

Functions

build(sql, opts \\ [])

@spec build(String.t(), query_opts()) :: struct()

Builds a QueryInfo struct for a SQL query.

Options

  • :database - Database to use for the query
  • :user_name - Username for authentication
  • :password - Password for authentication
  • :jwt - JWT token for authentication
  • :format - Output format (default: "TabSeparated")
  • :settings - Map of ClickHouse settings
  • :query_id - Custom query ID for tracking
  • :session_id - Session ID for stateful queries
  • :session_timeout - Session timeout in seconds
  • :compression - Output compression type
  • :send_output_columns - Include column metadata in response

build_cancel()

@spec build_cancel() :: struct()

Builds a cancel QueryInfo to stop a running query.

build_continuation(data, opts \\ [])

@spec build_continuation(
  binary(),
  keyword()
) :: struct()

Builds a continuation QueryInfo for streaming input.

Used with ExecuteQueryWithStreamInput and ExecuteQueryWithStreamIO methods.

build_external_table(name, columns, data, opts \\ [])

@spec build_external_table(
  String.t(),
  [{String.t(), String.t()}],
  binary(),
  keyword()
) :: struct()

Builds an external table definition for use with queries.

Options

  • :format - Data format (default: "TabSeparated")
  • :compression - Compression type of data
  • :settings - Additional settings for the table

build_insert(sql, data, opts \\ [])

@spec build_insert(String.t(), binary(), keyword()) :: struct()

Builds a QueryInfo struct for an INSERT query with input data.

Options

Same as build/2 plus:

  • :input_format - Format of input data (default: "TabSeparated")
  • :input_compression - Compression type of input data

with_auth(opts, config)

@spec with_auth(
  keyword(),
  Huginn.Clickhouse.Config.t()
) :: keyword()

Merges authentication options into query options.