@cubejs-backend/databricks-jdbc-driver 0.30.22 → 0.30.25

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,39 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.30.25](https://github.com/cube-js/cube.js/compare/v0.30.24...v0.30.25) (2022-06-16)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **databricks-jdbc:** communication link failure ([9c3577d](https://github.com/cube-js/cube.js/commit/9c3577d4935d355b4de79c3d84771e591ada8ec2))
12
+
13
+
14
+
15
+
16
+
17
+ ## [0.30.24](https://github.com/cube-js/cube.js/compare/v0.30.23...v0.30.24) (2022-06-14)
18
+
19
+
20
+ ### Features
21
+
22
+ * **databricks-jdbc-driver:** Export bucket mount dir setting ([483d094](https://github.com/cube-js/cube.js/commit/483d0947401687d0c492a6f98f63bc915d648428))
23
+
24
+
25
+
26
+
27
+
28
+ ## [0.30.23](https://github.com/cube-js/cube.js/compare/v0.30.22...v0.30.23) (2022-06-14)
29
+
30
+
31
+ ### Features
32
+
33
+ * **databricks-jdbc:** jdbc implementation of the export bucket feature ([d534e67](https://github.com/cube-js/cube.js/commit/d534e670a4568b905b55d0f5504d5c836d5841b2))
34
+
35
+
36
+
37
+
38
+
6
39
  ## [0.30.22](https://github.com/cube-js/cube.js/compare/v0.30.21...v0.30.22) (2022-06-14)
7
40
 
8
41
 
@@ -5,6 +5,7 @@ export declare type DatabricksDriverConfiguration = JDBCDriverConfiguration & {
5
5
  readOnly?: boolean;
6
6
  bucketType?: string;
7
7
  exportBucket?: string;
8
+ exportBucketMountDir?: string;
8
9
  pollInterval?: number;
9
10
  awsKey?: string;
10
11
  awsSecret?: string;
@@ -43,90 +44,51 @@ export declare class DatabricksDriver extends JDBCDriver {
43
44
  */
44
45
  isUnloadSupported(): Promise<boolean>;
45
46
  /**
46
- * Returns databricks API base URL.
47
- */
48
- private getApiUrl;
49
- /**
50
- * Returns databricks API token.
51
- */
52
- private getApiToken;
53
- /**
54
- * Sleeper method.
55
- */
56
- private wait;
57
- /**
58
- * Assert http response.
59
- */
60
- private assertResponse;
61
- /**
62
- * Fetch API wrapper.
63
- */
64
- private fetch;
65
- /**
66
- * Returns IDs of databricks runned clusters.
67
- */
68
- private getClustersIds;
69
- /**
70
- * Determine whether notebook exist or no.
71
- */
72
- private checkNotebook;
73
- /**
74
- * Import predefined nodebook to the databricks under specified path.
75
- */
76
- private importNotebook;
77
- /**
78
- * Job identifier.
79
- */
80
- private _job?;
81
- /**
82
- * Create job and returns job id.
83
- */
84
- private createJob;
85
- /**
86
- * Determine whether job exist or no.
47
+ * Saves pre-aggs table to the bucket and returns links to download
48
+ * results.
87
49
  */
88
- private checkJob;
50
+ unload(tableName: string): Promise<DownloadTableCSVData>;
89
51
  /**
90
- * Delete job.
52
+ * Unload table to bucket using Databricks JDBC query and returns (async)
53
+ * csv files signed URLs array.
91
54
  */
92
- private deleteJob;
55
+ private getCsvFiles;
93
56
  /**
94
- * Run job and returns run id.
57
+ * Saves specified table to the Azure blob storage and returns (async)
58
+ * csv files signed URLs array.
95
59
  */
96
- private runJob;
60
+ private getAzureCsvFiles;
97
61
  /**
98
- * Pooling databricks until run in progress and resolve when it's done.
62
+ * Returns Azure signed URLs of unloaded scv files.
99
63
  */
100
- private waitResult;
64
+ private getSignedAzureUrls;
101
65
  /**
102
- * Remove nodebook.
66
+ * Saves specified table to the S3 bucket and returns (async) csv files
67
+ * signed URLs array.
103
68
  */
104
- private deleteNotebook;
69
+ private getS3CsvFiles;
105
70
  /**
106
- * Returns signed temporary URLs for AWS S3 objects.
71
+ * Returns S3 signed URLs of unloaded scv files.
107
72
  */
108
73
  private getSignedS3Urls;
109
74
  /**
110
- * Unload to AWS S3 bucket.
111
- */
112
- private unloadS3Command;
113
- /**
114
- * Returns signed temporary URLs for Azure container objects.
115
- */
116
- private getSignedWasbsUrls;
117
- /**
118
- * Unload to Azure Blob Container bucket.
119
- */
120
- private unloadWasbsCommand;
121
- /**
122
- * Unload table to bucket.
123
- */
124
- private unloadCommand;
125
- /**
126
- * Saves pre-aggs table to the bucket and returns links to download
127
- * results.
128
- */
129
- unload(tableName: string): Promise<DownloadTableCSVData>;
75
+ * Saves specified table to the configured bucket. This requires Databricks
76
+ * cluster to be configured.
77
+ *
78
+ * For Azure blob storage you need to configure account access key in
79
+ * Cluster -> Configuration -> Advanced options
80
+ * (https://docs.databricks.com/data/data-sources/azure/azure-storage.html#access-azure-blob-storage-directly)
81
+ *
82
+ * `fs.azure.account.key.<storage-account-name>.blob.core.windows.net <storage-account-access-key>`
83
+ *
84
+ * For S3 bucket storage you need to configure AWS access key and secret in
85
+ * Cluster -> Configuration -> Advanced options
86
+ * (https://docs.databricks.com/data/data-sources/aws/amazon-s3.html#access-s3-buckets-directly)
87
+ *
88
+ * `fs.s3a.access.key <aws-access-key>`
89
+ * `fs.s3a.secret.key <aws-secret-key>`
90
+ */
91
+ private createExternalTable;
130
92
  }
131
93
  export {};
132
94
  //# sourceMappingURL=DatabricksDriver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabricksDriver.d.ts","sourceRoot":"","sources":["../../src/DatabricksDriver.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,oBAAoB,EACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,UAAU,EACV,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,oBAAY,6BAA6B,GAAG,uBAAuB,GACjE;IACE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAYJ,aAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAkCF;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;WAE3C,YAAY;gBAKxB,IAAI,EAAE,OAAO,CAAC,6BAA6B,CAAC;IA6BvC,QAAQ;cAIC,kBAAkB;IAIrB,uBAAuB,CAAC,UAAU,EAAE,MAAM;IAIhD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIrC,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;;IAkB9B,cAAc,CAAC,UAAU,EAAE,MAAM;;;cAQ9B,SAAS,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAiB7C,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAInC,YAAY;IAiBzB;;;OAGG;IACU,iBAAiB;IAI9B;;OAEG;IACH,OAAO,CAAC,SAAS;IAsBjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAoBnB;;OAEG;IACH,OAAO,CAAC,IAAI;IAIZ;;OAEG;YACW,cAAc;IAa5B;;OAEG;YACW,KAAK;IA6BnB;;OAEG;YACW,cAAc;IA2B5B;;OAEG;YACW,aAAa;IAmB3B;;OAEG;YACW,cAAc;IAqB5B;;OAEG;IACH,OAAO,CAAC,IAAI,CAAC,CAAS;IAEtB;;OAEG;YACW,SAAS;IAyBvB;;OAEG;YACW,QAAQ;IAmBtB;;OAEG;YACW,SAAS;IAiBvB;;OAEG;YACW,MAAM;IA8CpB;;OAEG;YACW,UAAU;IAsDxB;;OAEG;YACW,cAAc;IAkB5B;;OAEG;YACW,eAAe;IAgC7B;;OAEG;YACW,eAAe;IAoD7B;;OAEG;YACW,kBAAkB;IA6ChC;;OAEG;YACW,kBAAkB;IAoEhC;;OAEG;YACW,aAAa;IAqB3B;;;OAGG;IACU,MAAM,CACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,CAAC;CAejC"}
1
+ {"version":3,"file":"DatabricksDriver.d.ts","sourceRoot":"","sources":["../../src/DatabricksDriver.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,oBAAoB,EACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,UAAU,EACV,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,oBAAY,6BAA6B,GAAG,uBAAuB,GACjE;IACE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAYJ,aAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAkCF;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;WAE3C,YAAY;gBAKxB,IAAI,EAAE,OAAO,CAAC,6BAA6B,CAAC;IA8BvC,QAAQ;cAIC,kBAAkB;IAIrB,uBAAuB,CAAC,UAAU,EAAE,MAAM;IAIhD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIrC,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;;IAkB9B,cAAc,CAAC,UAAU,EAAE,MAAM;;;cAQ9B,SAAS,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAiB7C,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAInC,YAAY;IAiBzB;;;OAGG;IACU,iBAAiB;IAI9B;;;OAGG;IACU,MAAM,CACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,CAAC;IAgBhC;;;OAGG;YACW,WAAW;IAqBzB;;;OAGG;YACW,gBAAgB;IAS9B;;OAEG;YACW,kBAAkB;IAiDhC;;;OAGG;YACW,aAAa;IAS3B;;OAEG;YACW,eAAe;IAoC7B;;;;;;;;;;;;;;;;OAgBG;YACW,mBAAmB;CAUlC"}
@@ -1,23 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
22
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
4
  };
@@ -26,7 +7,6 @@ exports.DatabricksDriver = void 0;
26
7
  /* eslint-disable no-restricted-syntax */
27
8
  const fs_1 = __importDefault(require("fs"));
28
9
  const path_1 = __importDefault(require("path"));
29
- const node_fetch_1 = __importStar(require("node-fetch"));
30
10
  const client_s3_1 = require("@aws-sdk/client-s3");
31
11
  const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
32
12
  const storage_blob_1 = require("@azure/storage-blob");
@@ -74,6 +54,7 @@ class DatabricksDriver extends jdbc_driver_1.JDBCDriver {
74
54
  bucketType: (conf === null || conf === void 0 ? void 0 : conf.bucketType) ||
75
55
  shared_1.getEnv('dbExportBucketType', { supported: ['s3', 'azure'] }),
76
56
  exportBucket: (conf === null || conf === void 0 ? void 0 : conf.exportBucket) || shared_1.getEnv('dbExportBucket'),
57
+ exportBucketMountDir: (conf === null || conf === void 0 ? void 0 : conf.exportBucketMountDir) || shared_1.getEnv('dbExportBucketMountDir'),
77
58
  pollInterval: ((conf === null || conf === void 0 ? void 0 : conf.pollInterval) || shared_1.getEnv('dbPollMaxInterval')) * 1000,
78
59
  // AWS export bucket config
79
60
  awsKey: (conf === null || conf === void 0 ? void 0 : conf.awsKey) || shared_1.getEnv('dbExportBucketAwsKey'),
@@ -150,307 +131,88 @@ class DatabricksDriver extends jdbc_driver_1.JDBCDriver {
150
131
  return this.config.exportBucket !== undefined;
151
132
  }
152
133
  /**
153
- * Returns databricks API base URL.
134
+ * Saves pre-aggs table to the bucket and returns links to download
135
+ * results.
154
136
  */
155
- getApiUrl() {
156
- let res;
157
- try {
158
- // eslint-disable-next-line prefer-destructuring
159
- res = this.config.url
160
- .split(';')
161
- .filter(node => /^jdbc/i.test(node))[0]
162
- .split('/')[2]
163
- .split(':')[0];
164
- }
165
- catch (e) {
166
- res = '';
167
- }
168
- if (!res.length) {
169
- throw new Error(`Error parsing API URL from the CUBEJS_DB_DATABRICKS_URL = ${this.config.url}`);
170
- }
171
- return res;
137
+ async unload(tableName) {
138
+ const types = await this.tableColumnTypes(tableName);
139
+ const columns = types.map(t => t.name).join(', ');
140
+ const pathname = `${this.config.exportBucket}/${tableName}.csv`;
141
+ const csvFile = await this.getCsvFiles(tableName, columns, pathname);
142
+ return {
143
+ csvFile,
144
+ types,
145
+ csvNoHeader: true,
146
+ };
172
147
  }
173
148
  /**
174
- * Returns databricks API token.
149
+ * Unload table to bucket using Databricks JDBC query and returns (async)
150
+ * csv files signed URLs array.
175
151
  */
176
- getApiToken() {
152
+ async getCsvFiles(table, columns, pathname) {
177
153
  let res;
178
- try {
179
- // eslint-disable-next-line prefer-destructuring
180
- res = this.config.url
181
- .split(';')
182
- .filter(node => /^PWD/i.test(node))[0]
183
- .split('=')[1];
184
- }
185
- catch (e) {
186
- res = '';
187
- }
188
- if (!res.length) {
189
- throw new Error('Error parsing API token from the CUBEJS_DB_DATABRICKS_URL' +
190
- ` = ${this.config.url}`);
154
+ switch (this.config.bucketType) {
155
+ case 'azure':
156
+ res = await this.getAzureCsvFiles(table, columns, pathname);
157
+ break;
158
+ case 's3':
159
+ res = await this.getS3CsvFiles(table, columns, pathname);
160
+ break;
161
+ default:
162
+ throw new Error(`Unsupported export bucket type: ${this.config.bucketType}`);
191
163
  }
192
164
  return res;
193
165
  }
194
166
  /**
195
- * Sleeper method.
167
+ * Saves specified table to the Azure blob storage and returns (async)
168
+ * csv files signed URLs array.
196
169
  */
197
- wait(ms) {
198
- return shared_1.pausePromise(ms);
199
- }
200
- /**
201
- * Assert http response.
202
- */
203
- async assertResponse(response) {
204
- if (!response.ok) {
205
- const text = await response.text();
206
- throw new Error(`Databricks API call error: ${response.status} - ${response.statusText} - ${text}`);
207
- }
208
- }
209
- /**
210
- * Fetch API wrapper.
211
- */
212
- async fetch(req, count, ms) {
213
- count = count || 0;
214
- ms = ms || 0;
215
- return new Promise((resolve, reject) => {
216
- this
217
- .wait(ms)
218
- .then(() => {
219
- node_fetch_1.default(req)
220
- .then((res) => {
221
- this
222
- .assertResponse(res)
223
- .then(() => {
224
- resolve(res);
225
- })
226
- .catch((err) => {
227
- if (res.status === 429 && count < 5) {
228
- this
229
- .fetch(req, count++, ms + 1000)
230
- .then((_res) => { resolve(_res); })
231
- .catch((_err) => { reject(_err); });
232
- }
233
- else {
234
- reject(err);
235
- }
236
- });
237
- });
238
- });
239
- });
240
- }
241
- /**
242
- * Returns IDs of databricks runned clusters.
243
- */
244
- async getClustersIds() {
245
- const url = `https://${this.getApiUrl()}/api/2.0/clusters/list`;
246
- const request = new node_fetch_1.Request(url, {
247
- headers: new node_fetch_1.Headers({
248
- Accept: '*/*',
249
- Authorization: `Bearer ${this.getApiToken()}`,
250
- }),
251
- });
252
- const response = await this.fetch(request);
253
- const body = await response.json();
254
- return body.clusters
255
- .filter(item => item.state === 'RUNNING')
256
- .map(item => item.cluster_id);
170
+ async getAzureCsvFiles(table, columns, pathname) {
171
+ await this.createExternalTable(table, columns);
172
+ return this.getSignedAzureUrls(pathname);
257
173
  }
258
174
  /**
259
- * Determine whether notebook exist or no.
175
+ * Returns Azure signed URLs of unloaded scv files.
260
176
  */
261
- async checkNotebook(p) {
262
- const url = `https://${this.getApiUrl()}/api/2.0/workspace/list?path=${p}`;
263
- const request = new node_fetch_1.Request(url, {
264
- method: 'GET',
265
- headers: new node_fetch_1.Headers({
266
- Accept: '*/*',
267
- Authorization: `Bearer ${this.getApiToken()}`,
268
- }),
269
- });
270
- try {
271
- await this.fetch(request);
272
- return true;
273
- }
274
- catch (e) {
275
- return false;
276
- }
277
- }
278
- /**
279
- * Import predefined nodebook to the databricks under specified path.
280
- */
281
- async importNotebook(p, content) {
282
- const url = `https://${this.getApiUrl()}/api/2.0/workspace/import`;
283
- const request = new node_fetch_1.Request(url, {
284
- method: 'POST',
285
- headers: new node_fetch_1.Headers({
286
- Accept: '*/*',
287
- Authorization: `Bearer ${this.getApiToken()}`,
288
- }),
289
- body: JSON.stringify({
290
- format: 'SOURCE',
291
- language: 'SCALA',
292
- overwrite: true,
293
- content,
294
- path: p,
295
- }),
296
- });
297
- await this.fetch(request);
298
- }
299
- /**
300
- * Create job and returns job id.
301
- */
302
- async createJob(cluster, p) {
303
- const url = `https://${this.getApiUrl()}/api/2.0/jobs/create`;
304
- const request = new node_fetch_1.Request(url, {
305
- method: 'POST',
306
- headers: new node_fetch_1.Headers({
307
- Accept: '*/*',
308
- Authorization: `Bearer ${this.getApiToken()}`,
309
- }),
310
- body: JSON.stringify({
311
- existing_cluster_id: cluster,
312
- notebook_task: {
313
- notebook_path: p,
314
- },
315
- }),
316
- });
317
- const response = await this.fetch(request);
318
- const body = await response.json();
319
- return body.job_id;
320
- }
321
- /**
322
- * Determine whether job exist or no.
323
- */
324
- async checkJob(job) {
325
- const url = `https://${this.getApiUrl()}/api/2.0/workspace/jobs/get?job_id=${job}`;
326
- const request = new node_fetch_1.Request(url, {
327
- method: 'GET',
328
- headers: new node_fetch_1.Headers({
329
- Accept: '*/*',
330
- Authorization: `Bearer ${this.getApiToken()}`,
331
- }),
332
- });
333
- try {
334
- await this.fetch(request);
335
- return true;
177
+ async getSignedAzureUrls(pathname) {
178
+ const csvFile = [];
179
+ const [container, account] = pathname.split('wasbs://')[1].split('.blob')[0].split('@');
180
+ const foldername = pathname.split(`${this.config.exportBucket}/`)[1];
181
+ const expr = new RegExp(`${foldername}\\/.*\\.csv$`, 'i');
182
+ const credential = new storage_blob_1.StorageSharedKeyCredential(account, this.config.azureKey);
183
+ const blobClient = new storage_blob_1.BlobServiceClient(`https://${account}.blob.core.windows.net`, credential);
184
+ const containerClient = blobClient.getContainerClient(container);
185
+ const blobsList = containerClient.listBlobsFlat({ prefix: foldername });
186
+ for await (const blob of blobsList) {
187
+ if (blob.name && expr.test(blob.name)) {
188
+ const sas = storage_blob_1.generateBlobSASQueryParameters({
189
+ containerName: container,
190
+ blobName: blob.name,
191
+ permissions: storage_blob_1.ContainerSASPermissions.parse('r'),
192
+ startsOn: new Date(new Date().valueOf()),
193
+ expiresOn: new Date(new Date().valueOf() + 1000 * 60 * 60),
194
+ protocol: storage_blob_1.SASProtocol.Https,
195
+ version: '2020-08-04',
196
+ }, credential).toString();
197
+ csvFile.push(`https://${account}.blob.core.windows.net/${container}/${blob.name}?${sas}`);
198
+ }
336
199
  }
337
- catch (e) {
338
- return false;
200
+ if (csvFile.length === 0) {
201
+ throw new Error('No CSV files were exported to the specified bucket. ' +
202
+ 'Please check your export bucket configuration.');
339
203
  }
204
+ return csvFile;
340
205
  }
341
206
  /**
342
- * Delete job.
343
- */
344
- async deleteJob(job) {
345
- const url = `https://${this.getApiUrl()}/api/2.0/jobs/delete`;
346
- const request = new node_fetch_1.Request(url, {
347
- method: 'POST',
348
- headers: new node_fetch_1.Headers({
349
- Accept: '*/*',
350
- Authorization: `Bearer ${this.getApiToken()}`,
351
- }),
352
- body: JSON.stringify({
353
- job_id: job,
354
- }),
355
- });
356
- await this.fetch(request);
357
- }
358
- /**
359
- * Run job and returns run id.
360
- */
361
- async runJob(job, type, columns, table, pathname, awsKey, awsSecret, azureStorage, azureKey) {
362
- const url = `https://${this.getApiUrl()}/api/2.0/jobs/run-now`;
363
- const request = new node_fetch_1.Request(url, {
364
- method: 'POST',
365
- headers: new node_fetch_1.Headers({
366
- Accept: '*/*',
367
- Authorization: `Bearer ${this.getApiToken()}`,
368
- }),
369
- body: JSON.stringify({
370
- job_id: job,
371
- notebook_params: {
372
- type,
373
- columns,
374
- table,
375
- pathname,
376
- // aws
377
- awsKey,
378
- awsSecret,
379
- // azure
380
- azureStorage,
381
- azureKey,
382
- }
383
- }),
384
- });
385
- const response = await this.fetch(request);
386
- const body = await response.json();
387
- return body.run_id;
388
- }
389
- /**
390
- * Pooling databricks until run in progress and resolve when it's done.
391
- */
392
- async waitResult(run, ms) {
393
- ms = ms || 1000;
394
- ms = ms <= 5000 ? ms + 1000 : ms;
395
- return new Promise((resolve, reject) => {
396
- const url = `https://${this.getApiUrl()}/api/2.0/jobs/runs/get?run_id=${run}`;
397
- const request = new node_fetch_1.Request(url, {
398
- headers: new node_fetch_1.Headers({
399
- Accept: '*/*',
400
- Authorization: `Bearer ${this.getApiToken()}`,
401
- }),
402
- });
403
- this
404
- .wait(ms)
405
- .then(() => {
406
- this
407
- .fetch(request)
408
- .then((response) => {
409
- response
410
- .json()
411
- .then((body) => {
412
- const { state } = body;
413
- if (state.life_cycle_state === 'TERMINATED' &&
414
- state.result_state === 'SUCCESS') {
415
- resolve(state.result_state);
416
- }
417
- else if (state.life_cycle_state === 'INTERNAL_ERROR' ||
418
- state.result_state === 'FAILED' ||
419
- state.result_state === 'TIMEDOUT' ||
420
- state.result_state === 'CANCELED') {
421
- reject(state.result_state);
422
- }
423
- else {
424
- this
425
- .waitResult(run, ms)
426
- .then((res) => { resolve(res); })
427
- .catch((err) => { reject(err); });
428
- }
429
- });
430
- });
431
- });
432
- });
433
- }
434
- /**
435
- * Remove nodebook.
207
+ * Saves specified table to the S3 bucket and returns (async) csv files
208
+ * signed URLs array.
436
209
  */
437
- async deleteNotebook(p) {
438
- const url = `https://${this.getApiUrl()}/api/2.0/workspace/delete`;
439
- const request = new node_fetch_1.Request(url, {
440
- method: 'POST',
441
- headers: new node_fetch_1.Headers({
442
- Accept: '*/*',
443
- Authorization: `Bearer ${this.getApiToken()}`,
444
- }),
445
- body: JSON.stringify({
446
- path: p,
447
- recursive: true,
448
- }),
449
- });
450
- await this.fetch(request);
210
+ async getS3CsvFiles(table, columns, pathname) {
211
+ await this.createExternalTable(table, columns);
212
+ return this.getSignedS3Urls(pathname);
451
213
  }
452
214
  /**
453
- * Returns signed temporary URLs for AWS S3 objects.
215
+ * Returns S3 signed URLs of unloaded scv files.
454
216
  */
455
217
  async getSignedS3Urls(pathname) {
456
218
  const client = new client_s3_1.S3({
@@ -469,7 +231,7 @@ class DatabricksDriver extends jdbc_driver_1.JDBCDriver {
469
231
  throw new Error(`No content in specified path: ${pathname}`);
470
232
  }
471
233
  const csvFile = await Promise.all(list.Contents
472
- .filter(file => file.Key && /.csv.gz$/i.test(file.Key))
234
+ .filter(file => file.Key && /.csv$/i.test(file.Key))
473
235
  .map(async (file) => {
474
236
  const command = new client_s3_1.GetObjectCommand({
475
237
  Bucket: url.host,
@@ -477,159 +239,35 @@ class DatabricksDriver extends jdbc_driver_1.JDBCDriver {
477
239
  });
478
240
  return s3_request_presigner_1.getSignedUrl(client, command, { expiresIn: 3600 });
479
241
  }));
480
- return csvFile;
481
- }
482
- /**
483
- * Unload to AWS S3 bucket.
484
- */
485
- async unloadS3Command(table, columns, pathname) {
486
- let result = [];
487
- const filename = '/unload-preaggs.scala';
488
- const content = Buffer.from(`sc.hadoopConfiguration.set(
489
- "fs.s3n.awsAccessKeyId", "${this.config.awsKey}"
490
- )
491
- sc.hadoopConfiguration.set(
492
- "fs.s3n.awsSecretAccessKey","${this.config.awsSecret}"
493
- )
494
- sqlContext
495
- .sql("SELECT ${columns} FROM ${table}")
496
- .write
497
- .format("com.databricks.spark.csv")
498
- .option("header", "false")
499
- .option("codec", "org.apache.hadoop.io.compress.GzipCodec")
500
- .save("${pathname}")`, 'utf-8').toString('base64');
501
- const cluster = (await this.getClustersIds())[0];
502
- const notebook = await this.checkNotebook(filename);
503
- if (!notebook) {
504
- await this.importNotebook(filename, content);
505
- }
506
- if (!this._job) {
507
- this._job = await this.createJob(cluster, filename);
508
- }
509
- else {
510
- const exist = await this.checkJob(this._job);
511
- if (!exist) {
512
- this._job = await this.createJob(cluster, filename);
513
- }
514
- }
515
- const run = await this.runJob(this._job, 's3', columns, table, pathname, this.config.awsKey, this.config.awsSecret);
516
- await this.waitResult(run);
517
- // await this.deleteJob(job);
518
- result = await this.getSignedS3Urls(pathname);
519
- return result;
520
- }
521
- /**
522
- * Returns signed temporary URLs for Azure container objects.
523
- */
524
- async getSignedWasbsUrls(pathname) {
525
- const csvFile = [];
526
- const [container, account] = pathname.split('wasbs://')[1].split('.blob')[0].split('@');
527
- const foldername = pathname.split(`${this.config.exportBucket}/`)[1];
528
- const expr = new RegExp(`${foldername}\\/.*\\.csv.gz$`, 'i');
529
- const credential = new storage_blob_1.StorageSharedKeyCredential(account, this.config.azureKey);
530
- const blobClient = new storage_blob_1.BlobServiceClient(`https://${account}.blob.core.windows.net`, credential);
531
- const containerClient = blobClient.getContainerClient(container);
532
- const blobsList = containerClient.listBlobsFlat({ prefix: foldername });
533
- for await (const blob of blobsList) {
534
- if (blob.name && expr.test(blob.name)) {
535
- const sas = storage_blob_1.generateBlobSASQueryParameters({
536
- containerName: container,
537
- blobName: blob.name,
538
- permissions: storage_blob_1.ContainerSASPermissions.parse('r'),
539
- startsOn: new Date(new Date().valueOf()),
540
- expiresOn: new Date(new Date().valueOf() + 1000 * 60 * 60),
541
- protocol: storage_blob_1.SASProtocol.Https,
542
- version: '2020-08-04',
543
- }, credential).toString();
544
- csvFile.push(`https://${account}.blob.core.windows.net/${container}/${blob.name}?${sas}`);
545
- }
242
+ if (csvFile.length === 0) {
243
+ throw new Error('No CSV files were exported to the specified bucket. ' +
244
+ 'Please check your export bucket configuration.');
546
245
  }
547
246
  return csvFile;
548
247
  }
549
248
  /**
550
- * Unload to Azure Blob Container bucket.
551
- */
552
- async unloadWasbsCommand(table, columns, pathname) {
553
- let result = [];
554
- const filename = '/unload-preaggs.scala';
555
- const storage = pathname.split('@')[1].split('.')[0];
556
- const content = Buffer.from(`
557
- dbutils.widgets.text("azureStorage", "azureStorage", "azureStorage")
558
- dbutils.widgets.text("azureKey", "azureKey", "azureKey")
559
- dbutils.widgets.text("columns", "columns", "columns")
560
- dbutils.widgets.text("table", "table", "table")
561
- dbutils.widgets.text("pathname", "pathname", "pathname")
562
-
563
- val azureStorage = dbutils.widgets.get("azureStorage")
564
- val azureKey = dbutils.widgets.get("azureKey")
565
- val columns = dbutils.widgets.get("columns")
566
- val table = dbutils.widgets.get("table")
567
- val pathname = dbutils.widgets.get("pathname")
568
-
569
- spark.conf.set(
570
- "fs.azure.account.key." + azureStorage + ".blob.core.windows.net",
571
- azureKey
572
- )
573
-
574
- sqlContext
575
- .sql("SELECT " + columns + " FROM " + table)
576
- .write
577
- .format("com.databricks.spark.csv")
578
- .option("header", "false")
579
- .option("codec", "org.apache.hadoop.io.compress.GzipCodec")
580
- .save(pathname)
581
- `, 'utf-8').toString('base64');
582
- const cluster = (await this.getClustersIds())[0];
583
- const notebook = await this.checkNotebook(filename);
584
- if (!notebook) {
585
- await this.importNotebook(filename, content);
586
- }
587
- if (!this._job) {
588
- this._job = await this.createJob(cluster, filename);
589
- }
590
- else {
591
- const exist = await this.checkJob(this._job);
592
- if (!exist) {
593
- this._job = await this.createJob(cluster, filename);
594
- }
595
- }
596
- const run = await this.runJob(this._job, 'azure', columns, table, pathname, undefined, undefined, storage, this.config.azureKey);
597
- await this.waitResult(run);
598
- // await this.deleteJob(job);
599
- result = await this.getSignedWasbsUrls(pathname);
600
- return result;
601
- }
602
- /**
603
- * Unload table to bucket.
604
- */
605
- async unloadCommand(table, columns, pathname) {
606
- let res;
607
- switch (this.config.bucketType) {
608
- case 's3':
609
- res = await this.unloadS3Command(table, columns, pathname);
610
- break;
611
- case 'azure':
612
- res = await this.unloadWasbsCommand(table, columns, pathname);
613
- break;
614
- default:
615
- throw new Error(`Unsupported export bucket type: ${this.config.bucketType}`);
616
- }
617
- return res;
618
- }
619
- /**
620
- * Saves pre-aggs table to the bucket and returns links to download
621
- * results.
249
+ * Saves specified table to the configured bucket. This requires Databricks
250
+ * cluster to be configured.
251
+ *
252
+ * For Azure blob storage you need to configure account access key in
253
+ * Cluster -> Configuration -> Advanced options
254
+ * (https://docs.databricks.com/data/data-sources/azure/azure-storage.html#access-azure-blob-storage-directly)
255
+ *
256
+ * `fs.azure.account.key.<storage-account-name>.blob.core.windows.net <storage-account-access-key>`
257
+ *
258
+ * For S3 bucket storage you need to configure AWS access key and secret in
259
+ * Cluster -> Configuration -> Advanced options
260
+ * (https://docs.databricks.com/data/data-sources/aws/amazon-s3.html#access-s3-buckets-directly)
261
+ *
262
+ * `fs.s3a.access.key <aws-access-key>`
263
+ * `fs.s3a.secret.key <aws-secret-key>`
622
264
  */
623
- async unload(tableName) {
624
- const types = await this.tableColumnTypes(tableName);
625
- const columns = types.map(t => t.name).join(', ');
626
- const pathname = `${this.config.exportBucket}/${tableName}.csv`;
627
- const csvFile = await this.unloadCommand(tableName, columns, pathname);
628
- return {
629
- csvFile,
630
- types,
631
- csvNoHeader: true,
632
- };
265
+ async createExternalTable(table, columns) {
266
+ await this.query(`
267
+ CREATE TABLE ${table}_csv_export
268
+ USING CSV LOCATION '${this.config.exportBucketMountDir || this.config.exportBucket}/${table}.csv'
269
+ AS SELECT ${columns} FROM ${table}
270
+ `, []);
633
271
  }
634
272
  }
635
273
  exports.DatabricksDriver = DatabricksDriver;
@@ -1 +1 @@
1
- {"version":3,"file":"DatabricksDriver.js","sourceRoot":"","sources":["../../src/DatabricksDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatabricksDriver.js","sourceRoot":"","sources":["../../src/DatabricksDriver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@cubejs-backend/databricks-jdbc-driver",
3
3
  "description": "Cube.js Databricks database driver",
4
4
  "author": "Cube Dev, Inc.",
5
- "version": "0.30.22",
5
+ "version": "0.30.25",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",
@@ -31,10 +31,10 @@
31
31
  "@aws-sdk/client-s3": "^3.49.0",
32
32
  "@aws-sdk/s3-request-presigner": "^3.49.0",
33
33
  "@azure/storage-blob": "^12.9.0",
34
- "@cubejs-backend/jdbc-driver": "^0.30.20",
35
- "@cubejs-backend/query-orchestrator": "^0.30.20",
36
- "@cubejs-backend/schema-compiler": "^0.30.20",
37
- "@cubejs-backend/shared": "^0.30.20",
34
+ "@cubejs-backend/jdbc-driver": "^0.30.25",
35
+ "@cubejs-backend/query-orchestrator": "^0.30.25",
36
+ "@cubejs-backend/schema-compiler": "^0.30.25",
37
+ "@cubejs-backend/shared": "^0.30.25",
38
38
  "inquirer": "^8.0.0",
39
39
  "node-fetch": "^2.6.1",
40
40
  "ramda": "^0.27.1",
@@ -61,5 +61,5 @@
61
61
  "jest": {
62
62
  "testEnvironment": "node"
63
63
  },
64
- "gitHead": "291e20ec661b3b99e291e463bd5f92692e6eafe5"
64
+ "gitHead": "fcbfc6901ed8abb67729da562e830fe9f957a004"
65
65
  }