Question
Why are the Monthly Active Rows for Salesforce mostly used by the history tables?
Environment
Connector: Salesforce
Answer
Use Fivetran's history mode instead of Salesforce's history tables
Enable History Mode for the table and disable the history table in the Schema tab of the connector. Read about history mode here.
Disable Salesforce's history tables
Determine if you need history tables for your downstream reporting. If not, disable the tables from the Schema tab of your connector.
Cause
History tables have so many active rows due to the combination of how the history tables are structured and how we define an active row.
The purpose of the history tables is to capture every single change made to a particular record. When we sync that data, every change has a unique ID associated with it. We calculate an active row based off of the primary key of any given table, and the ID column of the history table is the primary key.
From our docs on MAR (Monthly Active Rows):
With MAR-based pricing, you don’t pay multiple times for updates on the same row in the same month. It doesn’t matter how many times a row is updated in a month. Other popular row-based pricing models, such as monthly synced rows, would charge you multiple times in that situation. Fivetran does not.
With history tables, each change is a new row with a new unique ID. There's never an ID that gets updated which does not count as an additional active row.