Adding tables to Data Gate
From the dashboard, you can always add tables to your configured Data Gate instances.
Before you begin
The synchronization function requires that tables have a unique key. Therefore, you might need to add unique keys to some of your source tables. If the chosen key column is neither a primary key, nor a primary index, you must explicitly specify it as an informational unique constraint. This cannot be done in Cloud Pak for Data. You must alter or re-create the tables in Db2 for z/OS.
About this task
- When you add a Db2
for z/OS source table to
Data Gate, an alias name is created for the
target table. In most cases, this alias has the same name as the source table, unless the schema
name of the source table starts with the string
SYS, such as a user-created table named"SYSABC"."TABLETEST"or a system catalog table like"SYSIBM"."SYSTABLES". In the latter case, a different alias name is chosen, in which the schema name of the alias starts with the prefixDG_followed by the name of the Db2 subsystem that the source table resides in (the Db2 location name). To this string, an underscore character (_) is added, followed by the original schema and table name. The reason is a limitation in Db2 and Db2 Warehouse, which do not allow alias names to start with the stringSYS. For more information, see CREATE ALIAS statement. You find naming examples in the following table:Source table name Target alias name "SCHEMATEST"."TABLETEST""SCHEMATEST"."TABLETEST""SYSABC"."TABLETEST""DG_DB2A_SYSABC"."TABLETEST""SYSIBM"."SYSTABLES""DG_DB2A_SYSIBM"."SYSTABLES" - For Data Gate, table columns will always be encoded in Unicode unless you select Use this Data Gate instance for query acceleration in step 10 as you create the Data Gate instance.
- In general, tables in the target database are Unicode tables. That is, tables to be created in
the target database are converted to Unicode if you select Db2
for z/OS tables in a different format. Different
requirements with regard to column widths are taken into account during the conversion. In many
cases, the converted (Unicode) tables need wider columns than the EBCDIC-encoded tables to avoid a
truncation of values.
Suppose you have a VARCHAR column in an EBCDIC table. During the conversion to Unicode, the column width is determined as follows:
- For EBCDIC columns with a column width of up to 10 characters, the length is doubled.
- For EBCDIC columns with a greater column width, the original column width is multiplied by a buffer factor.
- Finally, the maximum length for Unicode VARCHAR columns is compared with either of these values,
and the smaller one is used as the Unicode column length. That is:
- For EBCDIC column widths lower than 10:
MIN(max. Unicode column width, EBCDIC column width * 2)- For EBCDIC column widths greater than 10:
MIN(max. Unicode column width, EBCDIC column width * buffer factor)
The resulting length after the conversion can be significantly greater than the original length.
Tables are not converted, however, if you selected Use this Data Gate instance for query routing in step 10. In this case, the original encoding of the Db2 for z/OS tables is preserved. For example, if the columns of an original Db2 for z/OS table are encoded in EBCDIC, the columns of the corresponding table in the target Db2 Warehouse database are also EBCDIC-encoded.
- Tables must have a unique constraint (primary key or primary index). If such a key does not exist in the table or cannot be determined, you must redefine the table and specify such a key. The columns that you choose for the key must contain unique values or form such values when they are combined.
- If you update Db2
for z/OS tables by running the
LOAD utility, you must set the following keywords for the LOAD utility:
SHRLEVEL CHANGELOG YES
- You might have to reload or even remove tables from Data Gate after an ALTER TABLE or ALTER TABLESPACE statement is applied in Db2 for z/OS.
- The Db2 source tables of your Data Gate
replicas have an attribute named DATA CAPTURE. The attribute can carry the value Y or N (default),
for yes or no. When synchronization is enabled for a table, the DATA CAPTURE attribute of the table
is set to the value Y. Once set, this attribute value persists, even if the table is disabled at a
later time. Bear this in mind, especially if you run applications that use the DATA CAPTURE
attribute.
The DATA CAPTURE attribute is set by an ALTER TABLE statement, which is run as part of the SYSPROC.ACCEL_SET_TABLES_REPLICATION stored procedure. However, the attribute can only be set successfully if the ID of the user who runs the stored procedure has ALTER TABLE authorization. If this is not the case, a database administrator must set the attribute for all tables Db2 for z/OS.