Add equity prints ingestion

This commit is contained in:
dirtydishes 2025-12-27 19:21:01 -05:00
parent 488ae82ed6
commit 6a1f457028
9 changed files with 252 additions and 12 deletions

View file

@ -1,6 +1,15 @@
import { createClient, type ClickHouseClient } from "@clickhouse/client";
import type { OptionPrint } from "@islandflow/types";
import { normalizeOptionPrint, optionPrintsTableDDL, OPTION_PRINTS_TABLE } from "./option-prints";
import type { EquityPrint, OptionPrint } from "@islandflow/types";
import {
normalizeOptionPrint,
optionPrintsTableDDL,
OPTION_PRINTS_TABLE
} from "./option-prints";
import {
equityPrintsTableDDL,
EQUITY_PRINTS_TABLE,
normalizeEquityPrint
} from "./equity-prints";
export type ClickHouseOptions = {
url: string;
@ -26,6 +35,14 @@ export const ensureOptionPrintsTable = async (
});
};
export const ensureEquityPrintsTable = async (
client: ClickHouseClient
): Promise<void> => {
await client.exec({
query: equityPrintsTableDDL()
});
};
export const insertOptionPrint = async (
client: ClickHouseClient,
print: OptionPrint
@ -37,3 +54,15 @@ export const insertOptionPrint = async (
format: "JSONEachRow"
});
};
export const insertEquityPrint = async (
client: ClickHouseClient,
print: EquityPrint
): Promise<void> => {
const record = normalizeEquityPrint(print);
await client.insert({
table: EQUITY_PRINTS_TABLE,
values: [record],
format: "JSONEachRow"
});
};