This SAS KB article describes some tips for generating SAS Customer Intelligence 360 and SAS Marketing Automation metadata.
- Check where the SAS Metadata library points to. See the Custom Property MAMeta in your Information Map, as shown in the image below. (Note: Ensure that you have enough disk space available for this directory.)

- Ensure that you do not calculate counts for variables that do not require counts to be generated. See the Custom Attributes properties of the Information Map to determine whether counts are updated for data items.

- Ensure that no ID type fields are marked for metadata generation. Any field that contains a large number of unique values is not useful for metadata and drastically slows down the process.
For example, an Account Number field contains unique values and causes the metadata process to select every value in the table. You must exclude all ID fields and columns with a lot of unique values from generating metadata.
Note: It is not possible to perform a select on Level=ID items, so there is no point generating metadata against them!
- Review the join criteria in your Information Map. In some scenarios, Information Maps contain circular joins across tables, which causes queries to join into a table that is not necessary for a particular query. If there are circular joins, check whether they are truly necessary and determine if it would make better sense to use an alias table.
- Calculated Data Items in the Information Map:
Check any calculated items in the Information Map. Sometimes, users create calculated data items with a SAS expression that is not translated to the database. As a result, too much data is moved to the SAS tier to perform the query, which slows down the whole process.
- One issue might occur if you define the Numeric fields as Measures. You should define most Numerics as Category in order for the fields to generate an SQL with a Where criteria. When the Numerics are measures, the SAS Customer Intelligence 360 select SQL that is generated is “Having”, which involves the default Aggregate listed for the measure. So, you should use Measure only for columns that are many-1 with the subject and where you want to select based on some aggregation (like Sum or Count distinct…). The Group by clause generated for Measures is the Subject key.
- Have you tried to run the MA Metadata process one after each other? Start by generating Character Data first, then Numeric. Which process fails or takes longer?
$ ./dm.sh gmd --bcName "My Business Context" --character SQL -maxconcurrent 2
or
$ ./dm.sh gmd --bcName "My Business Context" --numeric SQL -maxconcurrent 2
- What SAS Marketing Automation Metadata generation method do you use? (PROC SQL or SAS SUMMARY?) Have you tried both methods? Does an error message occur with both methods?
– –method <method-name> is the query method for all tables. SQL or Summary are the values for <method-name> for the procedure to be used as query method. (For example, --method SQL.)
For more information, see PROC SQL and PROC SUMMARY.
Note: If the Information Map is not complex, but the underlying data is very large, generate the metadata by using the SAS SQL procedure (PROC SQL). In the PROC SQL method, an SQL query is streamed to the SAS procedure as XML, which then generates the counts for discrete variables.
- Ensure that all of the fields marked as Character (not Numeric in the underlying database).
- Ensure that you did not define the metadata to be created as binary.
- What is the size of the data mart? How many data items are in the Information Map? How many of those data items did you designate as candidates for SAS Customer Intelligence 360 metadata generation?
Note: Look at the METADATA=Yes | Values | Counts custom property.
Ensure that DATE and DATETIME Database Columns are properly configured in the associated Data Item Field Expression Type (DATE=”Date”, DATETIME=”TimeStamp”). If these properties do not match, strange problems like Out Of Memory errors or zero counts in SAS Customer Intelligence 360 occur.
Complete the following steps to determine whether the properties match:
-
- Log on to SAS® Information Map Studio.
- Browse to your target Information Map.
- Select the problem Date Item.
- Click the item once. The Type is listed in the Expression Settings window.
- Click Edit… The Expression Editor window is displayed.
- Click the Validate Expression button and ensure that the expression is valid.