@cubejs-backend/snowflake-driver 0.32.28 → 0.32.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@
4
4
  * @fileoverview The `SnowflakeDriver` and related types declaration.
5
5
  */
6
6
  import snowflake, { Column, Connection } from 'snowflake-sdk';
7
- import { BaseDriver, DownloadTableCSVData, DriverInterface, StreamTableData, UnloadOptions } from '@cubejs-backend/base-driver';
7
+ import { BaseDriver, DownloadTableCSVData, DriverInterface, TableStructure, UnloadOptions, StreamOptions, StreamTableDataWithTypes, DownloadTableMemoryData, DownloadQueryResultsResult, DownloadQueryResultsOptions, DriverCapabilities } from '@cubejs-backend/base-driver';
8
8
  import { S3 } from '@aws-sdk/client-s3';
9
9
  import { Storage } from '@google-cloud/storage';
10
10
  import { HydrationMap } from './HydrationStream';
@@ -39,6 +39,7 @@ interface SnowflakeDriverOptions {
39
39
  exportBucket?: SnowflakeDriverExportBucket;
40
40
  executionTimeout?: number;
41
41
  application: string;
42
+ readOnly?: boolean;
42
43
  /**
43
44
  * The export bucket CSV file escape symbol.
44
45
  */
@@ -56,6 +57,7 @@ export declare class SnowflakeDriver extends BaseDriver implements DriverInterfa
56
57
  * Returns default concurrency value.
57
58
  */
58
59
  static getDefaultConcurrency(): number;
60
+ static driverEnvVariables(): string[];
59
61
  protected connection: Promise<Connection> | null;
60
62
  protected readonly config: SnowflakeDriverOptions;
61
63
  /**
@@ -76,30 +78,102 @@ export declare class SnowflakeDriver extends BaseDriver implements DriverInterfa
76
78
  */
77
79
  testConnectionTimeout?: number;
78
80
  });
81
+ /**
82
+ * Driver read-only flag.
83
+ */
84
+ readOnly(): boolean;
85
+ /**
86
+ * Returns driver's capabilities object.
87
+ */
88
+ capabilities(): DriverCapabilities;
79
89
  protected createExportBucket(dataSource: string, bucketType: string): SnowflakeDriverExportBucket;
80
90
  /**
81
91
  * @todo Move to BaseDriver in the future?
82
92
  */
83
93
  protected getExportBucket(dataSource: string): SnowflakeDriverExportBucket | undefined;
84
- static driverEnvVariables(): string[];
94
+ /**
95
+ * Test driver's connection.
96
+ */
85
97
  testConnection(): Promise<void>;
98
+ /**
99
+ * Initializes and resolves connection to the Snowflake.
100
+ */
86
101
  protected initConnection(): Promise<snowflake.Connection>;
102
+ /**
103
+ * Resolves connection to the Snowflake.
104
+ */
87
105
  protected getConnection(): Promise<Connection>;
106
+ /**
107
+ * Executes query and rerutns queried rows.
108
+ */
88
109
  query<R = unknown>(query: string, values?: unknown[]): Promise<R>;
110
+ /**
111
+ * Determines whether export bucket feature is configured or not.
112
+ */
89
113
  isUnloadSupported(): Promise<boolean>;
114
+ /**
115
+ * Returns to the Cubestore an object with links to unloaded to the
116
+ * export bucket data.
117
+ */
90
118
  unload(tableName: string, options: UnloadOptions): Promise<DownloadTableCSVData>;
91
- protected extractFilesFromS3(storage: S3, bucketName: string, exportPathName: string): Promise<DownloadTableCSVData>;
92
- protected extractFilesFromGCS(storage: Storage, bucketName: string, exportPathName: string): Promise<DownloadTableCSVData>;
93
- stream(query: string, values: unknown[]): Promise<StreamTableData>;
119
+ /**
120
+ * Unload data from a SQL query to an export bucket.
121
+ */
122
+ private unloadWithSql;
123
+ /**
124
+ * Returns an array of queried fields meta info.
125
+ */
126
+ queryColumnTypes(sql: string): Promise<TableStructure>;
127
+ /**
128
+ * Unload data from a temp table to an export bucket.
129
+ */
130
+ private unloadWithTable;
131
+ /**
132
+ * Returns an array of table fields meta info.
133
+ */
134
+ tableColumnTypes(table: string): Promise<{
135
+ name: string;
136
+ type: string;
137
+ }[]>;
138
+ /**
139
+ * Returns export options clause.
140
+ */
141
+ private exportOptionsClause;
142
+ /**
143
+ * Returns an array of signed URLs of the unloaded csv files.
144
+ */
145
+ private getCsvFiles;
146
+ /**
147
+ * Returns an array of signed AWS S3 URLs of the unloaded csv files.
148
+ */
149
+ protected extractFilesFromS3(storage: S3, bucketName: string, tableName: string): Promise<string[]>;
150
+ /**
151
+ * Returns an array of signed GCS URLs of the unloaded csv files.
152
+ */
153
+ protected extractFilesFromGCS(storage: Storage, bucketName: string, tableName: string): Promise<string[]>;
154
+ /**
155
+ * Executes a query and returns either query result memory data or
156
+ * query result stream, depending on options.
157
+ */
158
+ downloadQueryResults(query: string, values: unknown[], options: DownloadQueryResultsOptions): Promise<DownloadQueryResultsResult>;
159
+ /**
160
+ * Executes query and returns table memory data that includes rows
161
+ * and queried fields types.
162
+ */
163
+ memory(query: string, values: unknown[]): Promise<DownloadTableMemoryData & {
164
+ types: TableStructure;
165
+ }>;
166
+ /**
167
+ * Returns stream table object that includes query result stream and
168
+ * queried fields types.
169
+ */
170
+ stream(query: string, values: unknown[], _options: StreamOptions): Promise<StreamTableDataWithTypes>;
171
+ private getTypes;
94
172
  protected generateHydrationMap(columns: Column[]): HydrationMap;
95
173
  protected execute<R = unknown>(connection: Connection, query: string, values?: unknown[], rehydrate?: boolean): Promise<R>;
96
174
  informationSchemaQuery(): string;
97
175
  release(): Promise<void>;
98
176
  toGenericType(columnType: string): string;
99
- tableColumnTypes(table: string): Promise<{
100
- name: string;
101
- type: string;
102
- }[]>;
103
177
  getTablesQuery(schemaName: string): Promise<{
104
178
  table_name: string | undefined;
105
179
  }[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"SnowflakeDriver.d.ts","sourceRoot":"","sources":["../../src/SnowflakeDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SnowflakeDriver.d.ts","sourceRoot":"","sources":["../../src/SnowflakeDriver.ts"],"names":[],"mappings":"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"}
@@ -4,29 +4,6 @@
4
4
  * @license Apache-2.0
5
5
  * @fileoverview The `SnowflakeDriver` and related types declaration.
6
6
  */
7
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
- if (k2 === undefined) k2 = k;
9
- var desc = Object.getOwnPropertyDescriptor(m, k);
10
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
- desc = { enumerable: true, get: function() { return m[k]; } };
12
- }
13
- Object.defineProperty(o, k2, desc);
14
- }) : (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- o[k2] = m[k];
17
- }));
18
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
- Object.defineProperty(o, "default", { enumerable: true, value: v });
20
- }) : function(o, v) {
21
- o["default"] = v;
22
- });
23
- var __importStar = (this && this.__importStar) || function (mod) {
24
- if (mod && mod.__esModule) return mod;
25
- var result = {};
26
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
27
- __setModuleDefault(result, mod);
28
- return result;
29
- };
30
7
  var __importDefault = (this && this.__importDefault) || function (mod) {
31
8
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
9
  };
@@ -35,7 +12,6 @@ exports.SnowflakeDriver = void 0;
35
12
  const shared_1 = require("@cubejs-backend/shared");
36
13
  const snowflake_sdk_1 = __importDefault(require("snowflake-sdk"));
37
14
  const base_driver_1 = require("@cubejs-backend/base-driver");
38
- const crypto = __importStar(require("crypto"));
39
15
  const date_fns_timezone_1 = require("date-fns-timezone");
40
16
  const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
41
17
  const client_s3_1 = require("@aws-sdk/client-s3");
@@ -121,6 +97,23 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
121
97
  static getDefaultConcurrency() {
122
98
  return 5;
123
99
  }
100
+ static driverEnvVariables() {
101
+ // TODO (buntarb): check how this method can/must be used with split
102
+ // names by the data source.
103
+ return [
104
+ 'CUBEJS_DB_NAME',
105
+ 'CUBEJS_DB_USER',
106
+ 'CUBEJS_DB_PASS',
107
+ 'CUBEJS_DB_SNOWFLAKE_ACCOUNT',
108
+ 'CUBEJS_DB_SNOWFLAKE_REGION',
109
+ 'CUBEJS_DB_SNOWFLAKE_WAREHOUSE',
110
+ 'CUBEJS_DB_SNOWFLAKE_ROLE',
111
+ 'CUBEJS_DB_SNOWFLAKE_CLIENT_SESSION_KEEP_ALIVE',
112
+ 'CUBEJS_DB_SNOWFLAKE_AUTHENTICATOR',
113
+ 'CUBEJS_DB_SNOWFLAKE_PRIVATE_KEY_PATH',
114
+ 'CUBEJS_DB_SNOWFLAKE_PRIVATE_KEY_PASS'
115
+ ];
116
+ }
124
117
  /**
125
118
  * Class constructor.
126
119
  */
@@ -136,6 +129,7 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
136
129
  privateKey += '\n';
137
130
  }
138
131
  this.config = {
132
+ readOnly: true,
139
133
  account: (0, shared_1.getEnv)('snowflakeAccount', { dataSource }),
140
134
  region: (0, shared_1.getEnv)('snowflakeRegion', { dataSource }),
141
135
  warehouse: (0, shared_1.getEnv)('snowflakeWarehouse', { dataSource }),
@@ -156,6 +150,18 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
156
150
  ...config
157
151
  };
158
152
  }
153
+ /**
154
+ * Driver read-only flag.
155
+ */
156
+ readOnly() {
157
+ return !!this.config.readOnly;
158
+ }
159
+ /**
160
+ * Returns driver's capabilities object.
161
+ */
162
+ capabilities() {
163
+ return { unloadWithoutTempTable: true };
164
+ }
159
165
  createExportBucket(dataSource, bucketType) {
160
166
  if (bucketType === 's3') {
161
167
  return {
@@ -195,23 +201,9 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
195
201
  }
196
202
  return undefined;
197
203
  }
198
- static driverEnvVariables() {
199
- // TODO (buntarb): check how this method can/must be used with split
200
- // names by the data source.
201
- return [
202
- 'CUBEJS_DB_NAME',
203
- 'CUBEJS_DB_USER',
204
- 'CUBEJS_DB_PASS',
205
- 'CUBEJS_DB_SNOWFLAKE_ACCOUNT',
206
- 'CUBEJS_DB_SNOWFLAKE_REGION',
207
- 'CUBEJS_DB_SNOWFLAKE_WAREHOUSE',
208
- 'CUBEJS_DB_SNOWFLAKE_ROLE',
209
- 'CUBEJS_DB_SNOWFLAKE_CLIENT_SESSION_KEEP_ALIVE',
210
- 'CUBEJS_DB_SNOWFLAKE_AUTHENTICATOR',
211
- 'CUBEJS_DB_SNOWFLAKE_PRIVATE_KEY_PATH',
212
- 'CUBEJS_DB_SNOWFLAKE_PRIVATE_KEY_PASS'
213
- ];
214
- }
204
+ /**
205
+ * Test driver's connection.
206
+ */
215
207
  async testConnection() {
216
208
  const connection = snowflake_sdk_1.default.createConnection(this.config);
217
209
  await new Promise((resolve, reject) => connection.connect((err, conn) => (err ? reject(err) : resolve(conn))));
@@ -222,6 +214,9 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
222
214
  }
223
215
  await new Promise((resolve, reject) => connection.destroy((err, conn) => (err ? reject(err) : resolve(conn))));
224
216
  }
217
+ /**
218
+ * Initializes and resolves connection to the Snowflake.
219
+ */
225
220
  async initConnection() {
226
221
  try {
227
222
  const connection = snowflake_sdk_1.default.createConnection(this.config);
@@ -235,6 +230,9 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
235
230
  throw e;
236
231
  }
237
232
  }
233
+ /**
234
+ * Resolves connection to the Snowflake.
235
+ */
238
236
  async getConnection() {
239
237
  if (this.connection) {
240
238
  const connection = await this.connection;
@@ -246,98 +244,204 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
246
244
  // eslint-disable-next-line no-return-assign
247
245
  return this.connection = this.initConnection();
248
246
  }
247
+ /**
248
+ * Executes query and rerutns queried rows.
249
+ */
249
250
  async query(query, values) {
250
251
  return this.getConnection().then((connection) => this.execute(connection, query, values));
251
252
  }
253
+ /**
254
+ * Determines whether export bucket feature is configured or not.
255
+ */
252
256
  async isUnloadSupported() {
253
257
  if (!this.config.exportBucket) {
254
258
  return false;
255
259
  }
256
260
  return true;
257
261
  }
262
+ /**
263
+ * Returns to the Cubestore an object with links to unloaded to the
264
+ * export bucket data.
265
+ */
258
266
  async unload(tableName, options) {
259
- const connection = await this.getConnection();
260
267
  if (!this.config.exportBucket) {
261
- throw new Error('Unload is not configured');
268
+ throw new Error('Export bucket is not configured.');
269
+ }
270
+ const types = options.query
271
+ ? await this.unloadWithSql(tableName, options)
272
+ : await this.unloadWithTable(tableName, options);
273
+ const csvFile = await this.getCsvFiles(tableName);
274
+ return {
275
+ exportBucketCsvEscapeSymbol: this.config.exportBucketCsvEscapeSymbol,
276
+ csvFile,
277
+ types,
278
+ csvNoHeader: true,
279
+ };
280
+ }
281
+ /**
282
+ * Unload data from a SQL query to an export bucket.
283
+ */
284
+ async unloadWithSql(tableName, options) {
285
+ if (!options.query) {
286
+ throw new Error('Unload query is missed.');
262
287
  }
288
+ else {
289
+ const types = await this.queryColumnTypes(options.query.sql);
290
+ const connection = await this.getConnection();
291
+ const { bucketType, bucketName } = this.config.exportBucket;
292
+ const unloadSql = `
293
+ COPY INTO '${bucketType}://${bucketName}/${tableName}/'
294
+ FROM (${options.query.sql})
295
+ ${this.exportOptionsClause(options)}`;
296
+ const result = await this.execute(connection, unloadSql, [], false);
297
+ if (!result) {
298
+ throw new Error('Missing `COPY INTO` query result.');
299
+ }
300
+ return types;
301
+ }
302
+ }
303
+ /**
304
+ * Returns an array of queried fields meta info.
305
+ */
306
+ async queryColumnTypes(sql) {
307
+ const connection = await this.getConnection();
308
+ return new Promise((resolve, reject) => connection.execute({
309
+ sqlText: `${sql} LIMIT 0`,
310
+ binds: [],
311
+ fetchAsString: ['Number'],
312
+ complete: (err, stmt) => {
313
+ if (err) {
314
+ reject(err);
315
+ return;
316
+ }
317
+ const types = this.getTypes(stmt);
318
+ resolve(types);
319
+ },
320
+ }));
321
+ }
322
+ /**
323
+ * Unload data from a temp table to an export bucket.
324
+ */
325
+ async unloadWithTable(tableName, options) {
326
+ const types = await this.tableColumnTypes(tableName);
327
+ const connection = await this.getConnection();
263
328
  const { bucketType, bucketName } = this.config.exportBucket;
264
- const exportPathName = crypto.randomBytes(10).toString('hex');
265
- // @link https://docs.snowflake.com/en/sql-reference/sql/copy-into-location.html
329
+ const unloadSql = `
330
+ COPY INTO '${bucketType}://${bucketName}/${tableName}/'
331
+ FROM ${tableName}
332
+ ${this.exportOptionsClause(options)}`;
333
+ const result = await this.execute(connection, unloadSql, [], false);
334
+ if (!result) {
335
+ throw new Error('Missing `COPY INTO` query result.');
336
+ }
337
+ return types;
338
+ }
339
+ /**
340
+ * Returns an array of table fields meta info.
341
+ */
342
+ async tableColumnTypes(table) {
343
+ const [schema, name] = table.split('.');
344
+ const columns = await this.query(`SELECT COLUMNS.COLUMN_NAME,
345
+ CASE
346
+ WHEN
347
+ COLUMNS.NUMERIC_SCALE = 0 AND
348
+ COLUMNS.DATA_TYPE = 'NUMBER'
349
+ THEN 'int'
350
+ ELSE COLUMNS.DATA_TYPE
351
+ END as DATA_TYPE
352
+ FROM INFORMATION_SCHEMA.COLUMNS
353
+ WHERE
354
+ TABLE_NAME = ${this.param(0)} AND
355
+ TABLE_SCHEMA = ${this.param(1)}
356
+ ORDER BY ORDINAL_POSITION`, [name.toUpperCase(), schema.toUpperCase()]);
357
+ return columns.map(c => ({
358
+ name: c.COLUMN_NAME,
359
+ type: this.toGenericType(c.DATA_TYPE),
360
+ }));
361
+ }
362
+ /**
363
+ * Returns export options clause.
364
+ */
365
+ exportOptionsClause(options) {
366
+ const { bucketType } = this.config.exportBucket;
266
367
  const optionsToExport = {
267
- HEADER: 'true',
368
+ HEADER: 'false',
268
369
  INCLUDE_QUERY_ID: 'true',
269
- // the upper size limit (in bytes) of each file to be generated in parallel per thread
270
370
  MAX_FILE_SIZE: (options.maxFileSize * 1024 * 1024).toFixed(),
271
- FILE_FORMAT: '(TYPE = CSV, COMPRESSION = GZIP, FIELD_OPTIONALLY_ENCLOSED_BY = \'"\')',
272
- };
273
- let unloadExtractor = async () => {
274
- throw new Error('Unsupported');
371
+ FILE_FORMAT: '(' +
372
+ 'TYPE = CSV, ' +
373
+ 'COMPRESSION = GZIP, ' +
374
+ 'FIELD_OPTIONALLY_ENCLOSED_BY = \'"\'' +
375
+ ')',
275
376
  };
276
- // eslint-disable-next-line default-case
277
377
  switch (bucketType) {
278
378
  case 's3':
279
- {
280
- const { keyId, secretKey, region } = this.config.exportBucket;
281
- optionsToExport.CREDENTIALS = `(AWS_KEY_ID = '${keyId}' AWS_SECRET_KEY = '${secretKey}')`;
282
- unloadExtractor = () => this.extractFilesFromS3(new client_s3_1.S3({
283
- credentials: {
284
- accessKeyId: keyId,
285
- secretAccessKey: secretKey,
286
- },
287
- region,
288
- }), bucketName, exportPathName);
289
- }
379
+ optionsToExport.CREDENTIALS = `(AWS_KEY_ID = '${this.config.exportBucket.keyId}' AWS_SECRET_KEY = '${this.config.exportBucket.secretKey}')`;
290
380
  break;
291
381
  case 'gcs':
292
- {
293
- const { integrationName, credentials } = this.config.exportBucket;
294
- optionsToExport.STORAGE_INTEGRATION = `${integrationName}`;
295
- unloadExtractor = () => this.extractFilesFromGCS(new storage_1.Storage({
296
- credentials
297
- }), bucketName, exportPathName);
298
- }
382
+ optionsToExport.STORAGE_INTEGRATION = this.config.exportBucket.integrationName;
299
383
  break;
300
384
  default:
301
- throw new Error(`Unsupported EXPORT_BUCKET_TYPE, supported: ${['s3', 'gcs'].join(',')}`);
385
+ throw new Error('Unsupported export bucket type.');
302
386
  }
303
- const optionsPart = Object.entries(optionsToExport)
387
+ const clause = Object.entries(optionsToExport)
304
388
  .map(([key, value]) => `${key} = ${value}`)
305
389
  .join(' ');
306
- const result = await this.execute(connection, `COPY INTO '${bucketType}://${bucketName}/${exportPathName}/' FROM ${tableName} ${optionsPart}`, [], false);
307
- if (!result) {
308
- throw new Error('Snowflake doesn\'t return anything on UNLOAD operation');
309
- }
310
- if (result[0].rows_unloaded === '0') {
311
- return {
312
- exportBucketCsvEscapeSymbol: this.config.exportBucketCsvEscapeSymbol,
313
- csvFile: [],
314
- };
390
+ return clause;
391
+ }
392
+ /**
393
+ * Returns an array of signed URLs of the unloaded csv files.
394
+ */
395
+ async getCsvFiles(tableName) {
396
+ const { bucketType, bucketName } = this.config.exportBucket;
397
+ switch (bucketType) {
398
+ case 's3':
399
+ return this.extractFilesFromS3(new client_s3_1.S3({
400
+ credentials: {
401
+ accessKeyId: this.config.exportBucket.keyId,
402
+ secretAccessKey: this.config.exportBucket.secretKey,
403
+ },
404
+ region: this.config.exportBucket.region,
405
+ }), bucketName, tableName);
406
+ case 'gcs':
407
+ return this.extractFilesFromGCS(new storage_1.Storage({
408
+ credentials: this.config.exportBucket.credentials,
409
+ }), bucketName, tableName);
410
+ default:
411
+ throw new Error('Unsupported export bucket type.');
315
412
  }
316
- return unloadExtractor();
317
413
  }
318
- async extractFilesFromS3(storage, bucketName, exportPathName) {
414
+ /**
415
+ * Returns an array of signed AWS S3 URLs of the unloaded csv files.
416
+ */
417
+ async extractFilesFromS3(storage, bucketName, tableName) {
319
418
  const list = await storage.listObjectsV2({
320
419
  Bucket: bucketName,
321
- Prefix: exportPathName,
420
+ Prefix: tableName,
322
421
  });
323
- if (list && list.Contents) {
324
- const csvFile = await Promise.all(list.Contents.map(async (file) => {
325
- const command = new client_s3_1.GetObjectCommand({
326
- Bucket: bucketName,
327
- Key: file.Key,
328
- });
329
- return (0, s3_request_presigner_1.getSignedUrl)(storage, command, { expiresIn: 3600 });
330
- }));
331
- return {
332
- exportBucketCsvEscapeSymbol: this.config.exportBucketCsvEscapeSymbol,
333
- csvFile,
334
- };
422
+ if (list) {
423
+ if (!list.Contents) {
424
+ return [];
425
+ }
426
+ else {
427
+ const csvFile = await Promise.all(list.Contents.map(async (file) => {
428
+ const command = new client_s3_1.GetObjectCommand({
429
+ Bucket: bucketName,
430
+ Key: file.Key,
431
+ });
432
+ return (0, s3_request_presigner_1.getSignedUrl)(storage, command, { expiresIn: 3600 });
433
+ }));
434
+ return csvFile;
435
+ }
335
436
  }
336
- throw new Error('Unable to UNLOAD table, there are no files in S3 storage');
437
+ throw new Error('Unable to unload.');
337
438
  }
338
- async extractFilesFromGCS(storage, bucketName, exportPathName) {
439
+ /**
440
+ * Returns an array of signed GCS URLs of the unloaded csv files.
441
+ */
442
+ async extractFilesFromGCS(storage, bucketName, tableName) {
339
443
  const bucket = storage.bucket(bucketName);
340
- const [files] = await bucket.getFiles({ prefix: `${exportPathName}/` });
444
+ const [files] = await bucket.getFiles({ prefix: `${tableName}/` });
341
445
  if (files.length) {
342
446
  const csvFile = await Promise.all(files.map(async (file) => {
343
447
  const [url] = await file.getSignedUrl({
@@ -346,14 +450,59 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
346
450
  });
347
451
  return url;
348
452
  }));
349
- return {
350
- exportBucketCsvEscapeSymbol: this.config.exportBucketCsvEscapeSymbol,
351
- csvFile,
352
- };
453
+ return csvFile;
454
+ }
455
+ else {
456
+ return [];
353
457
  }
354
- throw new Error('Unable to UNLOAD table, there are no files in GCS storage');
355
458
  }
356
- async stream(query, values) {
459
+ /**
460
+ * Executes a query and returns either query result memory data or
461
+ * query result stream, depending on options.
462
+ */
463
+ async downloadQueryResults(query, values, options) {
464
+ if (!options.streamImport) {
465
+ return this.memory(query, values);
466
+ }
467
+ else {
468
+ return this.stream(query, values, options);
469
+ }
470
+ }
471
+ /**
472
+ * Executes query and returns table memory data that includes rows
473
+ * and queried fields types.
474
+ */
475
+ async memory(query, values) {
476
+ const connection = await this.getConnection();
477
+ return new Promise((resolve, reject) => connection.execute({
478
+ sqlText: query,
479
+ binds: values,
480
+ fetchAsString: ['Number'],
481
+ complete: (err, stmt, rows) => {
482
+ if (err) {
483
+ reject(err);
484
+ return;
485
+ }
486
+ const hydrationMap = this.generateHydrationMap(stmt.getColumns());
487
+ const types = this.getTypes(stmt);
488
+ if (rows && rows.length && Object.keys(hydrationMap).length) {
489
+ for (const row of rows) {
490
+ for (const [field, toValue] of Object.entries(hydrationMap)) {
491
+ if (row.hasOwnProperty(field)) {
492
+ row[field] = toValue(row[field]);
493
+ }
494
+ }
495
+ }
496
+ }
497
+ resolve({ types, rows: rows || [] });
498
+ }
499
+ }));
500
+ }
501
+ /**
502
+ * Returns stream table object that includes query result stream and
503
+ * queried fields types.
504
+ */
505
+ async stream(query, values, _options) {
357
506
  const connection = await this.getConnection();
358
507
  const stmt = await new Promise((resolve, reject) => connection.execute({
359
508
  sqlText: query,
@@ -373,12 +522,14 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
373
522
  resolve(statement);
374
523
  }
375
524
  }));
525
+ const types = this.getTypes(stmt);
376
526
  const hydrationMap = this.generateHydrationMap(stmt.getColumns());
377
527
  if (Object.keys(hydrationMap).length) {
378
528
  const rowStream = new HydrationStream_1.HydrationStream(hydrationMap);
379
529
  stmt.streamRows().pipe(rowStream);
380
530
  return {
381
531
  rowStream,
532
+ types,
382
533
  release: async () => {
383
534
  //
384
535
  }
@@ -386,11 +537,33 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
386
537
  }
387
538
  return {
388
539
  rowStream: stmt.streamRows(),
540
+ types,
389
541
  release: async () => {
390
542
  //
391
543
  }
392
544
  };
393
545
  }
546
+ getTypes(stmt) {
547
+ return stmt.getColumns().map((column) => {
548
+ const type = {
549
+ name: column.getName().toLowerCase(),
550
+ type: '',
551
+ };
552
+ if (column.isNumber()) {
553
+ // @ts-ignore
554
+ if (column.getScale() === 0) {
555
+ type.type = 'int';
556
+ }
557
+ else {
558
+ type.type = 'decimal';
559
+ }
560
+ }
561
+ else {
562
+ type.type = this.toGenericType(column.getType());
563
+ }
564
+ return type;
565
+ });
566
+ }
394
567
  generateHydrationMap(columns) {
395
568
  const hydrationMap = {};
396
569
  for (const column of columns) {
@@ -449,15 +622,6 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
449
622
  toGenericType(columnType) {
450
623
  return SnowflakeToGenericType[columnType.toLowerCase()] || super.toGenericType(columnType);
451
624
  }
452
- async tableColumnTypes(table) {
453
- const [schema, name] = table.split('.');
454
- const columns = await this.query(`SELECT COLUMNS.COLUMN_NAME,
455
- CASE WHEN COLUMNS.NUMERIC_SCALE = 0 AND COLUMNS.DATA_TYPE = 'NUMBER' THEN 'int' ELSE COLUMNS.DATA_TYPE END as DATA_TYPE
456
- FROM INFORMATION_SCHEMA.COLUMNS
457
- WHERE TABLE_NAME = ${this.param(0)} AND TABLE_SCHEMA = ${this.param(1)}
458
- ORDER BY ORDINAL_POSITION`, [name.toUpperCase(), schema.toUpperCase()]);
459
- return columns.map(c => ({ name: c.COLUMN_NAME, type: this.toGenericType(c.DATA_TYPE) }));
460
- }
461
625
  async getTablesQuery(schemaName) {
462
626
  const tables = await super.getTablesQuery(schemaName.toUpperCase());
463
627
  return tables.map(t => ({ table_name: t.TABLE_NAME && t.TABLE_NAME.toLowerCase() }));
@@ -1 +1 @@
1
- {"version":3,"file":"SnowflakeDriver.js","sourceRoot":"","sources":["../../src/SnowflakeDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SnowflakeDriver.js","sourceRoot":"","sources":["../../src/SnowflakeDriver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@cubejs-backend/snowflake-driver",
3
3
  "description": "Cube.js Snowflake database driver",
4
4
  "author": "Cube Dev, Inc.",
5
- "version": "0.32.28",
5
+ "version": "0.32.30",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/cube-js/cube.git",
@@ -27,8 +27,8 @@
27
27
  "dependencies": {
28
28
  "@aws-sdk/client-s3": "^3.16.0",
29
29
  "@aws-sdk/s3-request-presigner": "^3.16.0",
30
- "@cubejs-backend/base-driver": "^0.32.28",
31
- "@cubejs-backend/shared": "^0.32.28",
30
+ "@cubejs-backend/base-driver": "^0.32.30",
31
+ "@cubejs-backend/shared": "^0.32.30",
32
32
  "@google-cloud/storage": "^5.8.5",
33
33
  "date-fns-timezone": "^0.1.4",
34
34
  "snowflake-sdk": "^1.6.18"
@@ -45,5 +45,5 @@
45
45
  "@types/snowflake-sdk": "^1.6.8",
46
46
  "typescript": "~4.9.5"
47
47
  },
48
- "gitHead": "31282a6fd5adfbbcb27cb1b25db30b6e4c5cf687"
48
+ "gitHead": "71afde6187516487d1c38294aae9f494c140fb4a"
49
49
  }