Нам нужно было дёшево оценить, какая доля строк большой таблицы обладает некоторым свойством. В нашем случае свойство — «значение похоже на персональные данные», но задача общая: профилирование данных, проверки качества, любая статистика по колонке. Читать таблицу на миллиард строк целиком ради одной доли дорого, и в PostgreSQL для этого есть TABLESAMPLE SYSTEM : он читает только часть страниц. Рецепт, который пишется сам собой, — посчитать процент страниц из оценки числа строк, взять его с запасом и ограничить результат LIMIT . Ровно так было написано и у нас. Выборка при этом тихо не видела конец таблицы, а в конце кучи обычно лежат самые свежие строки. Ниже — почему так происходит, насколько это много и как это чинится. Читать далее
Continue to Habr →You are being forwarded in 6s — stay on this page