«Как избежать пяти распространенных ошибок в Google BigQuery / SQL»
Как избежать пяти распространенных ошибок в Google BigQuery / SQL и добиться успеха
В течение многих лет работы с BigQuery я наблюдал 5 проблем, которые часто возникают, даже у опытных data scientist
Google BigQuery популярен по многим причинам. Он невероятно быстрый, легкий в использовании, предоставляет полный набор GCP, заботится о вашей информации и помогает обнаруживать ошибки на ранних этапах. Кроме того, вы можете использовать стандартный SQL и некоторые очень полезные встроенные функции. Вкратце, это почти полный пакет!
Всегда предполагайте наличие ошибок и дубликатов, всегда!
Однако, подобно другим веб-сервисам и языкам программирования, при работе с BigQuery есть несколько вещей, о которых нужно знать, чтобы избежать попадания в ловушку. За годы работы я совершил много ошибок и понял, что практически каждый, кого я знаю, в какой-то момент сталкивался с теми же проблемами. Некоторые из этих проблем я хочу выделить здесь, потому что обнаружил их довольно поздно в своей карьере и также видел, что другие очень опытные data scientist сталкиваются с теми же проблемами.
Поэтому я предоставлю вам свой топ-5 потенциальных ошибок, которые почти каждый совершает в BigQuery в какой-то момент и о которых вы, возможно, даже не знаете. Так что убедитесь избегать их, потому что каждый из этих пунктов может иметь серьезные последствия, и помните правильное отношение к работе с данными: всегда предполагайте наличие ошибок и дубликатов, всегда!
- Интерактивно изучайте набор данных Huggingface с помощью одной строки кода
- Анализ временного ряда Тыквенная пряность
- ICA и проблема настоящей коктейльной вечеринки
1. Будьте осторожны при использовании “NOT IN”
Все происходит так быстро. Вы спешите и хотите быстро проверить две таблицы и увидеть, существует ли определенный элемент, упомянутый в одной из таблиц, также во второй таблице. Почему бы тогда не воспользоваться оператором NOT IN
, так как он звучит так интуитивно?
Проблема в том, что NOT IN
не работает так, как задумано, когда в вашей таблице есть значения NULL
. В таком случае вы не получите желаемых результатов!
Убедитесь сами, взглянув на этот пример кода, в котором я пытаюсь найти категории из input_2, которые не содержатся в input_1:
WITH input_1 AS ( SELECT category FROM ( SELECT ["a", "b", CAST(NULL AS STRING), "d"] AS category), UNNEST(category) category ), input_2 AS ( SELECT…