Add an insertedat date

This commit is contained in:
2026-01-08 22:45:54 +01:00
parent 58123ead70
commit 0499725d18

10
main.go
View File

@@ -10,6 +10,7 @@ import (
"strconv"
"strings"
"sync/atomic"
"time"
logger "git.site.quack-lab.dev/dave/cylogger"
utils "git.site.quack-lab.dev/dave/cyutils"
@@ -67,7 +68,8 @@ func InitClickhouseTable() error {
price UInt64,
volume_remain UInt64,
volume_total UInt64,
is_buy_order Bool
is_buy_order Bool,
inserted_at DateTime
)
ENGINE = MergeTree()
ORDER BY (type_id, issued, order_id)
@@ -79,6 +81,7 @@ func InitClickhouseTable() error {
indices := []string{
"CREATE INDEX IF NOT EXISTS idx_price_skip_index ON market_orders (price, type_id) TYPE minmax GRANULARITY 4",
"CREATE INDEX IF NOT EXISTS idx_buy_order_skip_index ON market_orders (is_buy_order, type_id) TYPE set(4) GRANULARITY 4",
"CREATE INDEX IF NOT EXISTS idx_inserted_at_skip_index ON market_orders (inserted_at) TYPE minmax GRANULARITY 4",
}
// Create table
@@ -189,15 +192,16 @@ func FetchMarketPage(page int) (MarketResponse, error) {
func InsertClickhouse(marketData MarketResponse) error {
// Build ClickHouse batch INSERT query
var insertParts = []string{
"INSERT INTO market_orders (order_id,type_id,issued,price,volume_remain,volume_total,is_buy_order)",
"INSERT INTO market_orders (order_id,type_id,issued,price,volume_remain,volume_total,is_buy_order,inserted_at)",
"VALUES",
}
values := make([]string, 0, len(marketData))
insertedAt := time.Now().Format("2006-01-02 15:04:05")
for _, j := range marketData {
// Format issued as 'YYYY-MM-DD HH:MM:SS'
issued := j.Issued.Format("2006-01-02 15:04:05")
val := fmt.Sprintf("(%d, %d, '%s', %f, %d, %d, %t)", j.OrderID, j.TypeID, issued, j.Price, j.VolumeRemain, j.VolumeTotal, j.IsBuyOrder)
val := fmt.Sprintf("(%d, %d, '%s', %f, %d, %d, %t, '%s')", j.OrderID, j.TypeID, issued, j.Price, j.VolumeRemain, j.VolumeTotal, j.IsBuyOrder, insertedAt)
values = append(values, val)
}