Загрузка данных
indexer {
mem_limit = 1024M
max_iops = 100
max_iosize = 1M
}
#
# Common PostgreSQL source settings
#
source pg_main_base {
type = pgsql
sql_host = {{ sql_host }}
sql_user = {{ sql_user }}
sql_pass = {{ sql_pass }}
sql_db = {{ sql_db }}
sql_port = 5432
sql_range_step = 100000
}
#
# MAIN 01
#
source pg_main_01 : pg_main_base {
sql_query_range = \
SELECT 1, 25000000
sql_query = \
SELECT \
id, \
message_id, \
subject, \
sent_timestamp, \
header_from, \
header_to, \
envelope_from \
FROM public.mail_archive_email \
WHERE id >= $start
AND id <= $end
}
table mail_main_01 {
type = plain
source = pg_main_01
path = /var/lib/manticore/mail_main_01
}
#
# MAIN 02
#
source pg_main_02 : pg_main_base {
sql_query_range = \
SELECT 25000001, 50000000
sql_query = \
SELECT \
id, \
message_id, \
subject, \
sent_timestamp, \
header_from, \
header_to, \
envelope_from \
FROM public.mail_archive_email \
WHERE id >= $start
AND id <= $end
}
table mail_main_02 {
type = plain
source = pg_main_02
path = /var/lib/manticore/mail_main_02
}
#
# MAIN 03
#
source pg_main_03 : pg_main_base {
sql_query_range = \
SELECT 50000001, 75000000
sql_query = \
SELECT \
id, \
message_id, \
subject, \
sent_timestamp, \
header_from, \
header_to, \
envelope_from \
FROM public.mail_archive_email \
WHERE id >= $start
AND id <= $end
}
table mail_main_03 {
type = plain
source = pg_main_03
path = /var/lib/manticore/mail_main_03
}
#
# MAIN 04
#
source pg_main_04 : pg_main_base {
sql_query_range = \
SELECT 75000001, 100000000
sql_query = \
SELECT \
id, \
message_id, \
subject, \
sent_timestamp, \
header_from, \
header_to, \
envelope_from \
FROM public.mail_archive_email \
WHERE id >= $start
AND id <= $end
}
table mail_main_04 {
type = plain
source = pg_main_04
path = /var/lib/manticore/mail_main_04
}
#
# MAIN 05
#
source pg_main_05 : pg_main_base {
sql_query_range = \
SELECT 100000001, 125000000
sql_query = \
SELECT \
id, \
message_id, \
subject, \
sent_timestamp, \
header_from, \
header_to, \
envelope_from \
FROM public.mail_archive_email \
WHERE id >= $start
AND id <= $end
}
table mail_main_05 {
type = plain
source = pg_main_05
path = /var/lib/manticore/mail_main_05
}
#
# MAIN 06
#
source pg_main_06 : pg_main_base {
sql_query_range = \
SELECT 125000001, 150000000
sql_query = \
SELECT \
id, \
message_id, \
subject, \
sent_timestamp, \
header_from, \
header_to, \
envelope_from \
FROM public.mail_archive_email \
WHERE id >= $start
AND id <= $end
}
table mail_main_06 {
type = plain
source = pg_main_06
path = /var/lib/manticore/mail_main_06
}
#
# MAIN 07
#
source pg_main_07 : pg_main_base {
sql_query_range = \
SELECT 150000001, 175000000
sql_query = \
SELECT \
id, \
message_id, \
subject, \
sent_timestamp, \
header_from, \
header_to, \
envelope_from \
FROM public.mail_archive_email \
WHERE id >= $start
AND id <= $end
}
table mail_main_07 {
type = plain
source = pg_main_07
path = /var/lib/manticore/mail_main_07
}
#
# MAIN 08
#
source pg_main_08 : pg_main_base {
sql_query_range = \
SELECT 175000001, 200000000
sql_query = \
SELECT \
id, \
message_id, \
subject, \
sent_timestamp, \
header_from, \
header_to, \
envelope_from \
FROM public.mail_archive_email \
WHERE id >= $start
AND id <= $end
}
table mail_main_08 {
type = plain
source = pg_main_08
path = /var/lib/manticore/mail_main_08
}
#
# MAIN 09
#
source pg_main_09 : pg_main_base {
sql_query_range = \
SELECT 200000001, 250000000
sql_query = \
SELECT \
id, \
message_id, \
subject, \
sent_timestamp, \
header_from, \
header_to, \
envelope_from \
FROM public.mail_archive_email \
WHERE id >= $start
AND id <= $end
}
table mail_main_09 {
type = plain
source = pg_main_09
path = /var/lib/manticore/mail_main_09
}
#
# DELTA
#
# Для delta нужен timestamp-based watermark.
# В данном варианте предполагаем, что в PostgreSQL есть:
#
# manticore_deltabreaker(
# index_name text primary key,
# created_at timestamptz
# )
#
source pg_delta : pg_main_base {
sql_query_range = \
SELECT \
EXTRACT(EPOCH FROM NOW() - INTERVAL '24 hours')::bigint, \
EXTRACT(EPOCH FROM NOW())::bigint
sql_query = \
SELECT \
id,
message_id,
subject,
sent_timestamp,
header_from,
header_to,
envelope_from
FROM public.mail_archive_email
WHERE EXTRACT(EPOCH FROM updated_at)::bigint >= $start
AND EXTRACT(EPOCH FROM updated_at)::bigint <= $end
sql_query_killlist = \
SELECT id
FROM public.mail_archive_email
WHERE EXTRACT(EPOCH FROM updated_at)::bigint >= $start
AND EXTRACT(EPOCH FROM updated_at)::bigint <= $end
}
table mail_delta {
type = plain
source = pg_delta
path = /var/lib/manticore/mail_delta
killlist_target = \
mail_main_01:kl, \
mail_main_02:kl, \
mail_main_03:kl, \
mail_main_04:kl, \
mail_main_05:kl, \
mail_main_06:kl, \
mail_main_07:kl, \
mail_main_08:kl, \
mail_main_09:kl
}
#
# ONE TABLE FOR APPLICATION
#
table mail_all {
type = distributed
local = mail_main_01
local = mail_main_02
local = mail_main_03
local = mail_main_04
local = mail_main_05
local = mail_main_06
local = mail_main_07
local = mail_main_08
local = mail_main_09
local = mail_delta
}
searchd {
listen = 0.0.0.0:9306:mysql41
listen = 0.0.0.0:9308:http
log = /var/log/manticore/searchd.log
query_log = /var/log/manticore/query.log
pid_file = /var/run/manticore/searchd.pid
binlog_path = /var/lib/manticore
}