Open Germanio10 opened 5 months ago
Не нашел ссылку на репозиторий. Напишу тут: 1) Файл etl/src/storage.json нужно указать в .gitignore 2) В ETL я бы рекомендовал избегать использования enable_auto_commit, который по умолчанию True https://kafka-python.readthedocs.io/en/master/apidoc/KafkaConsumer.html. C учетом того, что при чтении каждой записи из кафки происходит коммит смещения, во время перезагрузок сервиса батч будет сбрасываться, и данные будут теряться на совсем. Временная метка просмотра, вероятно, не самая важная информация, но с какими-нибудь другими данными этот подход мог и не пройти. В этом случае как вариант - выполнять коммит только после вставки в ClickHouse. https://aiokafka.readthedocs.io/en/stable/consumer.html#manual-vs-automatic-committing 3) По поводу эффективной вставки данных в ClickHouse - https://clickhouse-driver.readthedocs.io/en/latest/quickstart.html#inserting-data. Особенно посмотрите место, где "To insert data efficiently, provide data separately, and end your statement with a VALUES clause" 4) Нужно хотя бы пару тестов сделать для API. 5) Рекомендую https://okomestudio.net/biboroku/2020/04/on-lazy-logging-evaluation/
Не нашел ссылку на репозиторий. Напишу тут: 1) Файл etl/src/storage.json нужно указать в .gitignore 2) В ETL я бы рекомендовал избегать использования enable_auto_commit, который по умолчанию True https://kafka-python.readthedocs.io/en/master/apidoc/KafkaConsumer.html. C учетом того, что при чтении каждой записи из кафки происходит коммит смещения, во время перезагрузок сервиса батч будет сбрасываться, и данные будут теряться на совсем. Временная метка просмотра, вероятно, не самая важная информация, но с какими-нибудь другими данными этот подход мог и не пройти. В этом случае как вариант - выполнять коммит только после вставки в ClickHouse. https://aiokafka.readthedocs.io/en/stable/consumer.html#manual-vs-automatic-committing 3) По поводу эффективной вставки данных в ClickHouse - https://clickhouse-driver.readthedocs.io/en/latest/quickstart.html#inserting-data. Особенно посмотрите место, где "To insert data efficiently, provide data separately, and end your statement with a VALUES clause" 4) Нужно хотя бы пару тестов сделать для API. 5) Рекомендую https://okomestudio.net/biboroku/2020/04/on-lazy-logging-evaluation/