2013-05-30 4 views
4

Мы создаем сайт и для которого мы читаем txt-файл (используя PHP-mysql) с сервера и сохраняем его в базе данных mysql (используя загрузку в файл-запросе). Его временная база данных, а затем эти данные переносятся в другую базу данных с некоторой дополнительной информацией, например, идентификаторами, кодами и т. Д. Затем создается новая база данных и будет сбрасываться с другим txt-файлом.генерация отчетов для миллионов строк в mysql

база данных с дополнительной информацией растет быстрее.

Текстовые файлы продолжаются и база данных растет как 2 миллиона записей за день. примерно в среднем около 15-20 файлов поступают и в любой временной интервал. он не имеет никакое определенное время что архивы не приходят.

Мы делаем некоторую группу по запросам и уменьшаем данные в базе данных с дополнительной информацией примерно до 47 тыс. Из 7 миллионов записей и сохраняем их в другой базе данных для генерации отчетов. Эти данные (47K) рассчитаны на 4 дня (база данных отчетов) и для целей отчета. поэтому в конце месяца основная база данных с идентификаторами, кодами может вырасти до 70 миллионов записей.

мы должны создавать отчеты одновременно из таблицы ежедневно и еженедельно, а также ежемесячно.

, так как база данных растет на более быстрыми темпами, как обрабатывать отчеты по истечении 1 месяца , например, если они хотят отчет с января по апрель, например ..

, как мы предполагаем справиться с этим сценарием, так как чтение/запись выполняются в той же таблице, которая растет с огромной скоростью.

+0

Вы можете собирать данные каждый раз, когда вы вставляете их в свой основной db и сохраняете их как можно ближе к формату отчета? Не думайте, что кто-то может прочитать отчет с 70kk строками – Sergio

ответ

1

Не зная, что происходит с данными, но для меня не имеет большого значения, что вы читаете из txt-файла в базу данных ... массируйте его и добавьте другие коды ссылок, затем повторно сбросьте его в txt-файл, чтобы сохранить его в базе данных. Я оставил бы это в базе данных.

С какой скоростью (емкость диска тоже) добавляются записи?

Какие типы отчетов создаются ... Статистические? Общие агрегации?

Если бы просто общие агрегации, я бы сохранил отдельную таблицу в базе данных с любыми категориями свернутых номеров, классификациями и т. Д. Затем из этого можно было бы запускать отчеты, вместо того чтобы повторно импортировать все те текстовые файлы, которые вы выгрузили. Наличие «сводной» таблицы, как на ежечасной основе (или даже ежедневной основе), может легко упростить процесс отчетности.

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

---- Per комментарий обратной связь

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

--- Ex: Если отслеживание звонков gov't (нет ... они делают это ???) на людей, они могут захотеть узнать, сколько разных людей называют человеком X и сколько человек X тоже звонит. Вызывает озабоченность в ОБОИХ направлениях коммуникации. Как только шаблон идентифицируется, и бросание аварийных сигналов может они фокусировать и сохранять записи в отдельной таблице отслеживания, которая НЕ сбрасывается после создания текстовых файлов вывода ... И нет, я не работаю для правительства или каких-либо таких агентств кто может это сделать.

- Что хранить Я могу предложить только предложения о том, какой ТИП информации вы пытаетесь сохранить ... Вы заботитесь о системе УАТС, магистральных линиях, исходящих от, Расширения? Я бы начал с того, что сначала сохранил важнейшие элементы, которые вы хотите, и зачистите то, что может быть бесполезной информацией с каждой базы хранения записей.

Origination Calling Number/Extension 
Destination Number 
International Country being called 
Call Time Start 
Call Duration 

Это было более 10 лет, так как я работал с системами АТС и Call-Data-Records, но я знаю, что они должны быть общим ядром к данным. В зависимости от того, как выглядит формат CDR, вам, возможно, придется стандартизировать вызываемый номер. если одна система хранит как один полный номер телефона, а другой держит отдельно для междунар префикса вызова, вы не можете найти матч, набрав

555-1234 против +014 555-1234

Я знаю, Поддельный номер телефона не является законным, но я уверен, что вы понимаете, откуда я.

+0

, мы получаем необработанные файлы для звонков между клиентами в разных странах, например, клиент разговаривает с клиентами B в течение 1 минуты, а клиент C-клиента разговаривает с D-клиентом в течение 1 минуты. поэтому у исходного файла будет 2 записи – dell

+0

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

+0

мы работаем над тем же .. чтение файлов cdr и генерация отчетов на ежедневной основе до ежемесячной базы могут распространяться на создание отчета за последние 3 месяца ... так как справиться с такими громадными данными .. некоторая информация о структуре базы данных будет отличной. – dell

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