added external tables and pet project greenplum

This commit is contained in:
Dmitry Medvedev
2026-07-30 00:37:12 +05:00
parent 292e4da4bc
commit 1f770a0413
2 changed files with 311 additions and 0 deletions
@@ -0,0 +1,50 @@
## Задача 1:
У тебя в Hive есть таблица `sales (id, amount)`
Ты хочешь читать её из Greenplum, **не копируя**.
CREATE EXTERNAL TABLE hive_sales (
id INT,
amount NUMERIC
)
LOCATION ('pxf://hive.sales?PROFILE=hive')
FORMAT 'CUSTOM' (FORMATTER='pxfwritable_import');
Greenplum ↔ PXF ↔ Hive Metastore
│
▼
HDFS файлы (ORC, Parquet...)
### ❓ Вопросы:
1. Где реально хранятся данные?
ЖАННЫЕ ХРАНЯТСЯ В ХРАНИЛИЩЕ HIVE.
2. Можно ли писать обратно в Hive?
ДА, КОНЕЧНО.
3. Что если структура таблицы в Hive изменилась?
В ТАКОМ СЛУЧАЕ ПРИ ЗАПРОСЕ МОГУТ БЫТЬ ОШИБКИ ИЛИ ПУСТЫЕ СТОЛБЦЫ СО ЗНАЧЕНИЯМИ, ТАК КАК GREENPLUM НИКАКИМ ОБРАЗОМ НЕ СМОЖЕТ УСЗНАТЬ КАКИЕ ИЗМЕНЕНИЯ ПРОИЗОШЛИ. ПОЭТОМУ НЕОБХОДИМО ПЕРЕСОЗДАТЬ ВНЕШНЮЮ ТАБЛИЦУ ПУТЕМ УДАЛЕНИЯ И СОЗДАНИЯ.
## Задача 2:
Есть файл `s3://my-data-bucket/orders.parquet`. Нужно читать его как таблицу.
CREATE EXTERNAL TABLE s3_orders (
order_id INT,
amount NUMERIC
)
LOCATION ('pxf://my-data-bucket/orders.parquet?PROFILE=s3')
FORMAT 'CUSTOM' (FORMATTER='parquet');
### 🔍 Визуализация:
Greenplum ↔ PXF ↔ S3
▼
Чтение .parquet
### ❓ Вопросы:
1. Данные копируются в Greenplum?
НЕТ, ДАННЫЕ НЕ КОПИРУЮТСЯ.
2. Что быстрее: EXTERNAL или `CREATE TABLE AS SELECT`?
CREATE TABLE AS SELECT БЫСТРЕЕ, НО МЕНЕЕ ЭФФЕКТИВНЕЕ В ДОЛГУЮ, ТАК КАК РАСХОДУЮТСЯ ОБЪЕМЫ ПАМЯТИ И ДОП МОЩНОСТИ.