View Source Pillar.BulkInsertBuffer (Pillar v0.37.0)
This module provides functionality for bulk inserts and buffering records
defmodule BulkToLogs do
use Pillar.BulkInsertBuffer,
pool: ClickhouseMaster,
table_name: "logs",
interval_between_inserts_in_seconds: 5,
on_errors: &__MODULE__.dump_to_file/2
def dump_to_file(_result, records) do
File.write("bad_inserts/2023-03-15 18:36:59.600590Z", inspect(records))
end
end
:ok = BulkToLogs.insert(%{value: "online", count: 133, datetime: DateTime.utc_now()})
:ok = BulkToLogs.insert(%{value: "online", count: 134, datetime: DateTime.utc_now()})
:ok = BulkToLogs.insert(%{value: "online", count: 132, datetime: DateTime.utc_now()})
....
# all this records will be inserted with 5 second interval