Add an insertedat date
This commit is contained in:
10
main.go
10
main.go
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user