Registry Tables in a TDD - SuperCHANNEL
Registry tables can be used to give SuperCHANNEL information about the design of the target database, such as which tables are fact tables, and which are classifications.
When dealing with a TDD source, you can use all the same registry tables that you would use if your data was in a relational source; each registry table must be in its own delimited text file, just like all your other TDD tables. See Registry Tables for more information about the available registry tables and what they do.
Update the Control Files
The TDD format uses a set of control files that define the structure of the tables and columns in the database. The first thing you need to do if you want to use registry tables with a TDD source is to update your control files so that they include references to all the registry tables.
<database>.DBTables
This control file lists all the tables in the database, so you need to add lines relating to any registry tables in your source data. For example:
__SUPER_CHANNEL__,F
FACTS,F
CLASSIFICATIONS,F
MEASURES,F
DATABASE_LABEL,F
COLUMN_LABEL,F
COUNT_DEFAULT,F
TABLE_LABEL,F
<database>.DBColumns
This control file lists all the table columns, so you need to add lines describing the columns in the registry tables. For example:
__SUPER_CHANNEL__,reg_key,Registry Key,string,128,0,0
__SUPER_CHANNEL__,reg_value,Registry Value,string,128,1,0
FACTS,TABLENAME,Registered Fact Table,string,128,0,0
CLASSIFICATIONS,TABLENAME,Registered Classification,string,128,0,0
CLASSIFICATIONS,VALUECODE,Code for Display,string,128,1,0
CLASSIFICATIONS,DISPLAYNAME,Name for Display,string,128,2,0
MEASURES,COLUMNNAME,Registered Measure Column,string,128,0,0
MEASURES,TABLENAME,Measure Column's Table,string,128,1,0
DATABASE_LABEL,LABEL,Database Label,string,128,0,0
COLUMN_LABEL,TABLENAME,TableName,string,128,0,0
COLUMN_LABEL,COLUMNNAME,ColumnName,string,128,1,0
COLUMN_LABEL,LABEL,Label,string,128,2,0
COUNT_DEFAULT,TABLENAME,TableName,string,128,0,0
COUNT_DEFAULT,COLUMNNAME,ColumnName,string,128,1,0
TABLE_LABEL, TABLENAME, TableName,string,128,0,0
TABLE_LABEL, LABEL, Label, string,128,1,0
<database>.DBFiles
This control file contains a lists of files where table data is located, so you need to add the list of files that contain the individual registry tables. For example:
__SUPER_CHANNEL__,__SUPER_CHANNEL__.csv
FACTS,FACTS.csv
CLASSIFICATIONS,CLASSIFICATIONS.csv
MEASURES,MEASURES.csv
DATABASE_LABEL,DATABASE_LABEL.csv
COLUMN_LABEL,COLUMN_LABEL.csv
COUNT_DEFAULT,COUNT_DEFAULT.csv
TABLE_LABEL,TABLE_LABEL.csv
These source files must be located in the search path specified in <database>.DBCatalog.
<database>.DBDelim
This control file specifies the delimiters used to separate table columns. Each registry table file used must have an entry in the control file to specify the delimiter in use. For example, to specify that the files are comma delimited and that the double quote character is used to enclose values that contain a comma:
__SUPER_CHANNEL__,2C,22
FACTS,2C,22
CLASSIFICATIONS,2C,22
MEASURES,2C,22
DATABASE_LABEL,2C,22
COLUMN_LABEL,2C,22
COUNT_DEFAULT,2C,22
TABLE_LABEL,2C,22
<database>.DBPrimaryKeys
This control file specifies the primary keys used in different tables. It must include the primary keys for the registry tables. For example:
__SUPER_CHANNEL__,reg_key
FACTS,TABLENAME
CLASSIFICATIONS, TABLENAME
MEASURES, TABLENAME, COLUMNNAME
DATABASE_LABEL, LABEL
COLUMN_LABEL,TABLENAME,COLUMNNAME
TABLE_LABEL,TABLENAME,LABEL
Populate the Registry Tables
Populate the registry table files in the same way that you would populate the registry tables in a relational source.
For example:
- The __SUPER_CHANNEL__ root table must list all the registry tables in use.
- The FACTS table must specify all the tables in the TDD that are fact tables.
- The CLASSIFICATIONS table must specify all the tables in the TDD that are classsifications.
- The MEASURES table must specify all the columns in fact tables that are measures.
- The DATABASE_LABEL table can contain a label for the database.
- The COLUMN_LABEL table can contain labels (display names) for the fact table columns.