4

Я пытаюсь разработать конкретный способ скопировать все данные из определенной таблицы (назовем ее opportunities) и скопировать ее в новую таблицу с меткой даты, скопированной в новую таблицу, с единственной целью генерации исторических данных в базу данных, размещенную в Azure Data Warehousing.Скопируйте данные из таблицы SQL Server в историческую таблицу и добавьте временную метку времени, скопированного?

Каков наилучший способ для этого? До сих пор я пошел и создал дубликат таблицы в хранилище данных, с дополнительным столбцом под названием datecopied

Запрос Я начал использовать это:

SELECT OppName, Oppvalue 
INTO Hst_Opportunities 
FROM dbo.opportunities 

Я не совсем уверен, куда идти отсюда!

+0

Вы пытаетесь разбить свои данные. Поиск с этим термином должен помочь. Какая версия SQL Server это? Если это разделение на 2016 год доступно на стандартном уровне в пакете обновления 1 (SP1). –

+0

Спасибо - его 2005 год, но я синхронизирую данные с хранилищем данных Azure с использованием Azure Data Factory. Основываясь на приведенных ниже комментариях, хотя я могу изменить это как сервер IAAS сервера Azure SQL 2016. – Seiryth

+0

просто сделал немного чтения - будет ли горизонтальное разбиение позвольте мне создать график через powerbi, показывающий рост потенциального дохода? – Seiryth

ответ

2

SELECT INTO не поддерживается в Azure SQL хранилища данных в это время. Вы должны ознакомиться с синтаксисом CREATE TABLE AS или CTAS, что эквивалентно в Azure DW.

Если вы хотите, чтобы установить дату копирования, просто присвоить его переменной до CTAS, что-то вроде этого:

DECLARE @copyDate DATETIME2 = CURRENT_TIMESTAMP 

CREATE TABLE dbo.Hst_Opportunities 
WITH 
(
    CLUSTERED COLUMNSTORE INDEX, 
    DISTRIBUTION = ROUND_ROBIN 
) 
AS 
SELECT OppName, Oppvalue, @copyDate AS copyDate 
FROM dbo.opportunities; 

Я должен также упомянуть, что вариант использования Azure ДГ миллионов и миллиарды строк с терабайтами данных. Он не имеет тенденций к успеху на низком уровне, поэтому подумайте, нужен ли вам этот продукт, традиционная установка SQL Server 2016 или база данных Azure SQL.

+0

Хорошо спасибо, это действительно хорошая пища для размышлений. сам размер базы данных составляет около 5 ГБ данных CRM, поэтому он, вероятно, не оправдывает хранилище данных, а затем для исторических данных. – Seiryth

+0

продолжение комментария: в конечном счете, то, что я за этим, это возможность графически отображать общую сумму потенциального дохода в бизнесе на ежемесячной основе, на момент этого месяца, чтобы показать рост или снижение потенциального дохода. – Seiryth

+0

Здравствуйте, wobob, jut, чтобы следить за этим предложением, я попытался добавить в поле «from» имя базы данных, существующее на другом сервере.в основном, что я пытаюсь сделать, это запустить запрос выбора из таблицы на одном сервере и скопировать результаты с меткой времени на склад - им интересно, следует ли мне просто использовать обычный SQL вместо этого? – Seiryth

1

Вы можете написать вставки в запросе на выборку, как показано ниже, который будет работать с SQL Server 2008 +, Azure SQL Datawarehouse

INSERT INTO Hst_Opportunities 
    SELECT OppName, Oppvalue, DATEDIFF(SECOND,{d '1970-01-01'},current_timestamp) 
    FROM dbo.opportunities 
+0

Разве это не привело бы к большим дампам для изменения миллисекунд, секдов, минут? На всякий случай позже вы захотите выбрать конкретный дамп. – tobi6

+0

Я думал, что вы будете использовать datettime для даты скопированы. Для конкретного дампа вы можете получить unix_timestamp с помощью DATEDIFF (SECOND, {d '1970-01-01'}, current_timestamp) это вернет unix_timestamp в значении секунд. Я только что обновил свой ответ. –

+0

Все еще не уверен, что это не приведет к разным временным меткам с длинными прогонами ... – tobi6

 Смежные вопросы

  • Нет связанных вопросов^_^