Если данные находятся на S3, почему бы не создать над ним EXTERNAL TABLE
.Затем, если скорость запроса по внешней таблице недостаточна, вы можете загрузить ее, используя оператор CREATE TABLE AS SELECT
, во временную таблицу и, после загрузки, переименовать имя в обычное имя таблицы.
Набросок SQL:
CREATE EXTERNAL TABLE external_daily_batch_20190422 (
<schema ...>
)
PARTITIONED BY (
<if anything to partition on>
)
ROW FORMAT SERDE <data format>
LOCATION 's3://my-s3-location/2019-04-22';
CREATE TABLE internal_daily_batch_temp
DISTKEY ...
SORTKEY ...
AS
SELECT * from external_daily_batch_20190422;
DROP TABLE IF EXISTS internal_daily_batch__backup CASCADE;
ALTER TABLE internal_daily_batch rename to internal_daily_batch__backup;
ALTER TABLE internal_daily_batch_temp rename to internal_daily_batch;
Инкрементная загрузка невозможна?
Кстати, все ли ваши 10 ТБ данных могут изменяться?Возможно ли инкрементное обновление?