20
20
function runQuery ( ) {
21
21
// Replace this value with the project ID listed in the Google
22
22
// Cloud Platform project.
23
- var projectId = 'XXXXXXXX' ;
23
+ const projectId = 'XXXXXXXX' ;
24
24
25
- var request = {
25
+ const request = {
26
+ // TODO (developer) - Replace query with yours
26
27
query : 'SELECT TOP(word, 300) AS word, COUNT(*) AS word_count ' +
27
28
'FROM `publicdata.samples.shakespeare` WHERE LENGTH(word) > 10;' ,
28
29
useLegacySql : false
29
30
} ;
30
- var queryResults = BigQuery . Jobs . query ( request , projectId ) ;
31
- var jobId = queryResults . jobReference . jobId ;
31
+ let queryResults = BigQuery . Jobs . query ( request , projectId ) ;
32
+ const jobId = queryResults . jobReference . jobId ;
32
33
33
34
// Check on status of the Query Job.
34
- var sleepTimeMs = 500 ;
35
+ let sleepTimeMs = 500 ;
35
36
while ( ! queryResults . jobComplete ) {
36
37
Utilities . sleep ( sleepTimeMs ) ;
37
38
sleepTimeMs *= 2 ;
38
39
queryResults = BigQuery . Jobs . getQueryResults ( projectId , jobId ) ;
39
40
}
40
41
41
42
// Get all the rows of results.
42
- var rows = queryResults . rows ;
43
+ let rows = queryResults . rows ;
43
44
while ( queryResults . pageToken ) {
44
45
queryResults = BigQuery . Jobs . getQueryResults ( projectId , jobId , {
45
46
pageToken : queryResults . pageToken
46
47
} ) ;
47
48
rows = rows . concat ( queryResults . rows ) ;
48
49
}
49
50
50
- if ( rows ) {
51
- var spreadsheet = SpreadsheetApp . create ( 'BiqQuery Results' ) ;
52
- var sheet = spreadsheet . getActiveSheet ( ) ;
51
+ if ( ! rows ) {
52
+ Logger . log ( 'No rows returned.' ) ;
53
+ return ;
54
+ }
55
+ const spreadsheet = SpreadsheetApp . create ( 'BiqQuery Results' ) ;
56
+ const sheet = spreadsheet . getActiveSheet ( ) ;
53
57
54
- // Append the headers.
55
- var headers = queryResults . schema . fields . map ( function ( field ) {
56
- return field . name ;
57
- } ) ;
58
- sheet . appendRow ( headers ) ;
58
+ // Append the headers.
59
+ const headers = queryResults . schema . fields . map ( function ( field ) {
60
+ return field . name ;
61
+ } ) ;
62
+ sheet . appendRow ( headers ) ;
59
63
60
- // Append the results.
61
- var data = new Array ( rows . length ) ;
62
- for ( var i = 0 ; i < rows . length ; i ++ ) {
63
- var cols = rows [ i ] . f ;
64
- data [ i ] = new Array ( cols . length ) ;
65
- for ( var j = 0 ; j < cols . length ; j ++ ) {
66
- data [ i ] [ j ] = cols [ j ] . v ;
67
- }
64
+ // Append the results.
65
+ var data = new Array ( rows . length ) ;
66
+ for ( let i = 0 ; i < rows . length ; i ++ ) {
67
+ const cols = rows [ i ] . f ;
68
+ data [ i ] = new Array ( cols . length ) ;
69
+ for ( let j = 0 ; j < cols . length ; j ++ ) {
70
+ data [ i ] [ j ] = cols [ j ] . v ;
68
71
}
69
- sheet . getRange ( 2 , 1 , rows . length , headers . length ) . setValues ( data ) ;
70
-
71
- Logger . log ( 'Results spreadsheet created: %s' ,
72
- spreadsheet . getUrl ( ) ) ;
73
- } else {
74
- Logger . log ( 'No rows returned.' ) ;
75
72
}
73
+ sheet . getRange ( 2 , 1 , rows . length , headers . length ) . setValues ( data ) ;
74
+
75
+ Logger . log ( 'Results spreadsheet created: %s' ,
76
+ spreadsheet . getUrl ( ) ) ;
76
77
}
77
78
// [END apps_script_bigquery_run_query]
78
79
@@ -83,17 +84,17 @@ function runQuery() {
83
84
function loadCsv ( ) {
84
85
// Replace this value with the project ID listed in the Google
85
86
// Cloud Platform project.
86
- var projectId = 'XXXXXXXX' ;
87
+ const projectId = 'XXXXXXXX' ;
87
88
// Create a dataset in the BigQuery UI (https://bigquery.cloud.google.com)
88
89
// and enter its ID below.
89
- var datasetId = 'YYYYYYYY' ;
90
+ const datasetId = 'YYYYYYYY' ;
90
91
// Sample CSV file of Google Trends data conforming to the schema below.
91
92
// https://docs.google.com/file/d/0BwzA1Orbvy5WMXFLaTR1Z1p2UDg/edit
92
- var csvFileId = '0BwzA1Orbvy5WMXFLaTR1Z1p2UDg' ;
93
+ const csvFileId = '0BwzA1Orbvy5WMXFLaTR1Z1p2UDg' ;
93
94
94
95
// Create the table.
95
- var tableId = 'pets_' + new Date ( ) . getTime ( ) ;
96
- var table = {
96
+ const tableId = 'pets_' + new Date ( ) . getTime ( ) ;
97
+ let table = {
97
98
tableReference : {
98
99
projectId : projectId ,
99
100
datasetId : datasetId ,
@@ -108,15 +109,18 @@ function loadCsv() {
108
109
]
109
110
}
110
111
} ;
111
- table = BigQuery . Tables . insert ( table , projectId , datasetId ) ;
112
- Logger . log ( 'Table created: %s' , table . id ) ;
113
-
112
+ try {
113
+ table = BigQuery . Tables . insert ( table , projectId , datasetId ) ;
114
+ Logger . log ( 'Table created: %s' , table . id ) ;
115
+ } catch ( err ) {
116
+ Logger . log ( 'unable to create table' ) ;
117
+ }
114
118
// Load CSV data from Drive and convert to the correct format for upload.
115
- var file = DriveApp . getFileById ( csvFileId ) ;
116
- var data = file . getBlob ( ) . setContentType ( 'application/octet-stream' ) ;
119
+ const file = DriveApp . getFileById ( csvFileId ) ;
120
+ const data = file . getBlob ( ) . setContentType ( 'application/octet-stream' ) ;
117
121
118
122
// Create the data upload job.
119
- var job = {
123
+ const job = {
120
124
configuration : {
121
125
load : {
122
126
destinationTable : {
@@ -128,8 +132,12 @@ function loadCsv() {
128
132
}
129
133
}
130
134
} ;
131
- job = BigQuery . Jobs . insert ( job , projectId , data ) ;
132
- Logger . log ( 'Load job started. Check on the status of it here: ' +
135
+ try {
136
+ BigQuery . Jobs . insert ( job , projectId , data ) ;
137
+ Logger . log ( 'Load job started. Check on the status of it here: ' +
133
138
'https://bigquery.cloud.google.com/jobs/%s' , projectId ) ;
139
+ } catch ( err ) {
140
+ Logger . log ( 'unable to insert job' ) ;
141
+ }
134
142
}
135
143
// [END apps_script_bigquery_load_csv]
0 commit comments