Подключение объектов ECS с помощью Greenplum
В этой статье я покажу Вам, как можно создать объект Greenplum для подключения к Dell ECS (Elastic Cloud Storage).
Dell ECS - это ведущая платформа объектного хранения данных, разработанная для поддержки как традиционных, так и новых рабочих нагрузок. Она может предоставлять прямой HTTP-доступ к данным через хранилище S3 и оптимизирована для работы с малыми и большими файлами. Это геораспределенное хранилище с высокой степенью согласованности, обеспечивающее глобальный доступ и автоматическое аварийное восстановление.
Внешняя таблица - это таблица базы данных Greenplum, содержащая данные, которые находятся вне базы данных. Ее можно использовать как обычную таблицу базы данных в командах SQL, таких как SELECT и INSERT, а также объединять с другими таблицами.
Greenplum Database PXF Extension Framework (PXF) обеспечивает доступ к этим внешним данным с помощью встроенных коннекторов, которые сопоставляют внешний источник данных с определением таблицы Greenplum Database.
PXF устанавливается с коннекторами HDFS и Hive. Эти коннекторы позволяют читать внешние данные файловой системы HDFS и таблиц Hive, хранящиеся в текстовом формате, Avro, RCFile, Parquet, SequenceFile и ORC.
Ниже представлена архитектура высокого уровня.
Перед созданием внешней таблицы необходимо установить и настроить PXF на хостах сегмента базы данных Greenplum, а также запустить PXF на каждом хосте и предоставить пользователю права на чтение в соответствующих частях файловой системы HDFS.
Ниже приведен пример внешней таблицы для подключения к csv-файлу, хранящемуся в ECS.
create external table public.sample_table ( person_id character varying(100), name character varying(100) ) location (‘pxf://greenplum/input/*.csv?profile=s3:text&server=ecs&FILE_HEADER=IGNORE’) on all format ‘csv’ ( HEADER ) LOG ERRORS SEGMENT REJECT limit 10000 ROWS; - Будут поддерживаться только внутренние журналы ошибок.
Теперь Вы можете запрашивать эту внешнюю таблицу, как обычную таблицу.
Пример:
select * from public.sample_table where person_id=1;
Приведенный ниже запрос можно использовать для проверки любой информации из журнала ошибок
SELECT gp_read_error_log(‘sample_table’);
Надеюсь, эта информация окажется полезной для тех, кто использует Greenplum и хочет попробовать подключиться к внешним источникам данных.





