От баз данных до хранилищ данных и, наконец, до озер данных [1] ландшафт данных быстро меняется по мере увеличения объемов данных и источников данных. Ожидается, что рынок озер данных вырастет почти на 30%[2]: с 3,74 млрд долларов США в 2020 году до 17,6 млрд долларов США в 2026 году. Кроме того, судя по итогам Саммита по данным и искусственному интеллекту 2022 года [3], архитектура озера данных [4] явно представляет собой будущее управления данными. Эта тенденция, вероятно, усилится по мере того, как Databricks[5] выпустит Delta 2.0, в которой все API для платформы будут иметь открытый исходный код. Кроме того, Snowflakes[6] на своем саммите анонсировала некоторые новаторские функции, благодаря которым озера данных стали основой отрасли. Управление, безопасность, масштабируемость и бесперебойный анализ аналитических и транзакционных данных будут стимулировать инновации в этой области.
в соответствии с Hay、Geisler и Quix(2016 год), озеро Три основные функции данных — извлекать необработанные данные из нескольких источников данных, хранить их в безопасном репозитории и позволять пользователям запрашивать их напрямую через данных для быстрого анализа всех данных. озеро данные состоят из трёх частей [7]. Хранение данных, озеро формат файла данныхзеро формат таблицы данных. Все это способствует выполнению вышеупомянутых функций и служит озером. Краеугольный камень данных. Архитектура озера данных [8] хранит данные из различных источников через компоненты хранения данных, такие как традиционные базы данных, веб-интерфейсы и т. д. Сервер и электронная почта. озеро Формат файла данных используется в качестве единицы обработки данных, где источники данных сжимаются в формате, ориентированном на столбцы, для оптимизации запросов и исследования. Наконец озеро Формат таблицы данных помогает при анализе, объединяя все источники данных в одну таблицу. данные. Таким образом, обновление одного источника данных обновит все остальные источники данных, как если бы они все находились в одной таблице. Типичные платформы хранения данных включают в себя AWS S3[9]、Google Cloud Storage[10] и Озеро данных Azure[11]. Апач Parquet или Avro некоторые распространенные форматы файлов озера данных, Apache Hudi[12]、Apache Iceberg[13] и Delta Lake[14] — это широко известный формат таблиц озера данных.
Озера данных стали необходимостью, а не желанным явлением. Но это не означает, что организации слепо инвестируют в них. В разных ситуациях требуются разные наборы функций. Ниже перечислены все функции, которыми в идеале должно обладать озеро данных.
Эффективное управление метаданными [15] имеет решающее значение для озер данных для поддержания качества данных, чтобы более широкий круг пользователей мог легко понимать и получать информацию из различных наборов данных. Дармонт и Sawadogo (2021) указывает на то, что данные в озере данных не имеют четкого формата, а это означает, что они могут быстро стать бесполезным активом без метаданных для описания соответствующих закономерностей. Существует три уровня метаданных, которые должна иметь система озера данных. Во-первых, они должны предоставлять информацию бизнес-уровня для улучшения понимания набора данных; во-вторых, оперативные метаданные должны охватывать информацию, полученную в ходе обработки данных, а технические метаданные должны четко описывать схему.
Нет Поддерживает транзакции ACIDизозеро данныхможет датьуправление данных приносит значительные затруднения. КИСЛОТА представлять Atomicity、Consistency、Isolation и Durability аббревиатура для.
операционный язык базы данных (DML)[16] — это набор команд, который позволяет пользователям манипулировать данными в базе данных. Например SQL это своего рода DML, который позволяет пользователям писать SELECT、INSERT、DELETE、UPDATE и MERGE Дождитесь команд для выполнения определенных операций с данными. поддерживать DML изозеро data упрощает управление и аудит, а также сбор измененных данных, позволяя пользователям легко поддерживать согласованность между исходными и целевыми таблицами. (CDC). Например, пользователь может использовать UPDATE команда с помощью в соответствии с Специальные фильтры передают обнаруженные изменения в исходной таблице в целевую таблицу.
озеро Одним из преимуществ данных перед хранилищами данных является озеро. данных обеспечивает гибкость в развитии шаблонов [17]. Хранилищу данных требуется предопределенная схема перед сохранением определенного набора данных. данных не требует такого шаблона. Эффективное озеро данных Есть система хранения данных,Схемы можно автоматически выводить из хранящихся структурированных и неструктурированных источников данных. Этот вывод часто называют режимом времени чтения, а не режимом времени записи.,Последний подходит для структур строгой схемы хранилищ данных.
Delta Lake[18] и Snowflake[19] ждатьозеро данные позволяют пользователям отслеживать и фиксировать изменения, внесенные в таблицы на уровне строк. Функция CDC часть которых озеро данных записывает в отдельный журнал из-за UPDATE、DELETE или INSERT Любые изменения, внесенные в исходную таблицу событием. Этот вид отслеживания помогает во многих случаях использования, например при оптимизации путем обработки только изменений. ETL Процедура: обновляется только новая информация, а не вся таблица. BI Панель мониторинга, а также помощь в аудите путем сохранения всех изменений в журнале изменений.
Если озеро данных отсутствие системы контроля версий, управление большими data[20] будет непростой задачей. Это становится особенно проблематичным, если происходит прием данных в режиме реального времени, то есть новые данные поступают постоянно. Если в поток данных попадут неверные данные, очистить такой большой объем данных будет очень сложно. Поэтому озеро данныхдолженподдерживать Автоматический контроль версий[21],Позволяет пользователям отслеживать и при необходимости выполнять откат к предыдущим версиям.,тем самым позволяя путешествовать во времени,И упростите управление конвейерами данных, чтобы обеспечить целостность и качество данных.
Сегодняшние предприятия часто перемещают большие объемы данных из одной среды в другую для экономически эффективных решений по обработке данных. Но выполнение таких разовых миграций в озере данных может привести к необратимым сбоям, в результате чего предприятия потеряют ценные активы данных. Поэтому озеро данных должно иметь встроенные возможности восстановления, которые позволят пользователям восстанавливать предыдущее состояние соответствующих таблиц с помощью безопасных резервных копий с помощью простых команд.
При работе с большими файловыми системами, например, используемыми в приложениях для работы с большими данными, размеры файлов могут быстро увеличиваться. на основе Hadoop Традиция кластеризации данных данных Невозможно в соответствии с Объем данных регулирует размер файла [22]. В результате система создает множество файлов, каждый из которых меньше по размеру и занимает много ненужного места. эффективное озеро данныхотвечатьв соответствии с Объем входящих данных Автоматически регулировать размер файл. Например Delta Lake/Apache Hudi Позволяет пользователю указать размер файла целевой таблицы или позволить системе соответствии Общий размер рабочей нагрузки и таблицы изменяются самостоятельно. Таблицы большего размера гарантируют больший размер файлов, поэтому система создает меньше файлов.
Мостовое озеро Отсутствие эффективного механизма очистки данных [23] в архитектуре данных является очевидным недостатком, который может привести к озеру. данные быстро превращаются в болото данных. Потому что озеро data принимает данные без предопределенной схемы, поэтому обнаружение данных усложняется по мере увеличения объема и типа данных. Итак, как Snowflake[24] Такое озеро данных Платформа налагает определенныеизограничение,Обеспечить отсутствие ошибок и несоответствий входящих данных.,Несоблюдение этого требования может привести к неточному анализу в дальнейшем.
Индексированные таблицы позволяют озерам данных ускорить выполнение запросов [25], используя индексы вместо просмотра всего набора данных для получения результатов. существовать SQL Индексы особенно полезны при применении фильтров к запросам, поскольку они упрощают поиск. Управление метаданными также играет важную роль, поскольку оно определяет конкретные свойства таблиц данных для облегчения поиска. Но как Snowflake Такое озеро данных Нет Использовать индекс[26],Потому что создание индексов для огромных наборов данных может занять много времени [27]. Напротив,Он вычисляет конкретную статистику для столбцов и строк таблицы[28],и использовать эту информацию для выполнения запроса.
Функции приема данных в озерах данных иногда не имеют четких приоритетов, поскольку озера данных работают по принципу «хранить сейчас, анализировать позже»[29] Однако вскоре это станет узким местом, озеро данные превратятся в болото данных и не смогут быть выполнены. данных。поэтомуозеро данных Должен быть какой-то механизм, обеспечивающий раннюю визуализацию данных, чтобы пользователь понимал, что содержат данные в процессе приема.
Хотя это и не обязательно, пакетная загрузка очень необходима, когда данные необходимо время от времени загружать в озеро данных в больших количествах [30]. В отличие от постепенной загрузки данных, пакетная загрузка помогает ускорить процесс и повысить производительность. Однако более высокие скорости иногда могут быть просто плюсом, поскольку пакетные загрузки могут игнорировать ограничения, гарантирующие, что в озеро поступают только чистые данные [31].
Одна из проблем собственных архитектур данных заключается в том, что они не могут обеспечить высокий уровень параллелизма [32].,Это означает, что одновременное обслуживание нескольких пользователей представляет собой проблему. Облачная платформа решает эту проблему,Однако из-за ограничений хранилища данных,Высокий уровень параллелизма все еще остается проблемой。С большиманализ данные знаменитого апача Платформы с открытым исходным кодом, такие как Spark, не могут поддерживать высокий уровень параллелизма. Однако Databricks Решения для озер данных, такие как Data Lake, являются одними из немногих, которые поддерживают высокий уровень параллелизма, хотя они могут продолжать совершенствоваться с точки зрения низкой задержки (времени, необходимого для ответа на запросы пользователей).
Поскольку темпы цифровизации продолжают ускоряться,Обмен данными [33] стал потребностью времени. Поскольку данные используются разными командами для разных вариантов использования.,Беспрепятственный обмен данными через систему каталога данныхдляуправляемый даннымиизпринятие решенийипрепятствовать сферам бизнесаиз Изоляция необходимаиз。озеро Данные должны не только обеспечивать возможность беспрепятственного обмена данными между платформами, но также должны делать это безопасно и надежно, поскольку безопасность из-за слабого контроля доступа данные могут стать проблемой.
раздел data распределяет данные по нескольким таблицам и сайтам, чтобы ускорить обработку запросов и упростить управление данными. АВС ждать Lakehouse[34] Платформа рекомендует секционировать данные для масштабируемости и безопасности, поскольку секционирование не позволяет одному источнику данных занимать большой объем пространства и отделяет конфиденциальные данные от неконфиденциальных данных.
Потому что озеро Данные основаны на недорогой технологии с открытым исходным кодом и хранят полуструктурированные и неструктурированные данные, поэтому конфиденциальные данные могут быть использованы не по назначению. Поэтому озеро данныхотвечатьчто позволяет централизованно контролировать,Его степень детализации можно даже расширить для управления доступом на уровне строк.,для обеспечения соблюдения нормативных стандартов.
озеро данныхэто своего родабольшойанализ Решение для обработки данных, которое принимает данные в различных форматах и помогает ученым, работающим с данными, ожидать разных пользователей для машинного обучения и сценариев использования бизнес-аналитики, обеспечивая при этом качество и безопасность данных. Поэтому озеро Одна из целей данных — помочь пользователям выполнять расширенную аналитику и создавать системы искусственного интеллекта, которые расширяют возможности бизнеса.
Эффективное управление даннымидляозеро данных Очень важно хранить ценные данные. На самом деле организациям необходимо построить озеро Решения для обработки данных обеспечивают лучшую основу между доступом к данным и контролем данных. Поскольку обмен данными становится нормой на нескольких платформах, озеро Архитектура данных должна включать процессы для поддержания качества и целостности данных. Облако для одновременного доступа нескольких пользователей к различным типам данных данных, эти процессы становятся особенно полезными.
[1]
Озеро данных: [https://www.integrate.io/glossary/what-is-data-lake/](https://www.integrate.io/glossary/what-is-data-lake/)
[2]
рост почти 30%: [https://www.starburst.io/blog/five-exciting-big-data-trends-worth-taking-a-closer-look/](https://www.starburst.io/blog/five-exciting-big-data-trends-worth-taking-a-closer-look/)
[3]
2022 Ежегодный саммит по данным и искусственному интеллекту: [https://www.databricks.com/blog/2022/07/25/recap-of-databricks-lakehouse-platform-announcements-at-data-and-ai-summit-2022.html](https://www.databricks.com/blog/2022/07/25/recap-of-databricks-lakehouse-platform-announcements-at-data-and-ai-summit-2022.html)
[4]
Архитектура озера данных: [https://www.integrate.io/blog/data-lake-architecture-guide/#how](https://www.integrate.io/blog/data-lake-architecture-guide/#how)
[5]
Databricks: [https://www.databricks.com/](https://www.databricks.com/)
[6]
Snowflakes: [https://www.snowflake.com/blog/four-customer-takeaways-from-summit-2022/](https://www.snowflake.com/blog/four-customer-takeaways-from-summit-2022/)
[7]
Три части: [https://airbyte.com/blog/data-lake-lakehouse-guide-powered-by-table-formats-delta-lake-iceberg-hudi](https://airbyte.com/blog/data-lake-lakehouse-guide-powered-by-table-formats-delta-lake-iceberg-hudi)
[8]
Архитектура озера данных: [https://www.integrate.io/blog/data-lake-architecture-guide/](https://www.integrate.io/blog/data-lake-architecture-guide/)
[9]
AWS S3: [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/)
[10]
Google Cloud Storage: [https://cloud.google.com/storage](https://cloud.google.com/storage)
[11]
Azure: [https://learn.microsoft.com/en-us/azure/storage/common/storage-introduction](https://learn.microsoft.com/en-us/azure/storage/common/storage-introduction)
[12]
Apache Hudi: [https://hudi.apache.org/](https://hudi.apache.org/)
[13]
Apache Iceberg: [https://iceberg.apache.org/](https://iceberg.apache.org/)
[14]
Delta Lake: [https://delta.io/](https://delta.io/)
[15]
Эффективное управление метаданными: [https://www.oreilly.com/content/tips-for-managing-metadata-in-a-data-lake/](https://www.oreilly.com/content/tips-for-managing-metadata-in-a-data-lake/)
[16]
операционный язык базы данных (DML): [https://www.techopedia.com/definition/1179/data-manipulation-language-dml](https://www.techopedia.com/definition/1179/data-manipulation-language-dml)
[17]
Гибкость эволюции схемы: [https://medium.com/ssense-tech/schema-evolution-in-data-lakes-f956c6f978d4](https://medium.com/ssense-tech/schema-evolution-in-data-lakes-f956c6f978d4)
[18]
Delta Lake: [https://docs.databricks.com/delta/delta-change-data-feed.html](https://docs.databricks.com/delta/delta-change-data-feed.html)
[19]
Snowflake: [https://docs.snowflake.com/en/user-guide/streams.html](https://docs.snowflake.com/en/user-guide/streams.html)
[20]
Большие данные: [https://www.integrate.io/glossary/what-is-big-data/](https://www.integrate.io/glossary/what-is-big-data/)
[21]
Автоматический контроль версий: [https://medium.com/@aravinthR/delta-time-travel-for-data-lake-part-2-b23879a4bc6d](https://medium.com/@aravinthR/delta-time-travel-for-data-lake-part-2-b23879a4bc6d)
[22]
Невозможно в соответствии Размер файла регулировки объема данных: [https://www.qubole.com/blog/data-lake-essentials-part-2-file-formats-compression-and-security](https://www.qubole.com/blog/data-lake-essentials-part-2-file-formats-compression-and-security)
[23]
Механизм очистки данных: [https://www.integrate.io/glossary/what-is-data-cleansing/](https://www.integrate.io/glossary/what-is-data-cleansing/)
[24]
Snowflake: [https://www.snowflake.com/trending/data-cleansing](https://www.snowflake.com/trending/data-cleansing)
[25]
Ускорить выполнение запроса: [https://qbeast.io/indexing-and-sampling-on-data-lakehouses-with-qbeast-spark/](https://qbeast.io/indexing-and-sampling-on-data-lakehouses-with-qbeast-spark/)
[26]
Snowflake Такое озеро данных не использует индексы: [https://popsql.com/learn-sql/snowflake/how-to-create-an-index-in-snowflake](https://popsql.com/learn-sql/snowflake/how-to-create-an-index-in-snowflake)
[27]
Создание индексов может занять много времени: [https://medium.com/doctrine/making-queries-100x-faster-with-snowflake-ee2a76d8150d](https://medium.com/doctrine/making-queries-100x-faster-with-snowflake-ee2a76d8150d)
[28]
Статистика по столбцам и строкам: [https://stackoverflow.com/questions/58491962/does-snowflake-support-indexes](https://stackoverflow.com/questions/58491962/does-snowflake-support-indexes)
[29]
«Сохранить сейчас, проанализировать позже»: [https://www.upsolver.com/blog/7-guidelines-ingesting-big-data-lakes#:~:text=Data%20lake%20ingestion%20is%20simply,received%20in%20the%20stream%20processor](https://www.upsolver.com/blog/7-guidelines-ingesting-big-data-lakes#:~:text=Data%20lake%20ingestion%20is%20simply,received%20in%20the%20stream%20processor)
[30]
Пакетная загрузка очень нужна: [https://blogs.perficient.com/2018/03/19/managing-huge-data-loads-using-bulk-load-in-informatica/#:~:text=Advantages%3A%20The%20major%20advantage%20of,the%20bypass%20of%20database%20logs.](https://blogs.perficient.com/2018/03/19/managing-huge-data-loads-using-bulk-load-in-informatica/#:~:text=Advantages%3A%20The%20major%20advantage%20of,the%20bypass%20of%20database%20logs.)
[31]
Массовые загрузки могут игнорировать ограничения, которые гарантируют, что в озеро поступают только чистые данные: [https://bryteflow.com/bulk-loading-data-to-cloud-data-warehouses/](https://bryteflow.com/bulk-loading-data-to-cloud-data-warehouses/)
[32]
Высокий параллелизм: [https://medium.com/@fpatano/high-concurrency-and-low-latency-on-data-lakes-with-lakehouse-c9394a10f2e8](https://medium.com/@fpatano/high-concurrency-and-low-latency-on-data-lakes-with-lakehouse-c9394a10f2e8)
[33]
Обмен данными: [https://www.integrate.io/glossary/inter-enterprise-data-sharing/](https://www.integrate.io/glossary/inter-enterprise-data-sharing/)
[34]
Lakehouse: [https://www.integrate.io/glossary/what-is-a-data-lakehouse/](https://www.integrate.io/glossary/what-is-a-data-lakehouse/)