Продолжение: ошибка: не удалось проанализировать регулярное выражение "": слишком большой шаблон - ошибка компиляции
Это продолжение ошибки: не удалось проанализировать регулярное выражение "": шаблон слишком большой - ошибка компиляции...
Я снова решаю эту проблему.
Может кто-нибудь, пожалуйста, объясните, пожалуйста, как BigQuery распределяет ресурсы для функций REGEXP? Существует ли известная проблема (и способы ее предотвращения) "слишком большого"\"слишком сложного" выражения REGEXP в одном запросе BQ?
Большое спасибо
1 ответ
Синтаксический анализ регулярных выражений имеет несколько неудачных угловых случаев, которые могут поглотить много циклов обработки (см. http://www.regular-expressions.info/catastrophic.html). Конечные автоматы с регулярными выражениями также могут потреблять много памяти. Из-за этого у BigQuery есть бюджет для регулярных выражений. Текущее значение составляет около 2 МБ на запрос. Это руководство, а не опубликованная гарантия, и может быть изменено в любое время.
Документально подтверждено, что BigQuery использует Re2 (код здесь: https://code.google.com/p/re2/) для анализа регулярных выражений; Вы можете попробовать запустить свои регулярные выражения с этой библиотекой, используя бюджет в 2 МБ, и проверить, успешно ли они выполнены.