Загрузка данных из Spark в Snowflake - PullRequest
0 голосов
/ 07 мая 2020

Пытаюсь загрузить данные из искры в снежинку. Используется ли в нагрузке для снежинки искровой двигатель или он полностью выталкивается до снежинки?

Спасибо, Навид

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Spark Connector применяет предикат и раскрывающийся запрос путем сбора и анализа логических планов Spark для операций SQL. Когда источником данных является Snowflake, операции преобразуются в запрос SQL, а затем выполняются в Snowflake для повышения производительности.

Однако, поскольку этот перевод требует почти однозначного перевода Spark SQL к выражениям Snowflake, не все операторы Spark SQL можно сдвинуть вниз. При сбое развертывания коннектор возвращается к менее оптимизированному плану выполнения. Вместо этого неподдерживаемые операции выполняются в Spark.

0 голосов
/ 07 мая 2020

Да, Snowflake частично использует механизм распределенного выполнения Spark.

По состоянию на начало 2020 года запись из Spark с использованием коннектора Snowflake происходит в два основных c этапов .

Сначала набор данных записывается в файл идеального размера и формата (CSV по умолчанию, но он использует JSON, если поля вашего набора данных включают типы вариантов ) в облако. на основе хранилища (S3, WASB, et c.) местоположение автоматически определяется как стадия , и это происходит как распределенный шаг, использующий выполнение Spark engine .

Далее, оператор COPY INTO используется для загрузки файлов, загруженных на сцену , в целевую таблицу Snowflake.

...