|
@@ -54,6 +54,9 @@ public class FlatTagHandler {
|
|
|
@Value("${dbcluster.clickhouse}")
|
|
|
private String[] clickhouseDbCluster;
|
|
|
|
|
|
+ @Value("${dbcluster.clickhouse-etl}")
|
|
|
+ private String clickhouseDbEtl;
|
|
|
+
|
|
|
@Value("${spring.datasource.dynamic.datasource.clickhouse.username}")
|
|
|
private String clickhouseUserName;
|
|
|
@Value("${spring.datasource.dynamic.datasource.clickhouse.password}")
|
|
@@ -97,7 +100,7 @@ public class FlatTagHandler {
|
|
|
* @param columnList 字段集合
|
|
|
*/
|
|
|
private void shellToCluster(String month,List<String> columnList){
|
|
|
- String firstDb=clickhouseDbCluster[0];
|
|
|
+ //String firstDb=clickhouseDbCluster[0];
|
|
|
//System.out.println(firstDb);
|
|
|
//按手机号 查找分段
|
|
|
Set<String> setps=new HashSet<>();
|
|
@@ -120,29 +123,27 @@ public class FlatTagHandler {
|
|
|
String userIdSql= leftUserId == null || rightUserId == null ? "" : String.format(" and USERID_V>=toString(%s) and USERID_V<toString(%s)", leftUserId, rightUserId);
|
|
|
|
|
|
StrBuilder builder=new StrBuilder();
|
|
|
- //如果是向本机插入
|
|
|
- if(i==0){
|
|
|
- builder.appendLn("insert into " + cluTableName + "(")
|
|
|
- .appendLn(String.join(",", columnList))
|
|
|
- .appendLn(")")
|
|
|
- .appendLn("select")
|
|
|
+// //如果是向本机插入
|
|
|
+// if(i==0){
|
|
|
+// builder.appendLn("insert into " + cluTableName + "(")
|
|
|
// .appendLn(String.join(",", columnList))
|
|
|
- .appendLn(_dealSelectColumnSql(columnList))
|
|
|
- .appendLn("\nfrom ads." + TagKit.getTagTempTable(tempTableName,month))
|
|
|
- .appendLn("where THEMONTH_V = '"+month+"' "+userIdSql);
|
|
|
- _shellToCluster(new ShellCommond(clickhouseDbCluster[i],i==0,false,builder.toString()));
|
|
|
- }else{
|
|
|
+// .appendLn(")")
|
|
|
+// .appendLn("select")
|
|
|
+// .appendLn(_dealSelectColumnSql(columnList))
|
|
|
+// .appendLn("\nfrom ads." + TagKit.getTagTempTable(tempTableName,month))
|
|
|
+// .appendLn("where THEMONTH_V = '"+month+"' "+userIdSql);
|
|
|
+// _shellToCluster(new ShellCommond(clickhouseDbCluster[i],i==0,false,builder.toString()));
|
|
|
+// }else{
|
|
|
builder.append("echo 'select ")
|
|
|
-// .append(String.join(",", columnList))
|
|
|
.appendLn(_dealSelectColumnSql(columnList))
|
|
|
.append(String.format(" from ads.%s where THEMONTH_V = toString(%s) %s' | ",TagKit.getTagTempTable(tempTableName,month),month,userIdSql))
|
|
|
- .append(String.format(" curl %s:8123?database=ads -u%s:%s -d @- | ",firstDb,clickhouseUserName,clickhousePassWord))
|
|
|
+ .append(String.format(" curl %s:8123?database=ads -u%s:%s -d @- | ",clickhouseDbEtl,clickhouseUserName,clickhousePassWord))
|
|
|
.append(String.format(" docker run -i --rm yandex/clickhouse-client --host %s --port 9007 --user %s --password %s --input_format_allow_errors_num=100",clickhouseDbCluster[i],clickhouseUserName,clickhousePassWord))
|
|
|
.append(String.format(" --query='INSERT INTO ads.%s( ",cluTableName))
|
|
|
.append(String.join(",", columnList))
|
|
|
.appendLn(") FORMAT TabSeparated'");
|
|
|
_shellToCluster(new ShellCommond(clickhouseDbCluster[i],i==0,false,builder.toString()));
|
|
|
- }
|
|
|
+// }
|
|
|
}
|
|
|
} catch (IOException | InterruptedException e) {
|
|
|
log.info(e.getMessage());
|