Обновление локальной Sql базы данных сервера с Cloud Snowflake Server - самый быстрый способ получения новых данных - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть локальная SQL таблица БД сервера с около 5 миллионами записей. У меня есть сервер снежинок, который имеет аналогичную таблицу, которая обновляется ежедневно. Мне нужно обновить свою локальную таблицу новыми записями, которые добавлены в таблицу Snowflake.

Этот код работает, но для получения около 200 000 записей требуется около часа. Я вставляю записи в локальную временную таблицу, а затем вставляю их в мою Sql базу данных сервера.

Есть ли более быстрый способ извлечь записи из Snowflake и поместить их на SQL Сервер?

TIA JohnB

ВЫБРАТЬ A. * в # Sale2020New FROM OPENQUERY (SNOW, 'SELECT * FROM "DATA". "PUBLI C". "Sales", где "Sales". "Date"> = '' 1/1/2020 '' и "Sales". "Date" <= ''12 / 31/2020' '') A Left JOIN [SnowFlake]. [Dbo] .Sale2020 B ON B.PrimaryKey = A .PrimaryKey ГДЕ b.PrimaryKey НЕДОСТУПЕН; </p>

1 Ответ

0 голосов
/ 08 апреля 2020

Требуется ли 1 час только для извлечения данных из Snowflake или всего процесса?

Чтобы ускорить извлечение данных из Snowflake, внедрите кластеризацию по столбцу DATE в таблице снежинок. Это позволит сократить микроперегородки и избежать полного сканирования таблицы. Вы можете получить больше информации о кластеризации здесь

Что касается дельта-загрузки, вместо объединения вы можете применить фильтр к столбцу DATE к текущей дате, что позволит избежать дорогостоящей операции объединения и фильтрации данных. на старте.

     SELECT * FROM "SALES" 
 where "Sales"."Date" = '2020-04-07' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...