Pull to refresh
135
0
Андрей Привалов @negasus

Developer

Send message
CREATE TABLE logs
(
....
)
  ENGINE = MergeTree()
  PARTITION BY (date, toHour(timestamp))
  ORDER BY (timestamp, nsec,namespace, container_name)
  TTL date + toIntervalDay(14)
  SETTINGS index_granularity = 32768;

Почасовые партиции?
Сложно угадать сколько у вас в среднем падает логов ежедневно, но можно допустить что несколько сотен лямов в день, а с таким кол-вом можно спокойной жить и с партициями по месяцу.
Но учитывая ваш TTL подневные может вам и сойдут, но даже они далеко не всем нужны.
ORDER BY (timestamp, nsec, namespace, container_name)
Сомнительный ORDER BY, вообще по всем канонам в начало ORDER BY идут те поля, которые учавствуют в подавляющем большинстве запросов, что бы отбрасывать ненужные нам гранулы. С вашим ORDER BY так не выйдет.
timestamp и date вполне можно объединить в 1 столбец, тогда для партицирования использовать toYYYYMMDD(timestamp).
А для особенно смелых, можно использовать DateTime64, тогда и nsec можно там хранить.
Еще не видно никаких Codecs, они могут очень значительно повлиять на объем хранимых данных.
count(*)
Звездочка в count() ненужна, возможно может даже негативно влиять на скорость сканирования.

Вообще я бы в вашем случае попробовал, что то вроде
ORDER BY (namespace, container_name,timestamp, nsec)
И возможно, задал бы PRIMARY KEY покороче, допустим (namespace, container_name,timestamp)
Не так впечатляет, но тем не менее вспомнилось…
Вывод цветного TV сигнала по NTSC на Arduino UNO, + 8 резисторов и кварц:
http://www.youtube.com/watch?feature=player_embedded&v=ysMUZaUsUp0
Более подробно с исходниками:
forum.arduino.cc/index.php?topic=169674.msg1415605#msg1415605
Для прошивки Arduino Pro Mini, нет необходимости в ISP программаторе. Достаточно на Nano(UNO, MEGA и т.д.) соединить Reset с землёй (удобно джампером на ISCP разъеме) это переводит плату в UART переходник вне зависимости от залитого не неё кода. Изымать микросхему как в мануале комментарием выше, тоже не надо (У Nano то её не очень то и вытащишь). После чего соединить TX-TX, RX-RX, питание и землю. И прошивать как обычно, выбрав соответствующую Pro Mini плату в списке и COM порт который присвоился Nano. Reset надо нажать на Pro Mini перед заливкой, и как только надпись «Компилирование...» сменится «Загружаем» отпустить. Ещё у меня получилось заливать скетч через blutooth модуль типа HC-04/05/06/07.
полезный плагин. обычно клиентам делаю дополнительные опции через
add_action('customize_register', function($customizer) {
        $customizer->add_section(
                'example_section_one', array(
            'title' => 'Настройки сайта',
            'description' => 'Контактная информация на сайте',
            'priority' => 11,
                )
        );
        $customizer->add_setting(
                'phone, array('default' => '84822123456')
        );
        $customizer->add_control(
                'phone', array(
            'label' => 'Телефон',
            'section' => 'example_section_one',
            'type' => 'text',
                )
        );
});

а вытаскиваются они через
get_theme_mod('phone', '');

Потом идем во «Внешний вид — настроить» и меняем прям оттуда и смотрим результат
Можно добавить чекбоксы, тексты, загрузку файлов и т.п.
Если использовать галочку «запомнить меня» в форме авторизации и требуется сверить с сервером актуальность сохраненного токена, то лучше использовать resolve. Такой подход описан на stackoverflow.com. Обратите внимание, что в методах resolve без promise нельзя сделать $state.go.
if'ы зло.
Рекомендуется использовать if только в случае если вы из него уходите (rewrite last, 30x redirect и т.п.). Это логично и это почти никогда не сломается в случае изменения логики в работе сервера.
Use try_files if it suits your needs. Use the «return ...» or «rewrite… last» in other cases. In some cases it's also possible to move ifs to server level (where it's safe as only other rewrite module directives are allowed within it).


Альтернативный вариант (на мой взгляд лучше читается):
server {
    listen 127.0.0.1:80;
    server_name nocache.domain.tld;
    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf|txt|ico)$ {
        allow 127.0.0.1;
        deny all;
        root /path/to/fuse/filesystem;
    }
}

server {
    listen 80;
    server_name domain.tld
    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf|txt|ico)$ {
        proxy_cache static_cache;
        proxy_cache_valid 200 1y;
        proxy_set_header Host nocache.$host;
        proxy_pass http://127.0.0.1;
    }
}
UFO landed and left these words here
github.com/bayandin/awesome-awesomeness — выбирайте ваш язык и найдете почти все популярные решения.
Мне больше подходить этот сайт.
UFO landed and left these words here
Для графиков и диаграмм предпочитаю www.highcharts.com/ — на мой взгляд лучшее на сегодняшний день

Information

Rating
5,109-th
Location
Брянск, Брянская обл., Россия
Registered
Activity