diff --git a/dsSupport/Test/ElasticsearchToGreenPlum/ElasticsearchToGreenPlum.go b/dsSupport/Test/ElasticsearchToGreenPlum/ElasticsearchToGreenPlum.go index 0fae34d2..74476b8c 100644 --- a/dsSupport/Test/ElasticsearchToGreenPlum/ElasticsearchToGreenPlum.go +++ b/dsSupport/Test/ElasticsearchToGreenPlum/ElasticsearchToGreenPlum.go @@ -2,6 +2,7 @@ package main import ( "context" + "dsSupport/Utils/CommonUtil" "dsSupport/Utils/PgUtil" "encoding/json" "fmt" @@ -46,7 +47,7 @@ func main() { resByte, _ := json.Marshal(result.Hits.Hits[i].Source) resStr := string(resByte) value := gjson.Get(resStr, "data_content") - fmt.Println(value.String()) + addRecord(indexName, value.String()) } //继续用的 scoll_id scrollId := result.ScrollId @@ -68,7 +69,7 @@ func main() { resByte, _ := json.Marshal(result.Hits.Hits[i].Source) resStr := string(resByte) value := gjson.Get(resStr, "data_content") - fmt.Println(value.String()) + addRecord(indexName, value.String()) } } else { //没有数据了 @@ -76,4 +77,42 @@ func main() { } } } +func addRecord(tableName string, jsonStr string) { + sql := `insert into ` + tableName + "(" + var mymap map[string]interface{} + if err := json.Unmarshal([]byte(jsonStr), &mymap); err == nil { + for key, _ := range mymap { + sql += key + "," + } + sql = sql[0 : len(sql)-1] + sql += ") values(" + for _, value := range mymap { + switch value.(type) { + case string: + sql += "'" + value.(string) + "'," + break + case int64: + sql += CommonUtil.ConvertInt64ToString(value.(int64)) + "," + break + case float64: + sql += fmt.Sprintf("%d", int64(value.(float64)))+ "," + break + default: + break + } + } + sql = sql[0 : len(sql)-1] + } else { + fmt.Println(err.Error()) + } + + sql += ");" + fmt.Println(sql) + _,err:=db.SQL(sql).Execute() + if err!=nil{ + fmt.Println("成功插入一条数据!") + }else{ + panic(err.Error()) + } +} diff --git a/dsSupport/Utils/CommonUtil/CommonUtil.go b/dsSupport/Utils/CommonUtil/CommonUtil.go index d07f1eac..9858b572 100644 --- a/dsSupport/Utils/CommonUtil/CommonUtil.go +++ b/dsSupport/Utils/CommonUtil/CommonUtil.go @@ -363,6 +363,9 @@ func ConvertIntegerArrayToStringArray(nums []int) []string { func ConvertInt64ToString(int64 int64) string { return strconv.FormatInt(int64, 10) } +func ConvertFloatt64ToString(float64 float64) string { + return strconv.FormatFloat(float64, 'E', -1, 64) +} /** 功能:将int转化为string