Массовое обновление Talend Big-Data tMSSQLBulkExec возвращает столбец идентификаторов «PK_column» содержит недопустимый INCREMENT - PullRequest
0 голосов
/ 14 мая 2018

Я работаю над процессом ETL, который вставляет новые данные и обновляет измененные данные из промежуточной таблицы в таблицу измерений в базе данных SQL Server.

Я настроил таблицу в SQL Server так, чтобы она выглядела так:

CREATE TABLE [schema].[dim_learning_activity](
    [dim_learning_activity_id] [bigint] IDENTITY(1,1) NOT NULL,
    [activity_fk] [bigint] NOT NULL,
    [name] [nvarchar](500) NOT NULL,
    [code] [nvarchar](500) NULL,
    [description] [nvarchar](500) NULL,
    [label] [nvarchar](500) NULL,
    [date_last_update] [date] NULL,
    [start_date] [date] NULL,
    [end_date] [date] NULL,
    [active] [int] NULL,
    [est_cred_hours] [float] NULL,
    [ConType_Name] [nvarchar](500) NULL,
    [Txt1] [nvarchar](500) NULL,
    [TechnicalCourse] [nvarchar](500) NULL,
    [TechnicalCourseCategory] [nvarchar](500) NULL,
    [CreationDt] [date] NULL,
 CONSTRAINT [PK_dim_learning_activity_id] PRIMARY KEY CLUSTERED 
(
    [dim_learning_activity_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
 CONSTRAINT [IX_dim_learning_activity] UNIQUE NONCLUSTERED 
(
    [activity_fk] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

Где вы можете увидеть dim_learning_activity_id - это первичный ключ.

Ниже приведены настройки, которые у меня есть в настоящее время в Talend:

Talend Layout

Файл, который выводит Talend, имеет правильный формат (столбцы, разделенные «%%» и строки «\ n»):

5458%%108129%%Learning Item Name%%108129%%%%Curriculum%%2018-05-11%%%%%%1%%0.5%%Products (Technical Content)%%Technical%%Technical%%Delta%%2018-05-11

Что равняется:

dim_learning_activity_id = 5458
activity_fk = 108129
name = Learning Item Name
code = 108129
description = null
label = Curriculum
date_last_update = 2018-05-11
start_date = null
end_date = null
active = 1
est_cred_hours = 0.5
ConType_Name = Products (Technical Content)
Txt1 = Technical
TechnicalCourse = Technical
TechnicalCourseCategory = Delta
CreationDt = 2018-05-11

Запись уже находится в таблице измерений, но она не будет обновляться с помощью Talend tMSSQLBulkExec с выбранным параметром «Массовое обновление».

Я попытался полностью стереть таблицу и начать с нее с нуля, и все еще получаю эту ошибку, даже при новом запуске задания, когда таблица пуста и все, что она делает, это вставляет, ошибки обновления выводятся вместе с та же ошибка.

Я также попытался обновить файл activity_fk (идентификатор системы записи), что приводит к той же ошибке.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...