SnowflakeConnector: An R6 Snowflake ODBC helper
SnowflakeConnector.RdSnowflakeConnector encapsulates a Snowflake ODBC connection with:
Safe SQL interpolation via
glue::glue_sql()bound to the connectionQuery history tracking (
run_query_history)data.table::setattrlineage under"snowflake-sources"Simple transactions (
$transaction_begin/commit/rollback)Simple writes (
$write_data)
Credentials are expected to be provided by your DSN and/or the constructor
arguments (uid, pwd, etc.). This package does not read YAML files.
Public fields
- connection
The live DBI ODBC connection object.
- run_query_history
data.tablewith columnsqueryandresult.
Public fields
connectionThe live DBI ODBC connection object.
run_query_historydata.tablewith columnsqueryandresult.
Methods
Method new()
Construct a new connector (opens a connection).
Usage
SnowflakeConnector$new(
dsn,
uid = NULL,
pwd = NULL,
database = NULL,
schema = NULL,
role = NULL,
warehouse = NULL,
timezone = Sys.timezone(),
timezone_out = Sys.timezone(),
...
)Arguments
dsnODBC DSN name.
uidOptional user id (overrides DSN).
pwdOptional password (overrides DSN).
databaseOptional default database.
schemaOptional default schema.
roleOptional default role.
warehouseOptional default warehouse.
timezoneServer timezone for the connection. Defaults to
Sys.timezone().timezone_outTimezone for datetimes returned to R. Defaults to
Sys.timezone()....Additional arguments passed to
DBI::dbConnect().
Method run_query()
Execute a SELECT and return a data.table (with lineage attribute).
Usage
SnowflakeConnector$run_query(
SQL,
literal = FALSE,
glue_envir = parent.frame(1L)
)Method write_data()
Write a data.frame / data.table into Snowflake.
Arguments
tableTarget table name (
character) orDBI::Id.valueData to write (
data.frame/data.table)....Passed to
DBI::dbWriteTable()(e.g.,append = TRUE,overwrite = TRUE).