Skip to content
Snippets Groups Projects
Commit e85f0f13 authored by Uku Taht's avatar Uku Taht
Browse files

Improve Clickhouse DDL

parent 941a91ec
No related branches found
No related tags found
No related merge requests found
...@@ -7,46 +7,52 @@ defmodule Plausible.ClickhouseRepo.Migrations.CreateEventsAndSessions do ...@@ -7,46 +7,52 @@ defmodule Plausible.ClickhouseRepo.Migrations.CreateEventsAndSessions do
end end
defp create_events() do defp create_events() do
create_if_not_exists table(:events, engine: "MergeTree() PARTITION BY toYYYYMM(timestamp) ORDER BY (name, domain, user_id, timestamp) SETTINGS index_granularity = 8192") do create_if_not_exists table(:events,
add :name, :string engine:
add :domain, :string "MergeTree() PARTITION BY toYYYYMM(timestamp) ORDER BY (domain, toDate(timestamp), user_id) SETTINGS index_granularity = 8192"
add :user_id, :UInt64 ) do
add :session_id, :UInt64 add(:name, :string)
add :hostname, :string add(:domain, :string)
add :pathname, :string add(:user_id, :UInt64)
add :referrer, :string add(:session_id, :UInt64)
add :referrer_source, :string add(:hostname, :string)
add :country_code, :"LowCardinality(FixedString(2))" add(:pathname, :string)
add :screen_size, :"LowCardinality(String)" add(:referrer, :string)
add :operating_system, :"LowCardinality(String)" add(:referrer_source, :string)
add :browser, :"LowCardinality(String)" add(:country_code, :"LowCardinality(FixedString(2))")
add(:screen_size, :"LowCardinality(String)")
add(:operating_system, :"LowCardinality(String)")
add(:browser, :"LowCardinality(String)")
add :timestamp, :naive_datetime add(:timestamp, :naive_datetime)
end end
end end
defp create_sessions() do defp create_sessions() do
create_if_not_exists table(:sessions, engine: "CollapsingMergeTree(sign) PARTITION BY toYYYYMM(start) ORDER BY (domain, user_id, session_id, start) SETTINGS index_granularity = 8192") do create_if_not_exists table(:sessions,
add :session_id, :UInt64 engine:
add :sign, :"Int8" "CollapsingMergeTree(sign) PARTITION BY toYYYYMM(start) ORDER BY (domain, toDate(start), user_id, session_id) SETTINGS index_granularity = 8192"
add :domain, :string ) do
add :user_id, :UInt64 add(:session_id, :UInt64)
add :hostname, :string add(:sign, :Int8)
add :is_bounce, :boolean add(:domain, :string)
add :entry_page, :string add(:user_id, :UInt64)
add :exit_page, :string add(:hostname, :string)
add :pageviews, :integer add(:is_bounce, :boolean)
add :events, :integer add(:entry_page, :string)
add :duration, :"UInt32" add(:exit_page, :string)
add :referrer, :string add(:pageviews, :integer)
add :referrer_source, :string add(:events, :integer)
add :country_code, :"LowCardinality(FixedString(2))" add(:duration, :UInt32)
add :screen_size, :"LowCardinality(String)" add(:referrer, :string)
add :operating_system, :"LowCardinality(String)" add(:referrer_source, :string)
add :browser, :"LowCardinality(String)" add(:country_code, :"LowCardinality(FixedString(2))")
add(:screen_size, :"LowCardinality(String)")
add(:operating_system, :"LowCardinality(String)")
add(:browser, :"LowCardinality(String)")
add :start, :naive_datetime add(:start, :naive_datetime)
add :timestamp, :naive_datetime add(:timestamp, :naive_datetime)
end end
end end
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment