snowflake-pool
v1.0.2
Published
Snowflake connection pool
Downloads
881
Maintainers
Readme
snowflake-pool
A Promise-based connection pool for your Snowflake data warehouse.
This is a simple wrapper that enables pooling of Snowflake SDK connections. In addition, this wrapper makes use of the snowflake-promise API which provides a Promise-based API instead of the core callback-based API.
Installation
npm i snowflake-pool
Basic usage
const connectionPool = createSnowflakePool({
account: '<account name>',
username: '<username>',
password: '<password>',
database: 'SNOWFLAKE_SAMPLE_DATA',
schema: 'SOLUTIONSFIT_TEST',
warehouse: 'DEMO'
});
await connectionPool.use(async (client) => {
const rows = await client.execute(
'SELECT COUNT(*) FROM USERS WHERE FIRSTNAME=:1',
['John']
);
console.log(rows);
});
Usage with Pooling Configuration
const connectionPool = createSnowflakePool({
account: '<account name>',
username: '<username>',
password: '<password>',
database: 'SNOWFLAKE_SAMPLE_DATA',
schema: 'SOLUTIONSFIT_TEST',
warehouse: 'DEMO'
}, {
max: 10,
min: 0,
autostart: false,
idleTimeoutMillis: 60 * 60 * 1000,
evictionRunIntervalMillis: 60 * 1000,
});
}
await connectionPool.use(async (client) => {
const rows = await client.execute(
'SELECT COUNT(*) FROM USERS WHERE FIRSTNAME=:1',
['John']
);
console.log(rows);
});
Connecting
The createSnowflakePool
function takes up to four arguments:
createSnowflakePool(connectionOptions, [ poolOptions, [ loggingOptions, [ configureOptions ] ] ])
connectionOptions
- Supported options are here: https://docs.snowflake.net/manuals/user-guide/nodejs-driver-use.html#required-connection-options
poolOptions
- Most supported options are found here under ops: https://www.npmjs.com/package/generic-pool, with the addition of,
validate
(optional, function): If provided will call this function to validate a connection.
loggingOptions
- Most supported options are found here under ops: https://www.npmjs.com/package/snowflake-promise#connecting, with the addition of:
logConnection
(optional, function): If provided, this function will be called to log connection pooling status messages. For example, setlogConnection
toconsole.log
to log all connection pooling status messages to the console.
configureOptions
- Supported options are here: https://www.npmjs.com/package/snowflake-promise#connecting