Glue, Athena Flashcards
Glue
Зачем нужен этот сервис?
Какой другой сервис он может помочь оптимизировать? Как? (классический use-case)
Glue - это serverless сервис для запуска ETL jobs.
Конвертировать данные в Parquet
формат из CSV
формата
для оптимизации сервиса Athena
Данные конвертируются и перекачиваются в другой S3 bucket
Parquet, CSV, ORC, JSON
В чём отличие между этими форматами данных?
Parquet
и ORC
- это columnar
формат данных
Он более оптимален для performance
и cost
, чем CSV
и JSON
Glue Job Bookmark
Glue DataBrew
Что за фичи?
Glue Job Bookmark
- это фича сервиса Glue
, которая предотвращает повторную обработку старых данных.
“Prevent re-processing old data”
Glue DataBrew
- это фича сервиса Glue, которая чистит и нормализует данные.
Glue Elastic Views
Что за фича?
- Нужен ли кастомный код?
- Нужен ли dedicated worker?
- Какая SQL технология используется?
Elastic Views
- это фича сервиса Glue
, которая строит SQL Views на основе данных из разных источников (из S3, DynamoDB, RDS вместе в одной “SQL вьюшке”)
- Никакого кастомного кода.
- Serverless
- Использует виртуальную таблицу (materialized view)
Glue Streaming ETL
Что за фича?
Что можно с помощью неё делать?
Streaming ETL
- это фича сервиса Glue
, которая запускает ETL jobs в STREAMING режиме (без этой фичи по-умолчанию используется BATCH режим).
Благодаря этому можно выполнять ETL jobs, читая данные из Kinesis Data Streams
, Kafka Streams (MSK)
Glue и EMR
Чем похожи? Чем отличаются? Ключевые слова
Похожи тем, что оба используют Spark
-
EMR
- big data, Hadoop, все продукты Apache (включая Spark) -
Glue
- serverless ETL пайплайны (обычно делаются на Spark)
Glue Data Catalog
Glue Data Crawler
Что за фичи? Как связаны?
Какие сервисы могут работать on top of Glue Data Catalog?
Data Catalog
- это фича сервиса Glue
, которая
- предоставляет хранилище для метаданных о наших БД
- запускает Glue Data Crawler
’ов поверх разных data-sources (S3, DynamoDB, RDS, JDBC on-premise DB)
Glue Data Crawler
”ползает” по базе данных, собирает всю МЕТАИНФОРМАЦИЮ о таблицах и шлёт её в Glue Data Catalog
Метаинформация включает названия колонок, типы данных, etc
Glue ETL jobs
, Athena
, Redshift Spectrum
и EMR
могут делать data-discovery запросы к этому Glue Data Catalog
Athena
Для чего нужен этот сервис?
Какие форматы данных поддерживает?
Где хранит результаты своих запросов?
Как сделать визуализацию данных?
Athena
- serverless сервис для выполнения SQL
запросов к данным в S3
бакетах.
Поддерживает форматы CSV
, JSON
, ORC
, Avro
, Parquet
Результат выполнения Athena запросов хранится в S3
Сервис Amazon QuickSite часто используют в дополнение к Athena
для создания UI Dashboards и Reporting
bucket ← Athena ← QuickSite
Как улучшить performance у Athena?
- формат данных
- сжатие данных
- partitioning данных
- размер файлов
- Использовать
columnar format
, сканировать только нужные колонки- less scan → cost saving, higher performance
- форматы
Parquet
иORC
подходят
- Делать
data compression
- через механизмы
bzip2
,gzip
,lz4
,snappy
- через механизмы
- Делать
partitioning
dataset
’ов через подробныеpath
’ы вS3 bucket
’е- например,
s3://athena-example/flights/year=1991/month=2/day=4/flight195
вместоs3://athena-example/flights/flight195
- например,
- Предпочитать более крупные файлы вместо множества мелких
Federated Query в Athena
Что за фича?
Что такое Data Source Connector?
Federated Query
- фича сервиса Athena,
которая позволяет запрашивать данные НЕ только из S3
, но и из
- SQL
/NoSQL
баз данных
- CloudWatch
- DynamoDB
- объектных хранилищ в on-premise
- etc
Через Lambda создаётся Data Source Connector