@cubejs-backend/snowflake-driver 0.32.28 → 0.32.29

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,101 @@ 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>;
94
171
  protected generateHydrationMap(columns: Column[]): HydrationMap;
95
172
  protected execute<R = unknown>(connection: Connection, query: string, values?: unknown[], rehydrate?: boolean): Promise<R>;
96
173
  informationSchemaQuery(): string;
97
174
  release(): Promise<void>;
98
175
  toGenericType(columnType: string): string;
99
- tableColumnTypes(table: string): Promise<{
100
- name: string;
101
- type: string;
102
- }[]>;
103
176
  getTablesQuery(schemaName: string): Promise<{
104
177
  table_name: string | undefined;
105
178
  }[]>;
@@ -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":"AAAA;;;;GAIG;AAMH,OAAO,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAa,MAAM,eAAe,CAAC;AACzE,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,eAAe,EAEf,cAAc,EACd,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,EAAE,EAAoB,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAwFlE,UAAU,wBAAwB;IAChC,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,wBAAwB;IAChC,UAAU,EAAE,KAAK,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,GAAG,wBAAwB,CAAC;AAE9F,UAAU,sBAAsB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,UAAW,YAAW,eAAe;IACxE;;OAEG;WACW,qBAAqB,IAAI,MAAM;WAI/B,kBAAkB;IAkBhC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAQ;IAExD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAElD;;OAEG;gBAED,MAAM,GAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG;QACxC;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB;;;WAGG;QACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAsCR;;OAEG;IACI,QAAQ,IAAI,OAAO;IAI1B;;OAEG;IACI,YAAY,IAAI,kBAAkB;IAIzC,SAAS,CAAC,kBAAkB,CAC1B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,2BAA2B;IAyB9B;;OAEG;IACH,SAAS,CAAC,eAAe,CACvB,UAAU,EAAE,MAAM,GACjB,2BAA2B,GAAG,SAAS;IAyB1C;;OAEG;IACU,cAAc;IAe3B;;OAEG;cACa,cAAc;IAkB9B;;OAEG;cACa,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAcpD;;OAEG;IACU,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAI9E;;OAEG;IACU,iBAAiB;IAO9B;;;OAGG;IACU,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgB7F;;OAEG;YACW,aAAa;IA4B3B;;OAEG;IACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAkCnE;;OAEG;YACW,eAAe;IAwB7B;;OAEG;IACU,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;;IA2B3C;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuC3B;;OAEG;YACW,WAAW;IAqCzB;;OAEG;cACa,kBAAkB,CAChC,OAAO,EAAE,EAAE,EACX,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC;IAwBpB;;OAEG;cACa,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBpB;;;OAGG;IACU,oBAAoB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAQtC;;;OAGG;IACU,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,CAAC;IA4C/D;;;OAGG;IACU,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,EACjB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,wBAAwB,CAAC;IA4DpC,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY;cAiB/C,OAAO,CAAC,CAAC,GAAG,OAAO,EACjC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,OAAO,EAAE,EAClB,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,CAAC,CAAC;IA6BN,sBAAsB;IAWhB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,aAAa,CAAC,UAAU,EAAE,MAAM;IAI1B,cAAc,CAAC,UAAU,EAAE,MAAM;;;CAI/C"}
@@ -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,222 @@ 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 = stmt.getColumns().map((column) => {
318
+ const type = {
319
+ name: column.getName().toLowerCase(),
320
+ type: '',
321
+ };
322
+ if (column.isNumber()) {
323
+ // @ts-ignore
324
+ if (column.getPrecision() === 0) {
325
+ type.type = 'int';
326
+ }
327
+ else {
328
+ type.type = 'decimal';
329
+ }
330
+ }
331
+ else {
332
+ type.type = this.toGenericType(column.getType());
333
+ }
334
+ return type;
335
+ });
336
+ resolve(types);
337
+ },
338
+ }));
339
+ }
340
+ /**
341
+ * Unload data from a temp table to an export bucket.
342
+ */
343
+ async unloadWithTable(tableName, options) {
344
+ const types = await this.tableColumnTypes(tableName);
345
+ const connection = await this.getConnection();
263
346
  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
347
+ const unloadSql = `
348
+ COPY INTO '${bucketType}://${bucketName}/${tableName}/'
349
+ FROM ${tableName}
350
+ ${this.exportOptionsClause(options)}`;
351
+ const result = await this.execute(connection, unloadSql, [], false);
352
+ if (!result) {
353
+ throw new Error('Missing `COPY INTO` query result.');
354
+ }
355
+ return types;
356
+ }
357
+ /**
358
+ * Returns an array of table fields meta info.
359
+ */
360
+ async tableColumnTypes(table) {
361
+ const [schema, name] = table.split('.');
362
+ const columns = await this.query(`SELECT COLUMNS.COLUMN_NAME,
363
+ CASE
364
+ WHEN
365
+ COLUMNS.NUMERIC_SCALE = 0 AND
366
+ COLUMNS.DATA_TYPE = 'NUMBER'
367
+ THEN 'int'
368
+ ELSE COLUMNS.DATA_TYPE
369
+ END as DATA_TYPE
370
+ FROM INFORMATION_SCHEMA.COLUMNS
371
+ WHERE
372
+ TABLE_NAME = ${this.param(0)} AND
373
+ TABLE_SCHEMA = ${this.param(1)}
374
+ ORDER BY ORDINAL_POSITION`, [name.toUpperCase(), schema.toUpperCase()]);
375
+ return columns.map(c => ({
376
+ name: c.COLUMN_NAME,
377
+ type: this.toGenericType(c.DATA_TYPE),
378
+ }));
379
+ }
380
+ /**
381
+ * Returns export options clause.
382
+ */
383
+ exportOptionsClause(options) {
384
+ const { bucketType } = this.config.exportBucket;
266
385
  const optionsToExport = {
267
- HEADER: 'true',
386
+ HEADER: 'false',
268
387
  INCLUDE_QUERY_ID: 'true',
269
- // the upper size limit (in bytes) of each file to be generated in parallel per thread
270
388
  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');
389
+ FILE_FORMAT: '(' +
390
+ 'TYPE = CSV, ' +
391
+ 'COMPRESSION = GZIP, ' +
392
+ 'FIELD_OPTIONALLY_ENCLOSED_BY = \'"\'' +
393
+ ')',
275
394
  };
276
- // eslint-disable-next-line default-case
277
395
  switch (bucketType) {
278
396
  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
- }
397
+ optionsToExport.CREDENTIALS = `(AWS_KEY_ID = '${this.config.exportBucket.keyId}' AWS_SECRET_KEY = '${this.config.exportBucket.secretKey}')`;
290
398
  break;
291
399
  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
- }
400
+ optionsToExport.STORAGE_INTEGRATION = this.config.exportBucket.integrationName;
299
401
  break;
300
402
  default:
301
- throw new Error(`Unsupported EXPORT_BUCKET_TYPE, supported: ${['s3', 'gcs'].join(',')}`);
403
+ throw new Error('Unsupported export bucket type.');
302
404
  }
303
- const optionsPart = Object.entries(optionsToExport)
405
+ const clause = Object.entries(optionsToExport)
304
406
  .map(([key, value]) => `${key} = ${value}`)
305
407
  .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
- };
408
+ return clause;
409
+ }
410
+ /**
411
+ * Returns an array of signed URLs of the unloaded csv files.
412
+ */
413
+ async getCsvFiles(tableName) {
414
+ const { bucketType, bucketName } = this.config.exportBucket;
415
+ switch (bucketType) {
416
+ case 's3':
417
+ return this.extractFilesFromS3(new client_s3_1.S3({
418
+ credentials: {
419
+ accessKeyId: this.config.exportBucket.keyId,
420
+ secretAccessKey: this.config.exportBucket.secretKey,
421
+ },
422
+ region: this.config.exportBucket.region,
423
+ }), bucketName, tableName);
424
+ case 'gcs':
425
+ return this.extractFilesFromGCS(new storage_1.Storage({
426
+ credentials: this.config.exportBucket.credentials,
427
+ }), bucketName, tableName);
428
+ default:
429
+ throw new Error('Unsupported export bucket type.');
315
430
  }
316
- return unloadExtractor();
317
431
  }
318
- async extractFilesFromS3(storage, bucketName, exportPathName) {
432
+ /**
433
+ * Returns an array of signed AWS S3 URLs of the unloaded csv files.
434
+ */
435
+ async extractFilesFromS3(storage, bucketName, tableName) {
319
436
  const list = await storage.listObjectsV2({
320
437
  Bucket: bucketName,
321
- Prefix: exportPathName,
438
+ Prefix: tableName,
322
439
  });
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
- };
440
+ if (list) {
441
+ if (!list.Contents) {
442
+ return [];
443
+ }
444
+ else {
445
+ const csvFile = await Promise.all(list.Contents.map(async (file) => {
446
+ const command = new client_s3_1.GetObjectCommand({
447
+ Bucket: bucketName,
448
+ Key: file.Key,
449
+ });
450
+ return (0, s3_request_presigner_1.getSignedUrl)(storage, command, { expiresIn: 3600 });
451
+ }));
452
+ return csvFile;
453
+ }
335
454
  }
336
- throw new Error('Unable to UNLOAD table, there are no files in S3 storage');
455
+ throw new Error('Unable to unload.');
337
456
  }
338
- async extractFilesFromGCS(storage, bucketName, exportPathName) {
457
+ /**
458
+ * Returns an array of signed GCS URLs of the unloaded csv files.
459
+ */
460
+ async extractFilesFromGCS(storage, bucketName, tableName) {
339
461
  const bucket = storage.bucket(bucketName);
340
- const [files] = await bucket.getFiles({ prefix: `${exportPathName}/` });
462
+ const [files] = await bucket.getFiles({ prefix: `${tableName}/` });
341
463
  if (files.length) {
342
464
  const csvFile = await Promise.all(files.map(async (file) => {
343
465
  const [url] = await file.getSignedUrl({
@@ -346,14 +468,77 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
346
468
  });
347
469
  return url;
348
470
  }));
349
- return {
350
- exportBucketCsvEscapeSymbol: this.config.exportBucketCsvEscapeSymbol,
351
- csvFile,
352
- };
471
+ return csvFile;
472
+ }
473
+ else {
474
+ return [];
353
475
  }
354
- throw new Error('Unable to UNLOAD table, there are no files in GCS storage');
355
476
  }
356
- async stream(query, values) {
477
+ /**
478
+ * Executes a query and returns either query result memory data or
479
+ * query result stream, depending on options.
480
+ */
481
+ async downloadQueryResults(query, values, options) {
482
+ if (!options.streamImport) {
483
+ return this.memory(query, values);
484
+ }
485
+ else {
486
+ return this.stream(query, values, options);
487
+ }
488
+ }
489
+ /**
490
+ * Executes query and returns table memory data that includes rows
491
+ * and queried fields types.
492
+ */
493
+ async memory(query, values) {
494
+ const connection = await this.getConnection();
495
+ return new Promise((resolve, reject) => connection.execute({
496
+ sqlText: query,
497
+ binds: values,
498
+ fetchAsString: ['Number'],
499
+ complete: (err, stmt, rows) => {
500
+ if (err) {
501
+ reject(err);
502
+ return;
503
+ }
504
+ const hydrationMap = this.generateHydrationMap(stmt.getColumns());
505
+ const types = stmt.getColumns().map((column) => {
506
+ const type = {
507
+ name: column.getName().toLowerCase(),
508
+ type: '',
509
+ };
510
+ if (column.isNumber()) {
511
+ // @ts-ignore
512
+ if (column.getPrecision() === 0) {
513
+ type.type = 'int';
514
+ }
515
+ else {
516
+ type.type = 'decimal';
517
+ }
518
+ }
519
+ else {
520
+ type.type = this.toGenericType(column.getType());
521
+ }
522
+ return type;
523
+ });
524
+ if (rows && rows.length && Object.keys(hydrationMap).length) {
525
+ for (const row of rows) {
526
+ for (const [field, toValue] of Object.entries(hydrationMap)) {
527
+ if (row.hasOwnProperty(field)) {
528
+ row[field] = toValue(row[field]);
529
+ }
530
+ }
531
+ }
532
+ }
533
+ resolve({ types, rows: rows || [] });
534
+ }
535
+ }));
536
+ }
537
+ /**
538
+ * Returns stream table object that includes query result stream and
539
+ * queried fields types.
540
+ */
541
+ async stream(query, values, _options) {
357
542
  const connection = await this.getConnection();
358
543
  const stmt = await new Promise((resolve, reject) => connection.execute({
359
544
  sqlText: query,
@@ -373,12 +558,32 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
373
558
  resolve(statement);
374
559
  }
375
560
  }));
561
+ const types = stmt.getColumns().map((column) => {
562
+ const type = {
563
+ name: column.getName().toLowerCase(),
564
+ type: '',
565
+ };
566
+ if (column.isNumber()) {
567
+ // @ts-ignore
568
+ if (column.getPrecision() === 0) {
569
+ type.type = 'int';
570
+ }
571
+ else {
572
+ type.type = 'decimal';
573
+ }
574
+ }
575
+ else {
576
+ type.type = this.toGenericType(column.getType());
577
+ }
578
+ return type;
579
+ });
376
580
  const hydrationMap = this.generateHydrationMap(stmt.getColumns());
377
581
  if (Object.keys(hydrationMap).length) {
378
582
  const rowStream = new HydrationStream_1.HydrationStream(hydrationMap);
379
583
  stmt.streamRows().pipe(rowStream);
380
584
  return {
381
585
  rowStream,
586
+ types,
382
587
  release: async () => {
383
588
  //
384
589
  }
@@ -386,6 +591,7 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
386
591
  }
387
592
  return {
388
593
  rowStream: stmt.streamRows(),
594
+ types,
389
595
  release: async () => {
390
596
  //
391
597
  }
@@ -449,15 +655,6 @@ class SnowflakeDriver extends base_driver_1.BaseDriver {
449
655
  toGenericType(columnType) {
450
656
  return SnowflakeToGenericType[columnType.toLowerCase()] || super.toGenericType(columnType);
451
657
  }
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
658
  async getTablesQuery(schemaName) {
462
659
  const tables = await super.getTablesQuery(schemaName.toUpperCase());
463
660
  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.29",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/cube-js/cube.git",
@@ -27,7 +27,7 @@
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",
30
+ "@cubejs-backend/base-driver": "^0.32.29",
31
31
  "@cubejs-backend/shared": "^0.32.28",
32
32
  "@google-cloud/storage": "^5.8.5",
33
33
  "date-fns-timezone": "^0.1.4",
@@ -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": "a41aa533c103c818511845b5df727e0502c03114"
49
49
  }