Pull to refresh
28
0
Павел @pankor

User

Send message

Как создать таблицы в БД ClickHouse на основе CSV

Level of difficultyEasy
Reading time2 min
Views3.5K

Когда я впервые начал знакомиться с колоночно-ориентированной СУБД ClickHouse, я не смог найти подходящий инструмент (кроме встроенного в веб-интерфейс ClickHouse Cloud) для создания таблиц с нужными столбцами и типами данных на основе CSV файлов или Pandas датафреймов. Ни clickhouse-connect, ни clickhouse-driver не обладали такой функциональностью, как метод to_sql в SQLAlchemy.

Я хотел загрузить свой любимый набор данных о чемпионатах мира по автогонкам класса Формула-1 в ClickHouse, но вручную создавать 15 таблиц было слишком лениво. Хотелось просто скормить нужные CSV файлы скрипту и на выходе получить БД с нужными таблицами и данными внутри.

Когда я ранее знакомился с PySpark, я заметил, что многие data-профессионалы используют Pandas для определения схемы данных перед загрузкой файлов CSV в PySpark. И я подумал, почему бы не использовать Pandas для определения типов данных по столбцам?

Так я создал этот скрипт, которым хочу поделиться. Я надеюсь, что он поможет вам сэкономить немного времени, а мне даст возможность получить от вас пару фидбеков и идей для улучшения.

Я не уверен в полной совместимости типов данных между Pandas и ClickHouse: быстрый поиск дал противоречивые результаты, поэтому поправьте меня, если найдете какие-либо расхождения.

И будьте осторожны с replace_flag - если установлено значение True, то скрипт пересоздаст таблицы с тем же именем, если они уже существуют, поэтому вы можете потерять существующие данные в своей базе данных. Чтобы избежать этого, но также избежать дублирования данных, я рекомендую указать несуществующее имя базы данных в качестве database_name. Если установлено значение False в replace_flag, данные из ваших файлов CSV будут добавляться в существующие таблицы с тем же именем (конечно же, число столбцов и их типы данных должны совпадать).

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments3

Контроль за почтовым трафиком избранных пользователей MS Exchange

Reading time2 min
Views1.1K
Бывает необходимо контролировать входящую и исходящую почту некоторых сотрудников. Поискав готовые решение, которые либо не нравились ценой, либо не устраивали по функционалу, я взял от них идею и допер до простенькой схемки.

И так, нам потребуется почтовый клиент The Bat! (либо любой другой, имеющий сортировщик писем и желательно планировщик заданий, например я в последствии переделал на Thunderbird), а также работающий MS Exchange.

Читать дальше →
Rating0
Comments3

Кибибайты

Reading time1 min
Views14K
Далеко не все знают, а кто знает — по привычке игнорирует, что для обозначения круглых двоичных чисел применение приставок из системы СИ уже давно не правильно.

1 килобайт — это все таки 1000, а не 1024 байт. Так что производители жестких дисков уже давно никого не обманывают, а пишут чистую правду. Коротко говоря — забудьте, что 1024 байт составляют 1 килобайт — это 1 кибибайт.

Международная электротехническая комиссия приняла такие изменения еще в далеком 1999 году, а ГОСТ закрепил данное в 2002, под номером 8.417

«Новые» приставки созвучны с их собратьями из системы СИ — начинаются на тот же слог, а вторым слогом всегда идет буквосочетание «би» — от слова бинарный (двоичный).

p.s.: это кросс-пост с моего основного блога.
Total votes 76: ↑60 and ↓16+44
Comments97

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity