dns clickhouse改造
This commit is contained in:
@@ -85,6 +85,10 @@ func (s *LogsIngestStore) List(ctx context.Context, f ListFilter) (rows []*LogsI
|
||||
if f.Day == "" {
|
||||
return nil, "", fmt.Errorf("clickhouse: day required")
|
||||
}
|
||||
dayNumber, err := normalizeDayNumber(f.Day)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
table := "logs_ingest"
|
||||
if s.client.cfg.Database != "" && s.client.cfg.Database != "default" {
|
||||
table = quoteIdent(s.client.cfg.Database) + "." + quoteIdent("logs_ingest")
|
||||
@@ -92,7 +96,7 @@ func (s *LogsIngestStore) List(ctx context.Context, f ListFilter) (rows []*LogsI
|
||||
table = quoteIdent(table)
|
||||
}
|
||||
|
||||
conditions := []string{"toDate(timestamp) = '" + escapeString(f.Day) + "'"}
|
||||
conditions := []string{"toYYYYMMDD(timestamp) = " + strconv.Itoa(dayNumber)}
|
||||
if f.HourFrom != "" {
|
||||
if _, err := strconv.Atoi(f.HourFrom); err == nil {
|
||||
conditions = append(conditions, "toHour(timestamp) >= "+f.HourFrom)
|
||||
@@ -240,6 +244,22 @@ func escapeString(s string) string {
|
||||
return strings.ReplaceAll(s, "'", "''")
|
||||
}
|
||||
|
||||
func normalizeDayNumber(day string) (int, error) {
|
||||
normalized := strings.TrimSpace(day)
|
||||
if normalized == "" {
|
||||
return 0, fmt.Errorf("clickhouse: day required")
|
||||
}
|
||||
normalized = strings.ReplaceAll(normalized, "-", "")
|
||||
if len(normalized) != 8 {
|
||||
return 0, fmt.Errorf("clickhouse: invalid day '%s'", day)
|
||||
}
|
||||
dayNumber, err := strconv.Atoi(normalized)
|
||||
if err != nil {
|
||||
return 0, fmt.Errorf("clickhouse: invalid day '%s'", day)
|
||||
}
|
||||
return dayNumber, nil
|
||||
}
|
||||
|
||||
func mapToLogsIngestRow(m map[string]interface{}) *LogsIngestRow {
|
||||
r := &LogsIngestRow{}
|
||||
u64 := func(key string) uint64 {
|
||||
|
||||
Reference in New Issue
Block a user