буферную таблицу:
                  
                  
                  
                  
                  
                  #!/usr/bin/env bash
                  
                  
                  eval $(egrep -v '^#' .env | xargs)
                  
                  
                  
                  
                  
                  shopt -s nullglob
                  
                  
                  
                  
                  
                  while true; do
                  
                  
                    for FILENAME in *.jsonl.gz; do
                  
                  
                      echo "Processing: $FILENAME"
                  
                  
                  
                  
                  
                      zcat "$FILENAME" \
                  
                  
                       | clickhouse-client \
                  
                  
                          --user="$CLICKHOUSE_USER" \
                  
                  
                          --password="$CLICKHOUSE_PASSWORD" \
                  
                  
                          --input_format_skip_unknown_fields=1 \
                  
                  
                          --query="INSERT INTO $CLICKHOUSE_TABLE FORMAT JSONEachRow" \
                  
                  
                       && mv "$FILENAME" ./processed
                  
                  
                    done
                  
                  
                  
                  
                  
                    echo "Sleep 10"
                  
                  
                    sleep 10
                  
                  
                  done
                  
                  
                  
                  
                  
                  
                  
                  
                  Периодически возникает ошибка:
                  
                  
                  
                  
                  
                  Received exception from server (version 20.4.2):
                  
                  
                  Code: 241. DB::Exception: Received from localhost:9000. DB::Exception: Memory limit (total) exceeded: would use 14.10 GiB (attempt to allocate chunk of 4394880 bytes), maximum: 14.10 GiB.
                  
                  
                  
                  
                  
                  Такую ошибку рекомендуют лечить уменьшением значения max_memory_usage, но оно и так меньше чем RAM на сервере.
                  
                  
                  
                  
                  
                  <max_memory_usage>13000000000</max_memory_usage>
                  
                  
                  ~ cat /proc/meminfo
                  
                  
                  MemTotal:       16424828 kB
                  
                  
                  
                  
                  
                  Нужно ли еще уменьшить это значение? Или ошибку можно побороть другим образом?
                  
                  
                
тогда, если эта ошибка не связана с вставками, то нужно смотреть что за запросы вызывают эту ошибку
Обсуждают сегодня