Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Architecture for reports

We need to build reports in our system. We can't build them online on tables, because of 2 reasons:

  1. Complicated logic
  2. We want to move reports to another system (just publish some facts them and they build reports)

So, we need to collect facts about user actions. Today we have some job, that analyze CDC changes. But this approach has some problems:

  1. CDC change is not a fact we need, we must do some operations
  2. Slow processing of CDC changes

But it helps us to collect all actions (even made by sql update script) and it's async (has no influence on user operation perfomance).

Another way - collect facts on Business Logic layer, and send them to another system or save to table. But it's synchronously operation, and difficult to collect facts made by sql scripts.

So, what is the optimal way to do it? Requirements:

  1. Collect all changes/facts (even made by sql scripts)
  2. Has little influence on user operations perfomance
like image 851
Backs Avatar asked Apr 20 '26 14:04

Backs


1 Answers

I assume you don't want to report from Transaction Server. So you may need to setup a reporting server via replication ( Merge or Transaction Replication).

Replication, Change Tracking

like image 191
nshah Avatar answered Apr 22 '26 03:04

nshah



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!