Концепции Apache Spark + Delta Lake

У меня много сомнений по поводу Spark + Delta. введите описание изображения здесь

1) Databricks предлагает 3 слоя (бронза, серебро, золото), но какой слой рекомендуется использовать для машинного обучения и почему? Я полагаю, они предлагают очистить и подготовить данные в золотом слое.

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

3) Дельта-архитектура - коммерческий термин, или это эволюция архитектуры Каппа, или новая трендовая архитектура, как архитектура Лямбда и Каппа? В чем разница между (Delta + Lambda Architecture) и Kappa Architecture?

4) Во многих случаях Delta + Spark масштабируется намного больше, чем большинство баз данных, обычно гораздо дешевле, и если мы все настроим правильно, мы можем получить результаты запросов почти в 2 раза быстрее. Я знаю, что довольно сложно сравнивать фактические хранилища данных трендов с хранилищем данных Feature / Agg Data Store, но я хотел бы знать, как я могу провести это сравнение?

5) Раньше я использовал Kafka, Kinesis или Event Hub для потокового процесса, и мой вопрос в том, какие проблемы могут возникнуть, если мы заменим эти инструменты таблицей Delta Lake (я уже знаю, что все зависит от многих вещей, но я хотел бы иметь общее видение этого).


person Eric Gabriel Bellet Locker    schedule 19.05.2019    source источник


Ответы (2)


1) Доверьте это вашим специалистам по данным. Им должно быть комфортно работать в серебряном и золотом регионах, некоторые более продвинутые специалисты по данным захотят вернуться к необработанным данным и проанализировать дополнительную информацию, которая, возможно, не была включена в таблицы серебро / золото.

2) Бронза = необработанные данные в собственном формате / формате дельта-озера. Серебро = продезинфицированные и очищенные данные в дельте озера. Золото = данные, которые доступны через дельта-озеро или отправляются в хранилище данных, в зависимости от требований бизнеса.

3) Дельта-архитектура - это простая версия лямбда-архитектуры. Архитектура Delta на данный момент - коммерческий термин, посмотрим, изменится ли это в будущем.

4) Delta Lake + Spark - самый масштабируемый механизм хранения данных по разумной цене. Вы можете протестировать производительность в соответствии с вашими бизнес-требованиями. Дельта-Лейк будет намного дешевле любого хранилища данных для хранения. Ваши требования к доступу к данным и задержке будут более серьезным вопросом.

5) Kafka, Kinesis или Eventhub - это источники для получения данных с периферии в озеро данных. Озеро Дельта может выступать в качестве источника и опускаться для потокового приложения. На самом деле существует очень мало проблем с использованием дельты в качестве источника. Источник дельта-озера живет в хранилище BLOB-объектов, поэтому мы фактически обходим многие проблемы, связанные с инфраструктурой, но добавляем проблемы согласованности хранилища BLOB-объектов. Delta lake как источник потоковых заданий намного более масштабируем, чем kafka / kinesis / event hub, но вам все равно нужны эти инструменты для получения данных с края в дельтовое озеро.

person Joe Widen    schedule 19.05.2019
comment
В чем разница между Kappa и Delta Architecture? У вас есть представление о том, какие требования к доступу к данным и задержке я могу изучить для сравнения? Зачем нам все еще нужны инструменты как kafka / kinesis / event hub? - person Eric Gabriel Bellet Locker; 20.05.2019
comment
Я не использовал архитектуру Каппа, поэтому я не уполномочен высказывать свое мнение. Архитектура Delta позволяет выполнять потоковую передачу, пакетную передачу или и то, и другое. Причина использования Kafka / Kinesis / Event Hub заключается в том, что вам обычно нужна гибкая очередь сообщений для передачи данных от производителей данных (например, вашего сотового телефона) в какую-то шину / концентратор событий перед приемом. - person Joe Widen; 21.05.2019
comment
В 5) вы говорили о проблемах согласованности, а в документации Delta Lake говорится, что они предлагают ACID (согласованность), так что это неправда? - person Eric Bellet; 28.05.2019
comment
Это отдельные. Возможна согласованность в хранилище BLOB-объектов. И есть согласованность при чтении / записи данных. Delta Lake в настоящее время готово только для hdfs. См. Требования к базовым системам хранения здесь для получения дополнительной информации: github.com/delta-io/delta - person Joe Widen; 31.05.2019
comment
Delta Lake выпустила версию 0.2.0, которая поддерживает облачные хранилища Amazon S3 и Azure Blob Storage с улучшенным параллелизмом. - person pushpavanthar; 21.06.2019
comment
Как добавить дату из золотой таблицы в Azure SQL. Что касается вставки новых записей, это можно сделать с помощью bulkCopyToSqlDB. Но как поступать с обновлениями? - person reachify; 16.03.2020
comment
Я хотел бы знать, как быстро будут развертываться блоки данных и версии с открытым исходным кодом с функциями OPTIMIZE? - person Cristián Vargas Acevedo; 09.09.2020

  1. Таблицы с медальонами - это рекомендации, основанные на том, как наши клиенты используют озеро Дельта. Вам не обязательно точно следовать ему; тем не менее, это прекрасно согласуется с тем, как люди проектируют EDW. Что касается машинного обучения и какую таблицу использовать. Это будет выбор тех, кто занимается машинным обучением. Некоторые могут захотеть получить доступ к таблицам Bronze, потому что это необработанные данные, с ними ничего не было сделано. Другим может понадобиться Серебряный стол, потому что он считается чистым, хотя и дополненным. Обычно таблицы Gold содержат подробные ответы на четко сформулированные бизнес-вопросы.

  2. Не совсем. Таблицы Bronze - это необработанные данные о событиях, например одна строка для каждого события или измерения и т. д. Таблицы Silver также находятся на уровне событий / измерений, но они очень усовершенствованы и готовы к запросам, отчетам, информационным панелям и т. д. Таблица Gold может быть таблицами фактов и измерений, агрегатными таблицами , или тщательно подобранные наборы данных. Важно помнить, что Delta не предназначена для использования в качестве транснациональной OLTP-системы. Он действительно предназначен для рабочих нагрузок OLAP.

  3. Архитектура Delta - это название, которое мы дали конкретной реализации Delta Lake. Сам по себе это не коммерческий термин, но, надеюсь, он им станет. Существует достаточно информации, чтобы сравнить и сопоставить архитектуры Kappa и Lambda. Архитектура Delta четко описана в документации Delta и в блогах Databricks, технических обсуждениях, видео на YouTube и т. Д.

  4. Я бы спросил, что именно вы хотите сравнить? Скорость, особенности, продукты, ...?

  5. Delta Lake не пытается заменить какие-либо паб-подсистемы обмена сообщениями, у них разные варианты использования. Delta Lake может подключаться к каждому продукту, упомянутому вами как подписчик и издатель. Не забывайте, что Delta Lake - это открытый уровень хранения, который обеспечивает ACID-совместимые транзакции, высокую производительность и высокую надежность для озер данных.

Луи.

person Big Lou    schedule 14.07.2020
comment
Я хотел бы знать, как быстро будут развертываться версии блоков данных с функциями ОПТИМИЗАЦИИ? - person Cristián Vargas Acevedo; 09.09.2020
comment
Что вы имеете в виду под ... развертыванием с функциями оптимизации? - person Big Lou; 01.11.2020
comment
Большой Лу, docs.databricks.com/delta/optimizations/file-mgmt.html - person Cristián Vargas Acevedo; 04.11.2020
comment
Кристиан, время, необходимое для запуска процесса оптимизации (сжатия), зависит от нескольких факторов: 1. Общий размер оптимизируемых данных, 2. Количество сжимаемых файлов Delta, и 3. Размер и состав кластер, на котором выполняется оптимизация. - person Big Lou; 05.11.2020