We’re smarter together. Learn from this collection of community knowledge and add your expertise.

What are MATables in SAS Marketing Automation and how do I manage them?

by SAS Employee ESuttonCI on ‎12-15-2015 03:47 PM (909 Views)

MATables are SAS datasets used by Customer Intelligence to represent the population (customers, households, etc.) of a node in a diagram. For example, if the count on a select node selecting customers is 3,456 then it will have an associated MATable containing 3,456 rows, each row containing one customer ID. These MATables are retained after the count is completed so that later executions of downstream nodes won't have to recreate the node population. This helps performance but can lead to exports being created using out of date information if export nodes and communication execution are used unwisely.


When are MATables created and deleted?

Each time you execute a node in a campaign, whether by scheduled execution, interactive execution or using the nodes' "run" or "update counts" action, a new MATable is created for that node. If the node had a count prior to this execution, then an MATable was associated with that node and is replaced by the new MATable. MATables that are no longer associated with a node are deleted when the campaign is closed. If you saved the campaign prior to closing it, then the old MATables are deleted.

But if you do not save the campaign prior to closing it, the new MATables will be deleted (since the campaign is reverting to its prior counts/node populations). MATables associated with nodes in a campaign are also deleted when the campaign is deleted. While there are some exceptions, in general a saved/closed campaign will have one MATable associated with it for each node in the campaign that has a count on the node.


How can I reduce the number of MATables being saved?

  • Clear counts on campaigns before saving them unless those counts/populations will still be correct when the campaign is next used (i.e. the underlying data will not have changed).
  • Delete old campaigns that are no longer being used (or at least open them, clear counts and save them if an archival copy of the campaign is needed).

When are new tables created to replace old ones?

  • It is important to remember that an MATable represents a node population at a point in time. If an existing MATable that was created a month ago is used instead of replaced by a new one, then the population as identified a month ago is used (i.e. does not reflect changes in the underlying data since the last execution.)
  • MATables are created only when a node is explicitly run or when a node does not already have a count/MATable and a node below it in the diagram is explicitly run.
  • Using the 'run' or 'update counts' feature on a node or nodes creates new MATables only for the node(s) selected.
  • SAS Marketing Automation supports several use scenarios so you have several options to reuse MATables versus replacing them with new versions:
    • One usage scenario is designing a new campaign. You often update counts on a newly-added node to see the size of the population at that point in their diagram. In this scenario, you probably don't want to rerun all nodes upstream from the node just to get an idea of the population of the newly added node.
    • Another scenario is building up a campaign interactively to produce a set of exports to be used immediately. For example, you build quick campaigns to produce timely emails to customers after some event, building the campaign as the event progresses, fine-tuning each node to achieve the desired size of contact group, and then you want to execute a communication to that group without having to rerun the nodes on which they have already created counts/MATables. This use scenario is achievable by executing a communication with the "use most recent data when executing communications" options deselected.
    • If executing communications, either via the scheduler or interactively, you may instead wish to recreate node populations at execution time to ensure that all changes to the underlying data since the last execution are reflected in the exports produced. This is accomplished by executing the communication with the "use most recent data when executing communications" option selected in the campaign, so that all old MATables are discarded and replaced by new ones. This ensures that the execution reflects the most current state of your DBMS.
    • Execution of a campaign, scheduled or via 'Execute now' in the execution dialog, clears counts on all nodes in the campaign prior to executing the communications since it is assumed that executing the entire campaign should always reflect the most recent state of your database.
    • Re-execution of nodes in a linked campaign is governed by the designer of the linked campaign via selection/deselection of the "use most recent data when referenced by a link node" checkbox in the linked campaign.

Saving the linked (target) campaign without counts also ensures that execution of campaigns referencing the target cell/campaign via a link node will trigger creation of current population MATables (since linked campaigns are opened read-only and any MATables produced during their execution will be discarded when the linked campaign is closed.)


Can I just delete all MATables older than X months?

In early MA releases, deleting MATables would cause "missing table" failures during execution if the deleted table was referenced. This occurred because checking for the existence of an MATable required executing a stored process, which greatly slowed opening campaigns.


In later releases (starting ~5.4), we decided that it was worth the performance hit on opening campaigns to avoid the execution failures and the existence of all MATables is checked when opening a campaign. You should now just receive a warning when opening the campaign; the node with which the deleted MATable was associated and all nodes following it in the diagram will lose their counts. Deleting or clearing counts on old campaigns is a safer option, though.

Your turn
Sign In!

Want to write an article? Sign in with your profile.

Looking for the Ask the Expert series? Find it in its new home: communities.sas.com/askexpert.