2013-12-03 3 views
0

Пожалуйста, помогите мне с этой большой проблемой с данными.Как улучшить производительность в большом столе?

У меня есть очень большая таблица (500G), в которой хранятся данные cookie, собранные с одного веб-сайта, и я стараюсь предоставлять услуги многим другим клиентам. Для каждого клиента у них есть свои файлы cookie, поэтому в конце мне нужно сделать запрос на 500G + 300G (client_data).

Поскольку некоторые запросы используют как данные моего файла cookie, так и данные cookie клиента, возможно, что мне нужно выполнить соединение между моей таблицей и их таблицей, поэтому производительность плохая. Чтобы решить эту проблему, я поставил все данные на 800 ГБ в гигантскую таблицу. Поскольку нет таблицы соединений, производительность хорошая. Но когда я расширяю свое обслуживание на несколько клиентов, он занимает слишком много места.

В настоящее время я использую Vertica в качестве источника данных и использую растровое изображение для хранения моей информации.

Любое предложение, которое может поддерживать мою текущую производительность, но также поддерживает как 40 пользователей? Мое хранилище составляет около 12 ТБ, и каждый клиент в текущем решении говорит 1.5T.

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

ответ

1

Мое хранилище составляет около 12 ТБ, и каждый клиент в текущем решении говорит 1.5T.

Если у вас есть 40 * 1,5 ТБ недублированных данных cookie для хранения, нет волшебства, чтобы вписаться в 12 ТБ.

1

Это будет неточным ответ из-за отсутствия подробной информации об определениях и т.д. Но я хотел бы добавить следующее о производительности:

Посмотрите на ваши определения проекции. Вы можете получить прирост производительности в зависимости от того, что вы положили в порядке по предложению проекции.

0

У вас есть несколько способов продвижения вперед, в зависимости от особенностей вашего дела. Пункт 1 и 3 являются самыми легкими, чтобы иметь дело с:

  1. Вы можете правильно установить проекции, чтобы убедиться, что обе таблицы одинаково сегментирован: https://my.vertica.com/docs/6.1.x/HTML/index.htm#12549.htm
  2. Вы можете настроить предварительно присоединиться к проекции, где присоединиться стоимость оплачивается при загрузке данных, а не во время извлечения данных, см. https://my.vertica.com/docs/6.1.x/HTML/index.htm#1299.htm
  3. Убедитесь, что ваш тип данных является максимально возможным. Согласование по ints быстрее, чем сопоставление по строкам, сопоставление столбцов с низкой мощностью происходит быстрее, чем сопоставление столбцов с высокой мощностью.

Если 1 и 3 хорошо настроены, Vertica может фактически применять фильтры перед декомпрессией, значительно упрощая ваш запрос и тем самым используя намного меньше памяти.

Смежные вопросы