Конфигурация для версии с разделением данных (sharding)
Конфигурация для версии с разделением данных включает в себя следующие файлы:
1. Файл users.json
Файл users.json используется для настройки информации о пользователях, включая имена пользователей, пароли для клиентского и серверного доступа.
{
"users": [{
"user": "XXXX",
"client_pwd": "XXXXXX",
"server_pwd": "XXXXXX"
}, {
"user": "XXXX",
"client_pwd": "XXXXXX",
"server_pwd": "XXXXXX"
}]
}
Здесь «user» — это имя пользователя, «client_pwd» — пароль для входа на клиентскую часть Cetus, а «server_pwd» — пароль для доступа к серверной части Cetus.
Пример:
{
"users": [{
"user": "root",
"client_pwd": "123",
"server_pwd": "123456"
}, {
"user": "test",
"client_pwd": "456",
"server_pwd": "123456"
}]
}
В этом примере мы создали двух пользователей: root и test. У пользователя root пароль для клиентской части Cetus — 123, а пароль для серверной части — 123456. У пользователя test пароль для клиентской части — 456, а пароль для серверной части также 123456.
2. Файл variables.json
Cetus поддерживает настройку некоторых системных переменных на уровне сессии. В файле variables.json можно определить разрешённые значения и значения, которые будут обрабатываться без вывода.
{
"variables": [
{
"name": "XXXXX",
"type": "XXXX",
"allowed_values": ["XXX"]
},
{
"name": "XXXXX",
"type": "XXXX",
"allowed_values": ["XXX"],
"silent_values": ["XX"]
}
]
}
«Name» — название переменной, которую нужно настроить. «Type» — тип переменной (int, string или string-csv). «Allowed_values» — список разрешённых значений для этой переменной. «Silent_values» — значения, которые будут обработаны без вывода. Все элементы файла должны быть заключены в двойные кавычки.
Например:
{
"variables": [
{
"name": "sql_mode",
"type": "string-csv",
"allowed_values":
["STRICT_TRANS_TABLES",
"NO_AUTO_CREATE_USER",
"NO_ENGINE_SUBSTITUTION"
]
},
{
"name": "profiling",
"type": "int",
"allowed_values": ["0", "1"],
"silent_values": ["*"]
}
]
}
Мы настроили переменные sql_mode и profiling. Для переменной sql_mode разрешены значения STRICT_TRANS_TABLES, NO_AUTO_CREATE_USER и NO_ENGINE_SUBSTITUTION. Для переменной profiling разрешены значения 0 и 1, а все остальные значения будут обработаны без вывода.
3. Файл sharding.json
Этот файл содержит информацию о разделении данных. Он имеет следующую структуру:
{
"vdb": [
{
"id": X,
"type": "XXX",
"method": "XXXX",
"num": X,
"partitions": {"XXXX1": [X,X], "XXXX2": [X,X], "XXXX3": [X,X], "XXXX4": [X,X]}
},
{
"id": X,
"type": "XXX",
"method": "XXXXX",
"num": X,
"partitions": {"XXXX1": XXXXXX, "XXXX2": XXXXXX, "XXXX3": XXXXXX,"XXXX4": XXXXXX}
}
],
"table": [
{"vdb": X, "db": "XXXX", "table": "XXX", "pkey": "XX"},
{"vdb": X, "db": "XXXX", "table": "XXX", "pkey": "XX"},
{"vdb": X, "db": "XXXX", "table": "XXX", "pkey": "XX"},
{"vdb": X, "db": "XXXX", "table": "XXX", "pkey": "XX"}
]
"single_tables": [
{"table": "XXX", "db": "XXXX", "group": "XXXX1"},
{"table": "XXX", "db": "XXXX", "group": "data2"}
]
}
Структура файла:
Например:
{
"vdb": [
{
"id": 1,
"type": "char",
"method": "hash",
"num": 8,
"partitions": {"data1": [0,1], "data2": [2,3], "data3": [4,5], "data4": [6,7]}
},
{
"id": 2,
"type": "int",
"method": "range",
"num": 0,
"partitions": {"data1": 124999, "data2": 249999, "data3": 374999,"data4": 499999}
},
{
"id": 3,
"type": "datetime",
"method": "range",
"num": 0,
"partitions": {"data1": "2019-03-05 09:53:06", "data2": "2020-03-05 09:53:06", "data3": "2021-03-05 09:53:06","data4": "2022-03-05 09:53:06"}
}
],
"table": [
{"vdb": 1,
``` Критическая (по умолчанию), мы устанавливаем debug; эти опции обязательны для запуска, другие доступные настройки производительности см. в [Cetus: описание опций конфигурации запуска](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-configuration.md).
**Примечание:**
В этом файле конфигурации нельзя изменять имя файла .json, а файл .conf можно назвать по своему усмотрению и загрузить с помощью командной строки.
Общие параметры файла конфигурации shard.conf:
1) default-pool-size=\<num\> — устанавливает количество соединений при запуске (рабочим процессом), минимум 10, если установлено меньше 10, то фактическое значение будет равно 10.
2) max-pool-size=\<num\> — устанавливает максимальное количество соединений (рабочим процессом).
3) max-resp-size=\<num\> — устанавливает максимальный размер ответа, при превышении которого клиенту выдаётся ошибка.
4) enable-client-compress=\[true\|false\] — поддерживает сжатие клиентом.
5) enable-tcp-stream=\[true\|false\] — запускает поток TCP, нет необходимости ждать завершения ответа перед отправкой клиенту.
6) master-preferred=\[true\|false\] — если не указано иное, всегда обращается к основной базе данных, за исключением случаев, когда принудительно используется подчинённая база данных.
7) reduce-connections=\[true\|false\] — автоматически уменьшает избыточное количество подключений к серверу.
8) max-alive-time=\<num\> — задаёт максимальное время жизни соединения с сервером.
9) enable-fast-stream=\[true\|false\] — включает быстрый поток, который быстро обрабатывает только запросы на чтение, по умолчанию false.
10) partition-mode=\[true\|false\] — если true, Cetus работает в режиме разделения таблиц; если false, то в режиме разделения сегментов.
11) enable-sql-special-processed=\[true\|false\] — если встречается SQL, который не поддерживается анализатором Cetus (обычно возникает ошибка near «xx»:syntax error), можно установить этот параметр в true, чтобы пропустить анализ и сообщить Cetus о методе маршрутизации для этого SQL с помощью комментариев.
Например, с помощью этой конфигурации можно поддерживать следующий SQL:
/\*#group=data1\*/update test1 a join test2 b on a.id=b.id set a.name='test';
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )