Skip to content
Snippets Groups Projects

POC for ci analytics on ClickHouse

Closed Vladimir Shushlin requested to merge vshushlin/runner-ch-poc into master
@@ -3,6 +3,8 @@
module ClickHouse
module DataIngestion
class SyncCiFinishedBuildsService
# TODO: use exclusite lease or something to avoid concurrent execution
# TODO: limit number of records
def execute
builds_finished_since_last_sync
.each_batch(column: :finished_at, order_hint: :id) do |builds_batch|
@@ -28,7 +30,7 @@ def builds_finished_since_last_sync
def insert_builds(builds)
query = <<~SQL
INSERT INTO ci_finished_builds [(#{column_names.join(',')})] VALUES #{values(builds)}
INSERT INTO ci_finished_builds (#{column_names.join(',')}) VALUES #{values(builds)}
SQL
ClickHouse::Client.execute(query, :main)
end
Loading