Documentation
¶
Index ¶
- func NewMaterializer(fullRefresh bool) *pipeline.Materializer
- type BasicOperator
- type Client
- func (c *Client) CreateSchemaIfNotExist(ctx context.Context, asset *pipeline.Asset) error
- func (c *Client) GetDatabaseSummary(ctx context.Context) (*ansisql.DBDatabase, error)
- func (c *Client) Ping(ctx context.Context) error
- func (c *Client) RunQueryWithoutResult(ctx context.Context, query *query.Query) error
- func (c *Client) Select(ctx context.Context, query *query.Query) ([][]interface{}, error)
- func (c *Client) SelectWithSchema(ctx context.Context, queryObj *query.Query) (*query.QueryResult, error)
- type Config
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewMaterializer ¶
func NewMaterializer(fullRefresh bool) *pipeline.Materializer
NewMaterializer builds a materializer that renders Dremio (ANSI) SQL.
Types ¶
type BasicOperator ¶
type BasicOperator struct {
// contains filtered or unexported fields
}
func NewBasicOperator ¶
func NewBasicOperator(conn config.ConnectionGetter, extractor query.QueryExtractor, fullRefresh bool, hoister pipeline.DeclareHoister, parser *sqlparser.SQLParser) *BasicOperator
func (BasicOperator) Run ¶
func (o BasicOperator) Run(ctx context.Context, ti scheduler.TaskInstance) error
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) CreateSchemaIfNotExist ¶
CreateSchemaIfNotExist ensures the folder an asset's table lives in exists before the table is created. Dremio rejects CREATE TABLE into a folder that does not exist yet, so we create it first. The folder path is derived from the asset name (see folderPathForAsset) and quoted as a dotted identifier.
func (*Client) GetDatabaseSummary ¶
GetDatabaseSummary introspects the available schemas and tables using the ANSI information_schema, which Dremio exposes.
func (*Client) RunQueryWithoutResult ¶
func (*Client) SelectWithSchema ¶
type Config ¶
type Config struct {
Host string
Port int
Username string
Password string
Token string
Database string
TLS bool
TLSSkipVerify bool
}
Config holds the connection parameters for a Dremio platform.
Dremio is reached over the Arrow Flight SQL wire protocol, which in Go is served by the apache/arrow-adbc Flight SQL driver. Authentication is either username/password (Dremio Software) or a bearer Token / Personal Access Token (Dremio Cloud); the two are mutually exclusive. TLS must be enabled for Dremio Cloud.
func (Config) GetDatabase ¶
func (Config) ToDSN ¶
ToDSN builds a DSN understood by the ADBC Flight SQL database/sql driver. The driver parses the DSN as a ";"-separated list of "key=value" options, where the keys are the standard ADBC option names (uri, username, password, adbc.flight.sql.*).
The driver does not unescape values, so credentials are passed through verbatim; a ";" in a credential would split the DSN into a bogus option and fail to parse. We reject that explicitly rather than corrupt the value. ("=" is safe because the driver splits each option on its first "=" only.)