|
|
@ -30,12 +30,7 @@ var insertStrArray = make([]string, 0)
|
|
|
|
var pkStrArray = make([]string, 0)
|
|
|
|
var pkStrArray = make([]string, 0)
|
|
|
|
|
|
|
|
|
|
|
|
//缓存表的结构
|
|
|
|
//缓存表的结构
|
|
|
|
type CacheFieldStruct struct {
|
|
|
|
var cacheFieldKeys []string
|
|
|
|
cacheFieldKeys []string
|
|
|
|
|
|
|
|
tableId int
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var CacheFieldBean CacheFieldStruct
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
func main() {
|
|
|
|
//TODO
|
|
|
|
//TODO
|
|
|
@ -61,6 +56,10 @@ func main() {
|
|
|
|
indexName := tableList[i]["table_name"].(string)
|
|
|
|
indexName := tableList[i]["table_name"].(string)
|
|
|
|
//预热数据表的列名
|
|
|
|
//预热数据表的列名
|
|
|
|
getFields(int(tableId))
|
|
|
|
getFields(int(tableId))
|
|
|
|
|
|
|
|
//清空重新导入
|
|
|
|
|
|
|
|
sql = "truncate table " + indexName
|
|
|
|
|
|
|
|
pgDb.SQL(sql).Execute()
|
|
|
|
|
|
|
|
|
|
|
|
// 当前表的主键是什么,目前只支持单业务主键,复合主键的不支持
|
|
|
|
// 当前表的主键是什么,目前只支持单业务主键,复合主键的不支持
|
|
|
|
sql = `select field_name from t_dw_table_field where table_id=? and is_pk=1`
|
|
|
|
sql = `select field_name from t_dw_table_field where table_id=? and is_pk=1`
|
|
|
|
list, _ := mysqlDb.SQL(sql, tableId).Query().List()
|
|
|
|
list, _ := mysqlDb.SQL(sql, tableId).Query().List()
|
|
|
@ -111,7 +110,7 @@ func main() {
|
|
|
|
//批量执行
|
|
|
|
//批量执行
|
|
|
|
batchSave(indexName, pk)
|
|
|
|
batchSave(indexName, pk)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
fmt.Println("索引"+indexName+"同步完成!")
|
|
|
|
fmt.Println("索引" + indexName + "同步完成!")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -122,16 +121,15 @@ func main() {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
func getFields(tableId int) {
|
|
|
|
func getFields(tableId int) {
|
|
|
|
//清空
|
|
|
|
//清空
|
|
|
|
CacheFieldBean.cacheFieldKeys = CacheFieldBean.cacheFieldKeys[:]
|
|
|
|
cacheFieldKeys = cacheFieldKeys[0:0]
|
|
|
|
//填充
|
|
|
|
//填充
|
|
|
|
sql := `select field_name from t_dw_table_field where table_id=? order by sort_id,field_name`
|
|
|
|
sql := `select field_name from t_dw_table_field where table_id=? order by sort_id,field_name`
|
|
|
|
list, _ := mysqlDb.SQL(sql, tableId).Query().List()
|
|
|
|
list, _ := mysqlDb.SQL(sql, tableId).Query().List()
|
|
|
|
|
|
|
|
|
|
|
|
for i := range list {
|
|
|
|
for i := range list {
|
|
|
|
fieldName := list[i]["field_name"].(string)
|
|
|
|
fieldName := list[i]["field_name"].(string)
|
|
|
|
CacheFieldBean.cacheFieldKeys = append(CacheFieldBean.cacheFieldKeys, fieldName)
|
|
|
|
cacheFieldKeys = append(cacheFieldKeys, fieldName)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
CacheFieldBean.tableId = tableId
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//后续优化为到达一定的阀值再提交一次,初步定为200一次
|
|
|
|
//后续优化为到达一定的阀值再提交一次,初步定为200一次
|
|
|
@ -152,7 +150,7 @@ func addRecord(pk string, jsonStr string) {
|
|
|
|
//另一个任务是组装insertStrArray,准备批量提交
|
|
|
|
//另一个任务是组装insertStrArray,准备批量提交
|
|
|
|
var lineSql = ""
|
|
|
|
var lineSql = ""
|
|
|
|
//根据key从m中拿元素,就是按顺序拿了
|
|
|
|
//根据key从m中拿元素,就是按顺序拿了
|
|
|
|
for _, k := range CacheFieldBean.cacheFieldKeys {
|
|
|
|
for _, k := range cacheFieldKeys {
|
|
|
|
switch mymap[k].(type) {
|
|
|
|
switch mymap[k].(type) {
|
|
|
|
case string:
|
|
|
|
case string:
|
|
|
|
lineSql += "'" + mymap[k].(string) + "',"
|
|
|
|
lineSql += "'" + mymap[k].(string) + "',"
|
|
|
@ -190,7 +188,7 @@ func batchSave(tableName string, pkName string) {
|
|
|
|
//插入
|
|
|
|
//插入
|
|
|
|
sql = `insert into ` + tableName + "("
|
|
|
|
sql = `insert into ` + tableName + "("
|
|
|
|
//根据key从m中拿元素,就是按顺序拿了
|
|
|
|
//根据key从m中拿元素,就是按顺序拿了
|
|
|
|
for _, k := range CacheFieldBean.cacheFieldKeys {
|
|
|
|
for _, k := range cacheFieldKeys {
|
|
|
|
sql += k + ","
|
|
|
|
sql += k + ","
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sql += "uuid"
|
|
|
|
sql += "uuid"
|
|
|
|