Skip to content

Commit bc123b8

Browse files
committed
| 2023.01.01 | 新增GCP BigQuery/Dataflow JJS/QlikSense BI模板。
1 parent 107c103 commit bc123b8

File tree

8 files changed

+235
-61
lines changed

8 files changed

+235
-61
lines changed

README.md

Lines changed: 59 additions & 56 deletions
Large diffs are not rendered by default.

generator-web/src/main/resources/application-bejson.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ spring:
4747
#mvc:
4848
# static-path-pattern: /statics/**
4949
OEM:
50-
version: 3.2
50+
version: 2023.1
5151
header: SQL转Java JPA、MYBATIS实现类代码生成平台
5252
keywords: sql转实体类,sql转DAO,SQL转service,SQL转JPA实现,SQL转MYBATIS实现
5353
title: JAVA在线代码生成

generator-web/src/main/resources/application-dev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ spring:
4747
#mvc:
4848
# static-path-pattern: /statics/**
4949
OEM:
50-
version: 3.2
50+
version: 2023.1
5151
header: SQL转Java JPA、MYBATIS实现类代码生成平台
5252
keywords: sql转实体类,sql转DAO,SQL转service,SQL转JPA实现,SQL转MYBATIS实现
5353
title: JAVA代码生成平台

generator-web/src/main/resources/application-devtools.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ spring:
4747
#mvc:
4848
# static-path-pattern: /statics/**
4949
OEM:
50-
version: 3.2
50+
version: 2023.1
5151
header: SQL转Java JPA、MYBATIS实现类代码生成平台
5252
keywords: sql转实体类,sql转DAO,SQL转service,SQL转JPA实现,SQL转MYBATIS实现
5353
title: JAVA在线代码生成

generator-web/src/main/resources/template.json

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,6 @@
230230
}
231231
]
232232
},
233-
234233
{
235234
"group": "jpa-starp",
236235
"templates": [{
@@ -249,5 +248,28 @@
249248
"description": "jpacontroller"
250249
}
251250
]
251+
},
252+
{
253+
"group": "bi",
254+
"templates": [{
255+
"id": "201",
256+
"name": "qliksense",
257+
"description": "qlik sense"
258+
}]
259+
},
260+
{
261+
"group": "cloud",
262+
"templates": [
263+
{
264+
"id": "301",
265+
"name": "bigquery",
266+
"description": "GCP BigQuery"
267+
},
268+
{
269+
"id": "302",
270+
"name": "dataflowjjs",
271+
"description": "GCP Dataflow JJS"
272+
}
273+
]
252274
}
253-
]
275+
]
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
//***************************
2+
//[${classInfo.classComment} - ${classInfo.tableName}]
3+
//AUTHOR ${authorName}
4+
//HISTORY ${.now?string('yyyy-MM-dd')}
5+
//***************************
6+
7+
//***************************
8+
//load all
9+
[${classInfo.tableName}]:
10+
LOAD * FROM ['LIB://QVD/${classInfo.className}.qvd'](qvd);
11+
12+
//***************************
13+
//load columns
14+
[${classInfo.tableName}]:
15+
LOAD
16+
<#list classInfo.fieldList as fieldItem >
17+
"${fieldItem.columnName}" as "${fieldItem.fieldName}"<#if fieldItem_has_next>,</#if>
18+
</#list>
19+
FROM
20+
['LIB://QVD/${classInfo.className}.qvd'](qvd);
21+
;
22+
23+
//load inline
24+
[${classInfo.tableName}]:
25+
LOAD * INLINE
26+
[
27+
<#list classInfo.fieldList as fieldItem >${fieldItem.columnName} <#if fieldItem_has_next>,</#if></#list>
28+
<#list classInfo.fieldList as fieldItem >${fieldItem.fieldName} <#if fieldItem_has_next>,</#if></#list>
29+
<#list classInfo.fieldList as fieldItem >${fieldItem.fieldComment} <#if fieldItem_has_next>,</#if></#list>
30+
];
31+
32+
//***************************
33+
//load from api data connection (wrap on)
34+
LIB CONNECT TO '${classInfo.tableName}_api';
35+
36+
RestConnectorMasterTable:
37+
SQL SELECT
38+
"__KEY_root",
39+
(SELECT
40+
<#list classInfo.fieldList as fieldItem >
41+
"${fieldItem.columnName}"
42+
</#list>
43+
"__FK_object"
44+
FROM "object" FK "__FK_object")
45+
FROM JSON (wrap on) "root" PK "__KEY_root"
46+
// WITH CONNECTION (
47+
// Url "https://localhost:8080/${classInfo.tableName}_api",
48+
// QUERY "page" "1",
49+
// QUERY "size" "100",
50+
// HTTPHEADER "token" "123456",
51+
// BODY "Post body here")
52+
;
53+
54+
[${classInfo.className}]:
55+
LOAD
56+
<#list classInfo.fieldList as fieldItem >
57+
[${fieldItem.columnName}] as [${fieldItem.fieldName}]
58+
</#list>
59+
[__FK_object] AS [__KEY_root]
60+
RESIDENT RestConnectorMasterTable
61+
WHERE NOT IsNull([__FK_stores]);
62+
63+
DROP TABLE [${classInfo.className}];
64+
DROP TABLE RestConnectorMasterTable;
65+
66+
//***************************
67+
//load from api data connection (wrap off)
68+
LIB CONNECT TO '${classInfo.tableName}_api';
69+
[${classInfo.className}]:
70+
SQL SELECT
71+
<#list classInfo.fieldList as fieldItem >
72+
[${fieldItem.fieldName}] as [${fieldItem.fieldName}]<#if fieldItem_has_next>,</#if>
73+
</#list>
74+
FROM JSON(wrap off) "${classInfo.className}"
75+
// WITH CONNECTION (
76+
// Url "https://localhost:8080/${classInfo.tableName}_api",
77+
// QUERY "page" "1",
78+
// QUERY "size" "100",
79+
// HTTPHEADER "token" "123456",
80+
// BODY "Post body here")
81+
;
82+
83+
//***************************
84+
//load from sql data connection
85+
LIB CONNECT TO '${classInfo.tableName}_db';
86+
87+
SQL SELECT
88+
<#list classInfo.fieldList as fieldItem >
89+
[${fieldItem.columnName}] as [${fieldItem.fieldName}]<#if fieldItem_has_next>,</#if>
90+
</#list>
91+
FROM
92+
${classInfo.tableName}
93+
WHERE
94+
Create_Time > '2023-01-01 00:00:00';
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
SELECT * FROM 'your_project.your_dataset.${tableName}' t
3+
order by t.id desc
4+
LIMIT 100
5+
;
6+
7+
SELECT * FROM 'your_project.your_dataset.${tableName}_error_records' t
8+
order by t.timestamp desc
9+
LIMIT 100
10+
;
11+
12+
bigquery table -> SCHEMA -> Edit as text , then input below text:
13+
[
14+
<#list classInfo.fieldList as fieldItem >
15+
{"name":"${fieldItem.columnName}",type:"STRING","mode":"NULLABLE","description": "${fieldItem.fieldName} - ${fieldItem.fieldComment}"}<#if fieldItem_has_next>,</#if>
16+
</#list>
17+
]
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/**
2+
* GCP - dataflow job jjs for [${classInfo.classComment} - ${classInfo.tableName}]
3+
* AUTHOR ${authorName}
4+
*
5+
* User-defined function (UDF) to transform events as part of a Dataflow template job.
6+
* upload to GCS and create dataflow job with this js file and method as 'process'
7+
* @param {string} inJson input Pub/Sub JSON message (stringified)
8+
* @return {string} outJson output JSON message (stringified)
9+
*/
10+
function process(inJson) {
11+
//for local js debug
12+
//var obj = JSON.parse(JSON.stringify(inJson));
13+
//for online jjs
14+
var obj = JSON.parse(inJson);
15+
var includePubsubMessage = obj.data && obj.attributes;
16+
var data = includePubsubMessage ? obj.data : obj;
17+
//debug and show error if you need special logic
18+
if(data.hasOwnProperty('show_error')){
19+
throw new ERROR("show_error:"+JSON.stringify(data))
20+
}
21+
// INSERT CUSTOM TRANSFORMATION LOGIC HERE
22+
var tableObj= {};
23+
tableObj.insert_time=new Date().toUTCString()
24+
<#list classInfo.fieldList as fieldItem >
25+
tableObj.${fieldItem.columnName}=data.${fieldItem.fieldName}
26+
</#list>
27+
return JSON.stringify(tableObj);
28+
}
29+
30+
//field name = field name
31+
<#list classInfo.fieldList as fieldItem >
32+
tableObj.${fieldItem.fieldName}=data.${fieldItem.fieldName}
33+
</#list>
34+
35+
//column name = column name
36+
<#list classInfo.fieldList as fieldItem >
37+
tableObj.${fieldItem.columnName}=data.${fieldItem.columnName}
38+
</#list>

0 commit comments

Comments
 (0)