2015-02-19 2 views
3

У меня есть прецедент, в котором у нас есть несколько таблиц в BigQuery. Теперь я хочу реализовать индекс на одном из столбцов в таблице BigQuery. Но я не нахожу достаточно документации для этого. Я нашел несколько блогов и сообщений, в которых упоминание BigQuery не поддерживает индексы. Пожалуйста, помогите мне найти блог или сообщение, которое может помочь мне в реализации индекса на BigQuery. Заранее спасибо.Указатели на таблице BigQuery

+0

возможно дубликат [Google BigQuery Базовая архитектура] (http://stackoverflow.com/questions/22745300/google-bigquery-underlying-architecture) – Pentium10

+0

Это поможет, если вы будете описывать, почему вам нужно индексы, то есть то, что форма ваших запросов будет выглядеть. В BigQuery могут быть некоторые другие механизмы (ручные или автоматические), которые могут привести к производительности, которую вы ожидаете от традиционных индексов в базе данных. –

+0

Hi Mosha, в моем распоряжении у нас есть 5lakhs записи, которые теперь отображаются в пользовательском интерфейсе на основе пользовательского выбора (включая также разбиение на страницы). Эти выборы основаны на 8 разных столбцах в одной таблице. На данный момент наши запросы дают удовлетворительный результат, но я беспокоился в будущем, так как количество записей увеличивается примерно в 10-100 раз от того, что у меня есть сейчас. Так было думать, чтобы найти способ внедрения индекса или альтернативы для повышения производительности. –

ответ

5

Как указано в комментариях, этот вопрос связан с «как BigQuery справится с моими данными, если бы он был в 100 раз больше». При работе с традиционными базами данных индекс является правильным решением, но BigQuery отличается: по мере увеличения размера данных BigQuery добавляет больше серверов в микс, сохраняя производительность почти постоянной.

Другими словами, по мере роста ваших данных вы должны ожидать, что затраты будут расти линейно, при этом производительность останется практически постоянной. Не требуется индексов. И это одна из главных причин, почему люди выбирают BigQuery для своих аналитических нагрузок.

(Все зависит от конкретного случая использования, конечно, пожалуйста, проверить эти утверждения и доложить!)

+0

Спасибо, Фелипе, за ваши данные. Проделайте тест, используя больше и обновите здесь. –

+1

Привет, Фелипе, могу ли я экстраполировать из этого ответа, что большой запрос дает вам прирост производительности, когда вы имеете дело с наборами данных выше определенного размера? Например, в настоящее время у меня 80 миллионов записей в таблице, и сканирование таблицы, похоже, завершается примерно через 6 секунд, что медленнее, чем различные методы, которые я мог бы использовать на своем ноутбуке. Но если бы у меня было, скажем, 800 миллионов записей, все равно было бы около 6 секунд на BigQuery? – Hexatonic

+0

@Hexatonic - да! Какое сканирование выполняется? Например, я видел миллиард строк за 2 секунды. –

1

Тесное вы можете получить за «индекс» в BigQuery является Partitioned Tables. В настоящее время он поддерживает только разделение по дате.

Многораздельной таблица является специальной таблицей, которая разделена на сегменты, называемых перегородок, которые делают его проще управлять и запрашивать данные. Разделив большую таблицу на более мелкие разделы, вы можете улучшить производительность запросов и уменьшить количество байтов, выставленных , ограничивая объем данных, которые сканируются. BigQuery предлагает таблицы с разбивкой по датам, что означает, что таблица разделена на отдельный раздел для каждой даты в виде .