Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik and ServiceNow Partner to Bring Trusted Enterprise Context into AI-Powered Workflows. Learn More!
cancel
Showing results for 
Search instead for 
Did you mean: 
MoeE
Partner - Specialist
Partner - Specialist

Are non-clustered columnstore indexes supported for MS-SQL Server source?

Hi,

There is a SQL Server source limitation stating that columnstore indexes are not supported. I'm aware that only Full Load is supported for these tables, and CDC is not possible.

I found this Microsoft documentation regarding columnstore indexes and replication that  states, "Replication with clustered columnstore indexes. Nonclustered columnstore indexes are supported"

It was not explicitly mentioned in the Qlik Replicate limitations whether or not non-clustered columnstore indexes are supported or not.

  • Does this mean all columnstore indexes are not supported?
  • Are non-clustered columnstore indexes supported for CDC?

Regards,

Mohammed

Labels (1)
4 Replies
MoeE
Partner - Specialist
Partner - Specialist
Author

Hi,

Just an update. I tested this by creating a dummy table, populating it, and adding a non-clustered columnstore index. Next, I created a full load + CDC task and ran it. I created a change in the source database and the result was that the table was suspended.

 

Table 'sandbox'.'SalesOrders' (subtask 0 thread 0) is suspended.
Table 'sandbox.SalesOrders' is not uniformly mapped across partitions. Therefore - it is excluded from CDC

 

This leads me to conclude that non-clustered columnstore indexes are also not supported.

Regards,

Mohammed

DesmondWOO
Support
Support

Hi @MoeE ,

Clustered columnstore indexes are not supported by either MS-REPLICATION or MS-CDC.

For nonclustered columnstore indexes, MS-CDC should work as expected. However, if you plan to use MS-REPLICATION, the table must also have a primary key defined.

Could you share the exact steps you reproduce the error?

Regards,
Desmond

 

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!
MoeE
Partner - Specialist
Partner - Specialist
Author

Hi @DesmondWOO,

 

Thanks for the response I appreciate it. I did this in a SQL -> SQL job using MS-Replication, not MS-CDC. This was my create table statement:

CREATE TABLE sandbox.SalesOrders
(
    OrderID INT IDENTITY(1,1) PRIMARY KEY,
    CustomerID INT,
    ProductID INT,
    Quantity INT,
    Price DECIMAL(10,2),
    OrderDate DATE
);

 

This was my data population statement:

INSERT INTO sandbox.SalesOrders (CustomerID, ProductID, Quantity, Price, OrderDate)
VALUES
(101, 2001, 2, 19.99, '2024-01-01'),
(102, 2002, 1, 49.99, '2024-01-02'),
(101, 2003, 5, 9.99,  '2024-01-03'),
(103, 2001, 3, 19.99, '2024-01-04'),
(104, 2004, 2, 29.99, '2024-01-05'),
(105, 2002, 1, 49.99, '2024-01-06');

 

Statement to add a non-clustered columnstore index:

CREATE NONCLUSTERED COLUMNSTORE INDEX NCCI_SalesOrders
ON sandbox.SalesOrders (CustomerID, ProductID, Quantity, Price, OrderDate);

 

Next, I ran a Qlik Replicate my SQL to SQL task in Full Load, Store Changes, and CDC mode. I changed the price of one of the rows on the source table. This caused the table to be suspended. I've attached the log file and task export. I'm using Qlik Replicate Nov 2023.

 

Regards,

Mohammed

DesmondWOO
Support
Support

Hi @MoeE ,

You warning message is about partition:

[SOURCE_CAPTURE ]W: Table 'sandbox.SalesOrders' is not uniformly mapped across partitions. Therefore - it is excluded from CDC

Please refer to the following article for more details:

https://community.qlik.com/t5/Official-Support-Articles/Qlik-Replicate-SQL-Server-non-uniformly-mapp...

Additionally, I ran the same script in my environment and did not encounter the issue. My Qlik Replicate version is v2025.11.0.285.


CREATE TABLE dbo.SalesOrders
(
OrderID INT IDENTITY(1,1) PRIMARY KEY,
CustomerID INT,
ProductID INT,
Quantity INT,
Price DECIMAL(10,2),
OrderDate DATE
);

INSERT INTO dbo.SalesOrders (CustomerID, ProductID, Quantity, Price, OrderDate)
VALUES
(101, 2001, 2, 19.99, '2024-01-01'),
(102, 2002, 1, 49.99, '2024-01-02'),
(101, 2003, 5, 9.99, '2024-01-03'),
(103, 2001, 3, 19.99, '2024-01-04'),
(104, 2004, 2, 29.99, '2024-01-05'),
(105, 2002, 1, 49.99, '2024-01-06');

 

CREATE NONCLUSTERED COLUMNSTORE INDEX NCCI_SalesOrders
ON dbo.SalesOrders (CustomerID, ProductID, Quantity, Price, OrderDate);

 

-- Then I started task (full load + CDC)

update dbo.SalesOrders set price=88.99 where CustomerID=101;

-- My task captured 2 change events

 

Regards,
Desmond

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!