Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Хранение огромного массива данных.  [new]
Mirk
Member

Откуда:
Сообщений: 7
Здравствуйте.
Хотел бы посоветоваться по поводу организации структуры таблиц для следующей задачи.
Имеется около пары тысяч текстовых фалов с числовыми данными, с приблизительно такой структурой:

Начальное значение 245.8
Конечное значение 549.4
Шаг 0.2:
Обозначение нулевого значения -999999
Название группы Группа 1
Название подгруппы Подгруппа 1
Дата 01.01.2011

Num Col1 Col2 Col3 Col4 Col5
245.8 654.0 234.2 215.5 847.4 781.3
246.0 4.0 124.8 -999999 9.4 81.3
246.2 35.0 54.8 47.3 339.4 581.3
...
549.4 78.8 876.8 5641.0 784.1 654.0

Число строк с данными одного файла может достигать 100 тысяч строк.
Число и названия столбцов в каждом файле может быть разным, но в каждом файле есть первый столбец – Num, значения которого идут с определенным шагом.

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

Реализация выполняется в связке: Microsoft SQL Server 2000 и PHP Version 5.2.13.

Подскажите пожалуйста как лучше создать структуру таблиц в БД для этой задачи.

Заранее спасибо.
16 май 11, 15:59    [10659408]     Ответить | Цитировать Сообщить модератору
 Re: Хранение огромного массива данных.  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35398
Блог
2 таблички: заголовок и строки, связь 1-ко-многим
16 май 11, 16:05    [10659457]     Ответить | Цитировать Сообщить модератору
 Re: Хранение огромного массива данных.  [new]
Mirk
Member

Откуда:
Сообщений: 7
Критик
2 таблички: заголовок и строки, связь 1-ко-многим

хотелось бы точнее понять ваш вариант связи значений и названий столбцов, так как по сути это и является основн интересом вопроса
возможно я несколько непонятно описал, но суть в следующем:
при выгрузке обратно в файл нужно также восстановить знчения в соответствии с названиями столбцов.
причём столбцы (а следовательно и его значения) могут исключаться из выходного файла.
также нет ни чёткого перечня названий и количества столбцов, они могут быть различны (в названии, килчестве и последовательности столбов), а могут и совпадать.
постоянно присутствует только первый столбец.

в общем на примере:
первый файл
16 май 11, 19:29    [10660891]     Ответить | Цитировать Сообщить модератору
 Re: Хранение огромного массива данных.  [new]
Mirk
Member

Откуда:
Сообщений: 7
в общем на примере:
первый файл:
Num Col1 Col2 Col3 Col4 Col5
245.8 654.0 234.2 215.5 847.4 781.3
246.0 4.0 124.8 -999999 9.4 81.3
246.2 35.0 54.8 47.3 339.4 581.3
...
549.4 78.8 876.8 5641.0 784.1 654.0

второй файл:
Num QWER Col5 REW CVD
0.0 54.0 54.2 215.5 847.4
0.1 64.0 24.8 54.3 1.4
0.2 85.0 5.8 23.3 49.4
...
8000.4 68.8 -999999 41.0 84.1 64.0

и любой другой файл может иметь свой набор столбцов
16 май 11, 19:34    [10660907]     Ответить | Цитировать Сообщить модератору
 Re: Хранение огромного массива данных.  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
EAV
16 май 11, 19:56    [10660986]     Ответить | Цитировать Сообщить модератору
 Re: Хранение огромного массива данных.  [new]
iljy
Member

Откуда:
Сообщений: 8711
Mirk,

странная у вас задача какая-то. Если известно максимальной количество колонок - то можно упихать в две таблицы, если не известно - то только EAV.
16 май 11, 19:57    [10660992]     Ответить | Цитировать Сообщить модератору
 Re: Хранение огромного массива данных.  [new]
Mirk
Member

Откуда:
Сообщений: 7
Спасибо за EAV)) количество столбцов действительно не известно.
но я хотел бы ещё поинтересоваться.
есть ещё 1 вариант решения, который для данной задачи мне кажется тоже неплохим)) хотя не знаю как вы его оцените))
в общем создаётся первоначальная таблица с теми столбцами что имеются, а остальные по мере необходимости добавляются простым alter table)))
возможно вариант не самый лучший при организации, однако позволяет удобно и достаточно быстро получать данные при воссоздании файлов
17 май 11, 07:31    [10662354]     Ответить | Цитировать Сообщить модератору
 Re: Хранение огромного массива данных.  [new]
Mirk
Member

Откуда:
Сообщений: 7
при этом достаточно удобным делать выборки по ранее указанным критериям
и получать сразу таблицу в том виде как она была загружена, а при необходимости с исключёнными строками

так вот хотел спросить при реализации в виде модели EAV c PIVOT будут ли плюсы?

и кстати сразу оговорюсь, что при реализации в виде простой таблицы в которой получилось уже за 350 столбцов, строк уже за 11 миллионов перевалило
17 май 11, 07:37    [10662359]     Ответить | Цитировать Сообщить модератору
 Re: Хранение огромного массива данных.  [new]
Mirk
Member

Откуда:
Сообщений: 7
извините оговорился:
... а при необходимости с исключёнными столбцами
17 май 11, 07:42    [10662366]     Ответить | Цитировать Сообщить модератору
 Re: Хранение огромного массива данных.  [new]
iljy
Member

Откуда:
Сообщений: 8711
Mirk,

а всякие поиски по значениям столбцов могут возникать? Или только выгрузка с пропуском строк и некоторых столбцов? Если так - то можно попробовать сделать поле Num, а остальные поля упихать в одно XML-поле. Динамическое изменение структуры таблицы потенциально весьма геморойным
17 май 11, 08:55    [10662511]     Ответить | Цитировать Сообщить модератору
 Re: Хранение огромного массива данных.  [new]
Mirk
Member

Откуда:
Сообщений: 7
ну на данном этапе выборка из этих столбцов (не считая выборки по информационным полям) идёт только по столбцу NUM, однако в перспективе возможно будет необходимость на основании остальных значений делать какие либо рассчёты и возможно какие то поиски и буду
но на данном этапе такой задачи пока не стоит

В любом случае спасибо за помощь))
17 май 11, 11:33    [10663435]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить