Я использую Python с redshift_connector и анализирую данные с помощью Pandas. При доступе к базе данных красного смещения с выбором столбцов
n я получил
i строк. Однако когда я захотел добавить в этот запрос новый столбец, время ожидания истекло через час. Чтобы решить эту проблему, мне пришла в голову идея выбрать столбцы
n+1 и итеративно использовать LIMIT и OFFSET для получения каждой строки. Через некоторое время он вернул
i строк, но что-то не сложилось. Когда я сравнил результаты, последний дал пару повторяющихся строк. Как написать запрос, чтобы он не терял тайм-аут, но не возвращал дубликаты?
Оригинальный макет запроса, который не истечет по тайм-ауту:
Код: Выделить всё
SELECT a, b, c
FROM table
WHERE a IN ('attribute1','attribute2')
Тайм-аут:
Код: Выделить всё
SELECT a, b, c, d
FROM table
WHERE a IN ('attribute1','attribute2')
Если я помещу второй в цикл while True, исправлю его с помощью LIMIT и OFFSET, использую pd.read_sql(query, Connection) для получения данных, добавляю их в df list и в конце объединить список, он возвращает мне точное количество строк, что и первый, но с дубликатами.
Подробнее здесь:
https://stackoverflow.com/questions/791 ... duplicates