Видео: Потоковый ввод вывод в файл c++. Перегрузка операторов. Изучение С++ для начинающих. Урок #119 2025
Когда данные перетекают в огромные суммы, хранение всего этого может быть трудным или даже невозможным. Фактически, хранение всего этого может даже не оказаться полезным. Вот некоторые цифры только о том, что вы можете ожидать в течение одной минуты в Интернете:
- 150 миллионов отправленных электронной почты
- 350 000 новых твитов, отправленных в Twitter
- 2. 4 миллиона запросов, запрошенных в Google
- 700 000 человек вошли в свою учетную запись на Facebook
Учитывая такие объемы, накопление данных в течение всего дня для инкрементного анализа может показаться неэффективным. Вы просто храните его где-нибудь и анализируете его следующим или позднее: это широко распространенная архивная стратегия, типичная для баз данных и хранилищ данных. Однако полезные запросы данных, как правило, спрашивают о самых последних данных в потоке, а данные становятся менее полезными, когда они стареют (в некоторых секторах, таких как финансовые, в день может быть много времени).
Более того, вы можете ожидать, что завтра поступит еще больше данных (объем данных увеличивается ежедневно), и это затрудняет, если не невозможно, извлечение данных из репозиториев по мере ввода новых данных. Вытягивание старых данных из репозиториев по мере поступления свежих данных сродни наказанию Сизифа. Сизиф, как повествует греческий миф, получил страшное наказание от бога Зевса: будучи вынужденным вечно катить огромную валун на вершину холма, чтобы смотреть, как он откатывается каждый раз.
Иногда, делая вещи еще более невозможными для обработки, данные могут поступать так быстро и в таких больших количествах, что запись на диск невозможна: новая информация поступает быстрее, чем время, необходимое для ее записи в жесткий диск. Это проблема, типичная для экспериментов с частицами с ускорителями частиц, такими как Большой адронный коллайдер, что требует от ученых решения о том, какие данные следует сохранить. Конечно, вы можете помещать данные в очередь на некоторое время, но не слишком долго, потому что очередь будет быстро расти и становится невозможной для поддержания. Например, если они хранятся в памяти, данные очереди вскоре приведут к ошибке из-за памяти.
Поскольку новые потоки данных могут привести к тому, что предыдущая обработка старых данных устарела, а промедление не является решением, люди разработали несколько стратегий для мгновенного обмена данными с массивными и изменяемыми объемами данных. Люди используют три способа обработки больших объемов данных:
- Сохранено: Некоторые данные хранятся, потому что они могут помочь ответить на неясные вопросы позже. Этот метод основан на методах его немедленного хранения и анализирует его очень быстро, независимо от того, насколько он массивный.
- Обобщены: Некоторые данные обобщены, потому что сохранить все это, поскольку это не имеет никакого смысла; сохраняются только важные данные.
- Потребляемый: Остальные данные расходуются, поскольку его использование предопределено. Алгоритмы могут мгновенно читать, переваривать и превращать данные в информацию. После этого система забудет данные навсегда.
Говоря о массивных данных, поступающих в компьютерную систему, вы будете часто слышать их по сравнению с водой: потоковые данные, потоки данных, пожарный шланг данных.
Вы узнаете, как потоки данных похожи на потребление водопроводной воды: открытие крана позволяет хранить воду в чашках или бутылках для питья, или вы можете использовать ее для приготовления пищи, чистки продуктов, чистящих пластин или мытья рук. В любом случае, большая часть или вся вода ушла, но она оказывается очень полезной и действительно жизненно важной.