Attunity Replicate User Guide PDF
Attunity Replicate User Guide PDF
Version 6.2
The Programs (which include both the software and documentation) contain proprietary information;
they are provided under a license agreement containing restrictions on use and disclosure and are also
protected by copyright, patent, and other intellectual and industrial property laws. Reverse
engineering, disassembly, or decompilation of the Programs, except to the extent required to obtain
interoperability with other independently created software or as specified by law, is prohibited.
The information contained in this document is subject to change without notice. If you find any
problems in the documentation, please report them to us in writing. This document is not warranted to
be error-free. Except as may be expressly permitted in your license agreement for these Programs, no
part of these Programs may be reproduced or transmitted in any form or by any means, electronic or
mechanical, for any purpose.
If the Programs are delivered to the United States Government or anyone licensing or using the
Programs on behalf of the United States Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS Programs, software, endpoints, and related documentation and technical
data delivered to U.S. Government customers are "commercial computer software" or "commercial
technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific
supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the
Programs, including documentation and technical data, shall be subject to the licensing restrictions set
forth in the applicable Attunity license agreement, and, to the extent applicable, the additional rights
set forth in FAR 52.227-19, Commercial Computer Software—Restricted Rights (June 1987). Attunity
Ltd., 70 Blanchard Road, Burlington, MA 01803
The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other
inherently dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-
safe, backup, redundancy and other measures to ensure the safe use of such applications if the
Programs are used for such purposes, and we disclaim liability for any damages caused by such use of
the Programs.
Attunity is a registered trademark of Attunity Ltd and/or its affiliates. Other names may be trademarks
of their respective owners.
The Programs may provide links to Web sites and access to content, products, and services from third
parties. Attunity is not responsible for the availability of, or any content provided on, third-party Web
sites. You bear all risks associated with the use of such content. If you choose to purchase any products
or services from a third party, the relationship is directly between you and the third party. Attunity is
not responsible for: (a) the quality of third-party products or services; or (b) fulfilling any of the terms of
the agreement with the third party, including delivery of products or services and warranty obligations
related to purchased products or services. Attunity is not responsible for any loss or damage of any sort
that you may incur from dealing with any third party.
Contents
1 | Introduction 33
Replication Explained 33
Attunity Replicate 34
Limitations 35
System Architecture 36
Replication Tasks 37
Using Multiple Tasks 37
Full Load and CDC Processes 37
Replication Topologies 38
One to One 38
Logical Independence 39
Hub and Spoke 39
Glossary 818
Index 819
Note The term "endpoint" is used generically throughout this guide to refer to a data
repository that can be used as a source and/or target in an Attunity Replicate task.
Examples of such repositories include relational databases (such as Oracle) and files.
In this chapter:
Replication Explained
Attunity Replicate
Limitations
System Architecture
Replication Tasks
Full Load and CDC Processes
Replication Topologies
Replication Explained
Replication is a process that keeps two or more collections of computerized information
identically synchronized. It facilitates:
Load reduction: Keeping a complete or partial copy of a collection on a different
server reduces the load on the main server.
Improved service: Accessing a copy of the data can provide better service to users
than having them access the original data..
Restricted data access: If some users should only have access to a subset of data,
replicating only part of a collection makes it easy to enforce security restrictions.
Geographic distribution: Making only a subset of data relevant to a specific node
(or location) available is beneficial in widely distributed enterprises (such as a chain of
retail stores or warehouses). You can still make all data available at a central location
for less frequent use.
Disaster Recovery: Keeping a copy of the main data available allows for setting up
rapid fail-over clusters (the capability to switch over to a redundant or standby
computer server in case the main system fails).
"Cloud" computing: Replicating data allows for implementing what is commonly
known as cloud computing (the on-demand storage, management, and processing of
Internet-based data).
Attunity Replicate
Attunity Replicate is a simple, powerful, easy-to-implement solution that provides
replication between various endpoints. Replicate lets you:
Load data efficiently and quickly to operational data stores/warehouses.
Create copies of production endpoints.
Distribute data across endpoints.
Replicate has high throughput, speed, and scale. It is designed to scale and support large
scale enterprise data replication scenarios with a multi-server, multi-task, and multi-
threaded architecture.
Replicate consists of a Web-based console and a replication server to replicate data across
heterogeneous data sources. It provides users with instant visibility into current and
historical exceptions, status, performance, and resource usage information.
Replicate can execute replication tasks between enterprise endpoints including Oracle,
Microsoft SQL Server, and IBM DB2. It uses a "Click-2-Replicate" design that simplifies the
replication process by automating the steps required to build a replication solution.
When you run a task in Replicate, you can select between:
Limitations
The following limitations apply:
Replicate does not support replication of Primary Keys that are LOB data types.
When the Limit LOB size to option is enabled, replication of structured data LOBs (e.g.
XML, JSON, IMAGE, etc.) may truncate (and thereby invalidate) the structured data in
the target LOB.
In Batch Optimized Apply mode, if the target table has more columns than the source
table, any values in the extra columns will be replaced with NULL.
The workaround is to create two tasks. One task for the target table(s) with extra
columns and the other task for the source table(s) which have the same number of
columns as the target tables. Then, run the task for the target table(s) with extra
columns in Transactional Apply mode and run the other task (where the target tables
do not have extra columns) in Batch Optimized Apply mode. Note, however, that
updating large tables in Transactional Apply mode may impact performance.
When Replicate creates a new table in the target endpoint, it defines only one index on
the table. The index will either be the Primary Key or the first Unique Key (according
to alphabetical order) of the table. No other indexes will be defined in the target. If
additional indexes are required, these will need to be defined manually. It should be
noted however that As Replicate does not support tables that have both a Primary Key
and a Unique Key, only one of them should be defined.
LOB columns are always created as nullable on the target database. If you create the
target table(s) manually, then you must set all LOB columns to nullable.
If you stop a task after Full Load completes, perform some changes on the source
tables, and later resume the task from timestamp (by selecting the Start processing
changes from run option), some changes may not be replicated to the target. This
usually only happens if the transaction logs in the source database have been deleted
due to a log purge policy. In this case, Replicate will resume the task from the last
change in the current transaction log.
When replicating tables without a Primary Key, there is no way to verify whether a
record already exists on the target.
Replication of calculated values is not supported during Change Processing.
System Architecture
The following diagram shows the basic architecture of Attunity Replicate.
In this diagram, the source data and metadata are part of the source server. The
transaction log reader can be on the source server (for efficiency) or on the Attunity
Replicate server (for zero footprint on the source). Filtering and compression of the source
rows/logs can occur on the source or Attunity Replicate servers.
In the initial load process, Attunity Replicate reads a filtered stream of rows (with relevant
columns only) and passes them to the transformation process for further filtering and
subsequent writing to the target endpoint (in the expected output format).
The CDC process obtains a stream of filtered events or changes in data or metadata from
the transaction log file. It then buffers all changes for a given transaction into a single unit
before forwarding them to the target when the transaction commits. During the initial load
process, CDC also buffers all changes that occur within a transaction until all affected
tables have been loaded.
The Designer/Console server, which is part of the Replication server, is a Web-based
application that serves as the user interface for dealing with designing or modifying the
replication system and displaying and controlling its operation.
Replication Topologies
Attunity Replicate supports the following topologies for replication tasks:
One to One
Logical Independence
Hub and Spoke
One to One
In a one-one topology, there is one source and one target endpoint. When the source and
target endpoints are distinct, Attunity Replicate guarantees transactional integrity and
consistency. If you use two different replication tasks, the endpoints may switch roles,
allowing two-way synchronization.
Caution: If the same row in a table is updated by two different replication tasks, the
result of two-way synchronization may be unpredictable. A problem can occur even if
two different rows are referentially related, that is if some application updates a row
based on reading a value in a different row. If the rows are updated concurrently on the
Logical Independence
Two-way replication works best when updates of a row on a source and on a target are
entirely autonomous and do not affect each other. There is an assumption that any table or
a horizontal or vertical segment of a partitioned table can only be updated in one source.
Attunity Replicate allows updating the same row in several places, but in this case, the
columns being updated must be distinct. Another assumption is that if a data value in one
row depends on or is derived from a value in another row, the values can be changed only
on the same server but nowhere else (except by the Replicator). This is called logical
independence. With logical independence, concurrent update conflicts cannot occur during
replication.
1CDC has no way of knowing exactly when a row was read by an application on one system relative to its having
been changed on another system. Read operations are typically not logged.
Important: To work, Attunity Replicate needs to be set up with the proper security
configuration. It is therefore strongly recommended to review Security Considerations
before using the product for the first time.
In this chapter:
Installation Prerequisites
Attunity Replicate on Windows: Installing, Upgrading and Uninstalling
Installing Attunity Replicate on Linux
Installation Prerequisites
This section describes how to prepare your system to use Attunity Replicate. The
requirements differ according to the platform on which you want to install Attunity
Replicate and according to the desired Attunity Replicate UI Server configuration. For more
information on the available UI Server configurations, see Attunity Replicate UI Server
Configurations.
Software Requirements
Supported Endpoints
Software Requirements
This section describes what software is required to work with Attunity Replicate.
Windows Software Requirements
Linux Software Requirements
Windows Permissions
Attunity Replicate needs to be installed as an Administrator.
The following privileges are required to start the Attunity Replicate UI Server service
(which is run as a local system service), but are dropped as soon as the service is started:
SE_CREATE_GLOBAL_NAME
SE_CREATE_PAGEFILE_NAME
SE_CREATE_PERMANENT_NAME
SE_CREATE_SYMBOLIC_LINK_NAME
SE_CREATE_TOKEN_NAME
SE_DEBUG_NAME
SE_ENABLE_DELEGATION_NAME
SE_IMPERSONATE_NAME
SE_INC_BASE_PRIORITY_NAME
SE_INCREASE_QUOTA_NAME
SE_INC_WORKING_SET_NAME
SE_LOAD_DRIVER_NAME
SE_LOCK_MEMORY_NAME
SE_MACHINE_ACCOUNT_NAME
SE_MANAGE_VOLUME_NAME
SE_PROF_SINGLE_PROCESS_NAME
SE_RELABEL_NAME
SE_REMOTE_SHUTDOWN_NAME
SE_RESTORE_NAME
SE_SECURITY_NAME
SE_SHUTDOWN_NAME
SE_SYNC_AGENT_NAME
SE_SYSTEM_ENVIRONMENT_NAME
SE_SYSTEM_PROFILE_NAME
SE_SYSTEMTIME_NAME
SE_TAKE_OWNERSHIP_NAME
SE_TCB_NAME
Supported Endpoints
To replicate data using Attunity Replicate, you must be sure to have a supported version of
the endpoint you are working with available. For information about the endpoints you can
use with Attunity Replicate, see Supported Platforms and Endpoints .
All of the data that is created when you use Attunity Replicate is stored in a directory called
data. By default, this directory is located in the installation directory where you install
Attunity Replicate. If you want to create the data directory in a different location, select
this option in the installation wizard.
If you elect to create the data directory in a different location, all command line actions
must be prefixed with repctl -d <path to the data directory>
Note Before commencing the installation, make sure that the prerequisites have been
met.
Note The directory containing the Replicate setup file always ends with the following
string: DB9FD674826F
Example:
C:\>"C:\Program Files (x86)\InstallShield Installation Information\
{9C614355-28A0-4C2A-98DF-DB9FD674826F}\setup.exe" /s
/f1C:\temp\response.iss /f2C:\temp\1\silent_uninstall.log
If the uninstall was successful, the log file should contain the following rows:
[ResponseResult]
ResultCode=0
Note For all command line operations involving files such as arep_login.sh, only the
bash shell is supported.
Note The commands for installing, upgrading and uninstalling Attunity Replicate must
be run as root or using the sudo command.
All of the commands and examples in this section assume that Attunity Replicate is
being installed/upgraded/uninstalled as root.
Each instance has a unique name, uses its own ports, and has its own data directory. This
means that when running commands such as repctl, you need to specify the instance-
specific data directory in the command line so that the correct instance is affected.
Notes
When starting and stopping an instance, it is strongly suggested to use the instance
script rather than run repctl directly.
All instances are run as the same user. Instances are listed in a file named
services_list.txt in the Replicate root directory. This file should not be modified
manually.
When upgrading Replicate, all instances will be reinstalled and started, even if they
were not running prior to the upgrade.
Note When installing or upgrading Replicate on SUSE Linux, the --nodeps parameter
must be added to the command, as in the following example:
rpm -ivh --nodeps ...
Example:
user=mike group=sales verbose=true rpm -i[vh] --prefix /opt/mydir/
areplicate-6.2.0-102.x86_64.rpm
For description of the optional parameters, see the Optional Command Parameters table
below.
Parameter Description
[user=user] The default user under which Attunity Replicate is
installed is attunity. You can choose to install the
product under a different user by adding the prefix
user=user to the command.
See also the [nocredentials=true] parameter below.
[pass=password] Sets the server password.
Users will be prompted for this password when
connecting to the Replicate server through the Replicate
Web Console.
You can either set this password when installing
Replicate (recommended) or you can set it later as
described in Changing the Server Password.
[group=group] The default group under which Attunity Replicate is
installed is attunity. You can choose to install the
product under a different group by adding the prefix
group=group to the command.
See also the [nocredentials=true] parameter below.
[nocredentials=true] If the specified user or group is not defined locally
(namely, in Active Directory), you must include this
parameter in the command. Otherwise, the installation
will fail.
[data=replicate_data_ The default Attunity Replicate "data" directory is:
directory]
<product_dir>/data.
Use this parameter for installing the Replicate data
directory in a non-default location.
[--prefix dirname] Prefixes the attunity/replicate application directory
with the path specified by dirname. So, for example,
if --prefix /opt/mydir, then Replicate will be
installed to:
/opt/mydir/attunity/replicate
This is only required when installing Attunity Replicate
to a non-default path.
[verbose=true|debug=true] Specify verbose=true for additional information during
the installation, or debug=true for detailed debug
messages during the installation.
[--nodeps] This parameter is only required when installing
Replicate on SUSE Linux.
Note The Attunity Replicate/lib directory must precede the /usr/lib64 directory in
the LD_LIBRARY_PATH environment variable.
The environment variable is set in the <product_dir>/bin/arep_login.sh file.
Example:
export LD_LIBRARY_PATH=/opt/attunity/replicate/lib:/usr/lib64
Example:
/opt/attunity/replicate/bin/areplicate status
Example:
Example:
/opt/attunity/replicate/bin/areplicate stop
Note If the new configuration file repctl.cfg is different than the existing
configuration file, and the existing configuration file has been modified, the following
warning will be displayed during the upgrade:
/opt/attunity/replicate/bin/repctl.cfg will be created as
/opt/attunity/replicate/bin/repctl.cfg.rpmnew
For additional information and instructions on merging the two files, see Resolving
Configuration File Conflicts.
Note Upgrading Replicate on SUSE Linux requires adding the --nodeps parameter to
the command, as in the following example:
rpm -U[vh] --nodeps areplicate-6.2.0-102.x86_64.rpm
Note As in the initial installation, if the new or existing user and/or group is not defined
locally (namely, in Active Directory), you must include the nocredentials=true
parameter in the command. Otherwise, the upgrade will fail.
Note When upgrading Replicate, all instances will be reinstalled and started, even if
they were not running prior to the upgrade.
Note When the configuration files need to be merged, you need to restart each
instance manually after merging the files.
Example:
./areplicate start
Note Uninstalling Replicate will not delete a Replicate instance's data directory, the
services_list.txt file, or any other modified files.
In this section:
Installing an Instance of Replicate as a Service
Uninstalling an Instance of a Replicate Service
Notes
Uninstalling an instance will stop the instance's processes, but leave the instance's
data directory in place.
The script will not allow a non-root user to uninstall a service that was installed by
root.
Example:
<product_dir>/bin/areplicate uninstall
2. Confirm that the instance is not running by running the following command:
ps -ef | grep repctl
3. Move the data directory from its current location (e.g. <product_dir>/data) to your
requested location.
4. Reinstall the service, specifying the new location for the data directory:
data=data_dir iport=portnum rport=portnum <product_dir>/bin/arep.sh
install instancename
5. Start the instance by running the following command:
<product_dir>/bin/instancename start
Example:
<product_dir>/bin/areplicate start
In this chapter:
Securing Access to the Attunity Replicate Web UI
Setting Up Replicate Console HTTPS Support
Setting Up Attunity Replicate Server HTTPS Support
Changing the Server Password
Protecting Replicate Passwords
Encrypting the User Permissions File
Securing Connections to Endpoints
Application Security
Note Some corporate security policies prohibit the use of self-signed certificates. In
such cases, it is incumbent upon the IT Security department to provide and install the
appropriate SSL server certificate (as is the practice with other Windows products such
as IIS and SharePoint). If a self-signed certificate was installed and needs to be
removed, then the following command can be used:
$ netsh http delete sslcert ipport=192.168.1.13:443
where ipport should be replaced with the ip:port combination generated by the
netsh command shown in Checking if an SSL Certificate is Installed.
Note When working with multiple instances, instead of creating a separate set of
certificates for each instance in <product-dir>/<data-directory>/ssl/data, you
can create a single set of certificates in <product-dir>/ssl/data. This way, instead of
managing multiple sets of certificates for each instance, you only need to
create/manage a single set of certificates.
You can replace the default self-signed certificates with you own, as follows:
Note When running multiple Replicate Linux instances, this procedure needs to be
repeated for each instance (as each instance has its own data directory).
For information on installing multiple Replicate Linux instances, see Linux Replicate
Instances and Services.
Where:
'Z' is a fixed character
'x' a protection method indicator
'hhhhhh…' is a hexadecimal representation of the encrypted secret
Upon import, if a secret is provided in clear text (i.e. not in the format shown above), it is
automatically encrypted and stored in the protected format.
The master key used in encrypting secrets is stored in the master key file (mk.dat)
described below.
Note When running multiple Replicate Linux instances, you need to enter the
server admin password for each instance. For details, see Installing an Instance of
Replicate as a Service.
The default location for the master key file is the product data folder - by default
<product-dir>/data - or data directories when multiple instances of Replicate are
installed on Linux. If the server admin password does not exist, it is automatically
created with randomly generated passwords that are safe but unknown. The user can
change the server admin password as well as the master key to known values, if
needed (e.g to connect to the replication server remotely).
For more information, see Changing the Server Password.
When Replicate is set to run on a cluster using the same settings and storage, the mk.dat
file should also be the same (or shared). Similarly, if the Replicate settings are exported in
order to be moved to a different machine, the mk.dat file should also be moved in order to
avoid the need to reenter all secrets.
The procedure for changing the master key as well as measures that can be taken to
protect the file containing the master key are described below in Changing and Protecting
the Master Key.
Note In order not to have the key appear in the shell history, you can use the
command interface (on Linux run ./repctl):
repctl {enter}
setmasterkey your_new_master_key [master_key_scope=scope] {enter}
quit {enter}
See Protecting the Master Key File from Misuse for the master_key_scope options.
Example:
repctl -d opt/mydatadir setmasterkey 78543043vuiyfyrf64454555jy65
master_key_scope=1
5. Start the Attunity Replicate Server or instance(s) on Linux.
6. Reenter the access passwords in all endpoints.
7. Start the tasks.
Note Replicate enforces strict access restrictions to the mk.dat file. Consequently, in
order to export a task, you will also need to open the command prompt as an
administrator (on Windows) or the product account (Linux).
For more information on importing and exporting Replicate tasks, see Exporting Tasks.
Note Steps 1-4 only need to be performed the first time you want to encrypt the
repository file. If you subsequently need to decrypt the repository file and then re-
encrypt it, they are not required.
Application Security
As a leading provider of enterprise-class big data management solutions, Attunity
understands that application security is of paramount importance. With the integration of
Static Code Analysis into the development lifecycle, the code is rigorously tested for
vulnerabilities before each product release.
In this chapter:
Supported Replicate Endpoints
Using ARC CDC Agents as Endpoints
Replicate Data Types
Supported DDL Statements
Configuring Replicate to Automatically Replace the User-Entered Password
You can also use CDC Agents in the Attunity Integration Suite as a source endpoint. For a
list of supported ARC CDC Agents and information on how to use them with Replicate, see
Using ARC CDC Agents as Endpoints.
Note ARC CDC Agents can be used for capturing changes (CDC) only.
Copyright © 2018 Attunity Ltd. Chapter 4 | Overview of Attunity Replicate Endpoints | Page 71
Table 4.1 | Endpoints Supported by ARC
For information on how to work with ARC, see Using ARC CDC Solutions in Attunity
Replicate .
Copyright © 2018 Attunity Ltd. Chapter 4 | Overview of Attunity Replicate Endpoints | Page 72
Table 4.2 | Replicate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 4 | Overview of Attunity Replicate Endpoints | Page 73
Rename column
Change column data type
For information about supported DDL statements for a specific endpoint, see the chapter
describing that endpoint. For more information about DDL settings, see Apply Changes
Settings.
Copyright © 2018 Attunity Ltd. Chapter 4 | Overview of Attunity Replicate Endpoints | Page 74
This feature is currently supported with the following endpoint types:
Microsoft SQL Server
Microsoft Azure SQL Database
Oracle
Note This feature cannot be used when the user name is "sa".
Note Clicking the "Test Connection" button will verify the connection using the original
password. The password will be automatically changed the first time the task runs.
To utilize this feature, the password must be defined both in the Replicate endpoint settings
and on the actual database, in the following format:
replace:your_password
Example:
replace:k$RJdg7!S&ib
Copyright © 2018 Attunity Ltd. Chapter 4 | Overview of Attunity Replicate Endpoints | Page 75
Defining Multiple Endpoints to use the same Automatically
Changed Password
In Attunity Replicate, more than one endpoint may be configured to connect to the same
database server.
To allow multiple endpoints to use the same (automatically changed) credentials, the
password in one of the endpoints needs to defined. Then, each of the other endpoint
connections needs to be configured to reference that endpoint.
Copyright © 2018 Attunity Ltd. Chapter 4 | Overview of Attunity Replicate Endpoints | Page 76
5 | Using the Attunity Replicate
Console
The Attunity Replicate Console is a Web-based application that runs in most browsers (for
information on supported browsers, see Supported Browsers). You can connect from any
computer to the Replicate Server.
This section describes the elements of the Replicate Console.
In this chapter:
Accessing the Attunity Replicate Console
Tasks View
Server View
List Actions
Note When you connect to the Attunity Replicate Console, your browser will prompt
you for a username and password. The username and password that you need to specify
depends whether Replicate Server is installed on Windows or Linux.
Attunity Replicate Server on Windows: Your domain username and password.
Attunity Replicate Server on Linux: Either specify your PAM credentials or, if
PAM is not set up in your environment, specify admin as your username and the
Replicate Server password as your password.
Copyright © 2018 Attunity Ltd. Chapter 5 | Using the Attunity Replicate Console | Page 77
For information on setting the Replicate Server password, see Security Considerations.
For information on PAM prerequisites, see Configuration 3: Replicate UI Console and
Replicate Server Running on Linux.
Note When the Attunity Replicate machine is located in a subdomain, the URL in the
ServiceConfiguration.xml file will contain localhost instead of the machine name.
In order to connect remotely, to the Attunity Replicate machine, you need to replace
localhost with the actual machine name or IP address.
To access the Attunity Replicate Console from a remote computer, type the following
address in the address bar of your Web browser:
Attunity Replicate Server on Windows:
https://<computer name>/attunityreplicate
Attunity Replicate Server on Linux:
https://<computer name>:<port>/attunityreplicate
Where <computer name> is the name or IP address of the computer where the Attunity
Replicate Server is installed and <port> is the C UI Server port (3552 by default). For
more information on the C UI Server component, see Attunity Replicate UI Server
Configurations.
Note The person logged in to the computer where you are accessing the Console must
be an authorized Attunity Replicate user. For more information, see User Permissions.
Copyright © 2018 Attunity Ltd. Chapter 5 | Using the Attunity Replicate Console | Page 78
Note When the Attunity Replicate .NET UI Server is running on one machine and the
Attunity Replicate Server is running on another, the Attunity Replicate Server password
must be the same on both machines. The password is used during the SSL handshake to
establish a secure connection between the participating machines.
For information on setting the password, see Changing the Server Password.
Copyright © 2018 Attunity Ltd. Chapter 5 | Using the Attunity Replicate Console | Page 79
PAM Prerequisites
To establish a secure connection using PAM, make sure that the following prerequisites
have been met:
The Attunity user or group (or the user/group set during the installation) must be
granted permission to read the file: etc/shadow. Note that this prerequisite is only
required when Attunity Replicate is installed on two machines.
Edit the repctl.cfg file and modify the path to the fully qualified name of the
libpam.so.0 library if required.
Example:
"login_pam_libpam_full_path":"/lib64/libpam.so.0",
"login_pam_service_name": "system-auth"
}
Copyright © 2018 Attunity Ltd. Chapter 5 | Using the Attunity Replicate Console | Page 80
Tasks View
The Tasks view is the default view that opens when you launch Attunity Replicate for the
first time, as shown in the following figure:
It lists all replication tasks you have defined. You use this view to view, edit, run, and
delete tasks, or to create new tasks.
This view includes the following elements:
Toolbar running along the top. It includes buttons that let you create a new task,
open, delete, run, or stop an existing task, configure advanced run options, and
manage endpoint connections. See also Adding Tasks.
Tasks already defined in the system, listed in the left pane.
You can view tasks in:
Icons view, where each icon indicates the current state of the tasks.
See the Task Icons table for more information.
Details view, which displays a table with additional information about each task
including their current state. Note that the state icons are the same as described
in the Task Icons table, but without the part of the icon.
To toggle between these views, you can select Icons or Details from the drop-down
list in the top right of the Console.
For information about creating a task, see Designing Tasks.
The Console displays each open task on its own tab along the top. For more
information, see Viewing Specific Tasks.
Copyright © 2018 Attunity Ltd. Chapter 5 | Using the Attunity Replicate Console | Page 81
Endpoints map in the right pane, which illustrates the endpoints for the task selected
in the left pane. Any notifications (if defined) and log messages will be shown in the
Messages pane below the map.
Messages pane below the endpoints diagram on the right. This pane includes a
Notifications tab for progress messages and a Log Messages tab for warnings and
error messages issued when Replicate encounters a problem. For more information,
see Reading Messages about a Task and Define the Notification Message.
Indicates that the task has stopped due to a recoverable error. When you
select the task, Replicate displays a list of errors on the Log Messages tab
at the bottom right of the console.
Copyright © 2018 Attunity Ltd. Chapter 5 | Using the Attunity Replicate Console | Page 82
Viewing Specific Tasks
From the Tasks view, you can drill down to an individual task, provided you have already
created at least one task (see Designing Tasks for more information). Two modes display
different sets of information for each task:
Designer Mode: Default mode when you open a task. Here you define endpoints, select
tables, modify table settings (including filters and transformations), and create global
transformation rules.
Monitor Mode: Here you view replication task activities in real time, along with log
messages and notifications.
Designer Mode
In Designer mode, you define endpoints, select tables to be replicated, modify table
settings (including filters and transformations), and create global transformation rules.
This is the default mode when you open a task.
Copyright © 2018 Attunity Ltd. Chapter 5 | Using the Attunity Replicate Console | Page 83
The Designer mode includes the following elements:
Endpoints list: Lists the source and target endpoint connections that you added to
Attunity Replicate. For more information, see Working with Endpoints. The figure
shows the Endpoints List in a collapsed state, hiding the endpoints. To expand the list,
click the right arrow at the top or anywhere below it. To close the panel, click the left
arrow.
Endpoints map: Illustrates the connection between the source and target endpoints
for the task. The round icon between the endpoints represents the task type, which can
indicate Full Load only, Full Load and Apply Changes, or Apply Changes only.
When you create a task, you can drag the endpoints to the source and target drop
spots as required. For more information, see Adding a Source and Target Endpoint to a
Task.
Monitor and Designer buttons: Lets you switch between Monitor mode and
Designer mode. See also Monitor Mode and Monitoring and Controlling Replication
Tasks.
Run button: Lets you run the task at hand.
Task Settings button: Opens the Task Settings dialog box. For more information,
see Task Settings.
Manage Endpoint Connections button: Lets you view the endpoints defined, edit
them, or add new endpoints. For more information, see Working with Endpoints.
Select and Define Tables: Lets you select the tables you want to include in your
replication task. In addition, you can use transformation and filter operations to create
new tables or to replicate parts of tables. For more information, Adding Tables and/or
Views to a Task, Using Filters, and Defining Transformations for a Single Table/View.
Global Transformations option: Lets you create transformations for all tables in a
task. For more information, see Defining Global Transformations.
Monitor Mode
In Monitor mode, you view the replication task activities in real time.
Copyright © 2018 Attunity Ltd. Chapter 5 | Using the Attunity Replicate Console | Page 84
Figure 5.2 | Viewing a Task in Monitor Mode
Copyright © 2018 Attunity Ltd. Chapter 5 | Using the Attunity Replicate Console | Page 85
Server View
SERVER view lets you view and configure the Attunity Replicate Server settings.
List Actions
The following table describes the various list actions you can perform. Note that,
depending on the list type, some of the actions may not be available.
Table 5.2 | List Actions
To Do This
Sort ascending or sort descending Right click the desired column and select one of the
sorting options as required.
Restore the default sorting order Right click any of the column headings and select
Default Sorting.
Export the list to a TSV file The following lists can be exported: tasks, messages,
selected tables, and processed tables (in Monitor
view). Either click the Export to TSV button above
the list or right-click any of the column headings and
select Export to TSV. Choose where to save the file
and then click Save.
Add or remove columns Right click any of the column headings and select
Column Settings. Then add or remove columns as
required.
Hide a column Right click the desired column and select Hide
Column.
Copyright © 2018 Attunity Ltd. Chapter 5 | Using the Attunity Replicate Console | Page 86
6 | Getting Started: An Attunity
Replicate Tutorial
This section guides you through setting up a basic replication task for data from an Oracle
source to a Microsoft SQL Server target.
In this chapter:
What You Need
Open the Attunity Replicate Console
Add an Oracle Endpoint as a Source
Add a Microsoft SQL Server database as a Target
Add a Replication Task
Run and Monitor the Replication Task
View the Replicated Tables in Microsoft SQL Server
Note If these tables are not available, contact your Oracle database
administrator.
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 87
Open the Attunity Replicate Console
From the Windows Start menu, select All Programs > Attunity Replicate > Attunity
Replicate Console.
Note You can access Attunity Replicate from any computer in your system.
To access the Console from a remote computer, type the following address in the
address bar of your Web browser:
http://<computer name>/attunityreplicate
where <computer name> is the name or IP address of the computer (including the
Windows domain name) on which the Attunity Replicate Server is installed.
Note The person logged in to the computer hosting the Console must be an authorized
Attunity Replicate user. For more information, see User Permissions.
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 88
The figure below shows the data that you need to enter on the General tab of the
Oracle database.
4. Click Test Connection to verify the information you entered and the availability of
the database.
5. Click Save to add the database.
You can also set advanced settings for the Oracle database, but this beyond the scope of
this tutorial. For more information, see Setting Advanced Connection Properties Using
Oracle LogMiner.
For information on adding other types of databases, see the chapter for the required
database. For a list of supported databases, see Supported Platforms and Endpoints .
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 89
Add a Microsoft SQL Server database as a Target
This task guides you through adding and configuring a Microsoft SQL Server endpoint as the
target database connection. This is the database to where you want to replicate data.
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 90
4. Click Test Connection to verify the information you entered and the availability of
the database.
5. Click Save to add the database.
You can also set advanced settings for the Microsoft SQL Server database, but this is
beyond the scope of this tutorial. For more information, see Setting Advanced Connection
Properties.
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 91
For information on adding other types of databases, see the chapter for the required
database. For a list of supported databases, see Supported Platforms and Endpoints .
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 92
The Attunity Replicate Console displays the task on a new tab. By default, because the
task has not been set up yet, the tab opens in Designer view. The diagram on the left
serves as a drop-off point for the source and target databases you defined previously.
The right pane lets you select the tables you want to work with and carry out
transformations and filtering operations. For more information, see Tasks View,
Viewing Specific Tasks, and Designing Tasks.
If needed, you can also change the default task settings. For more information, see
Task Settings.
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 93
Add the Source and Target Endpoints to the Task
This section guides you through adding the source and target endpoints to the replication
task, which is a simple drag-and-drop operation. In the Endpoints tab, the following icons
help you distinguish between source and target endpoints:
The Endpoints pane consists of All, Source, and Target tabs. Because each database is
named in a way that reflects whether it is a source or a target, click the All tab.
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 94
3. Drag the sqlserver_targetdatabase to the Drop target endpoint here area.
Next, you can select the tables from the source database to use in the replication task. For
more information, see Designing Tasks.
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 95
Note If you need to copy only some of the data to the target database, you need to use
a filter. For information, see Using Filters.
If you need to copy the data into the target using different rows or columns than those
in the source, you need to use transforms. For more information, see Defining
Transformations for a Single Table/View.
3. On the task tab, click Save. The task is now ready to run.
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 96
Run and Monitor the Replication Task
You can now run the replication task and see the results of the replication in real time. This
task guides you through running the replication task as a full load and viewing the progress
in the Monitor. Additional run options are also available. For more information, see Using
the Run Button Options.
2. Click the Select All link above the Tables graphs. Replicate displays a table below the
graphs with information about each of the tables being processed in the task.
3. Click the individual bar graphs, such as the Completed graph and the Loading graph, to
view additional information.
For information about the data supplied in these tables, see Monitoring Full-Load
Operations.
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 97
View the Replicated Tables in Microsoft SQL Server
This task guides you through viewing the tempdb database in Microsoft SQL Server. You
will see that this database now includes two new tables: HR.EMPLOYEES and HR.JOBS.
Copyright © 2018 Attunity Ltd. Chapter 6 | Getting Started: An Attunity Replicate Tutorial | Page 98
7 | Designing Tasks
This section describes how to design a replication task. To design a replication task, you
must first be sure that you have configured at least one source endpoint and one target
endpoint to work with Attunity Replicate.
It is also possible to customize a task by creating new tables or columns for the target
endpoint or by selecting only some of the data from each column to be replicated. This is
done using transformations and filters.
Note A number of variables affect the amount of tasks that can be run on a single
Replicate Server, including the task configuration (e.g. how many tables are being
replicated), the size of the source tables and the hardware configuration of the Replicate
Server machine. Bearing this in mind, the number of tasks that can be run on a single
Replicate Server should not exceed 100 (and may need to be significantly less
depending on the aforementioned variables). Best practice is to perform load testing in
a Test environment before moving to Production.
In this chapter:
Adding Tasks
Working with Endpoints
Adding a Source and Target Endpoint to a Task
Adding Tables and/or Views to a Task
Providing a Task Description
Editing a Replication Task
Searching for Tasks
Deleting a Replication Task
Exporting and Importing Tasks
Adding Tasks
Before you get started with designing the features that you need for a task, you must
define the task's default behavior.
2. Enter a name for the task. The name should be descriptive to indicate the purpose of
the task. The name cannot exceed 32 characters, contain non-Latin characters, or
contain any of the following characters: | \ / : * ? " < >
3. Optionally, enter a description for the task.
6. Click OK to close the New Task dialog box and save your settings.
Bidirectional Replication
Bidirectional replication enables organizations to synchronize data between two endpoints
(henceforth referred to as Endpoint A and Endpoint B), ensuring that both endpoints contain
identical records. The endpoints can either be the same type (e.g. Oracle-to-Oracle) or
different types (e.g. Microsoft SQL Server-to-Oracle). To implement bidirectional
replication, two Bidirectional Replication tasks need to be defined: one that captures
changes made to Endpoint A and replicates them to Endpoint B (Task 1) and another that
Limitations
The following limitations apply to Bidirectional replication tasks:
Bidirectional replication does not currently support conflict resolution. To prevent
conflicts, organizations should ensure that the application that updates the endpoints
participating in a bidirectional replication task, does not simultaneously update the
same record in both endpoints.
In other words, if a record in Endpoint A was updated, the equivalent record in
Endpoint B should only be updated after the update from Endpoint A is replicated to
Endpoint B.
Bidirectional replication tasks currently only support DDL statements from one source
only.
To ensure that the source and target endpoints are identical, transformations and
filters should not be used in bidirectional replication tasks.
The Use direct path full load option in the Oracle target endpoint settings is not
supported.
The Stopping the Task after Full Load options in the task settings' Full Load
Settings tab is not supported.
The task's Change Processing Mode must be set to Transactional apply.
Supported Endpoints
Bidirectional tasks support the following endpoints:
Source Endpoints:
Oracle
Microsoft SQL Server
MySQL
PostgreSQL
All AIS sources
File Channel
SAP Sybase ASE
IBM DB2 for iSeries
Target Endpoints:
Oracle
Microsoft SQL Server
MySQL
2. Specify a source and target Loopback prevention table schema in the task
settings’ Loopback Prevention tab. For more information about loopback prevention
settings, see Bidirectional.
3. Run the task.
Note The name cannot exceed 32 characters, contain non-Latin characters, or contain
any of the following characters: | \ / : * ? " < >
Adding an Endpoint
Editing Endpoint Configuration Information
Viewing Endpoint Configuration Information
Adding an Endpoint
Before you can begin to design a task, you must add endpoints to the Replicate server. To
use an endpoint, you must have access to it somewhere in your system. When you add the
endpoint to the Replicate server, you must provide connection information and proper user
credentials.
To add an endpoint:
1. In the Tasks view, click Manage Endpoints.
The Manage Endpoint Connections window opens.
2. In the Manage Endpoint Connections window, click New Endpoint.
3. Select the Type of endpoint you are using. The information that you must enter
depends on which endpoint you select.
For more information, see the chapter that describes the endpoint you are using. For a
list of supported databases, see Supported Platforms and Endpoints .
Note You cannot change the following information in the endpoint window:
The name you provided for the endpoint.
The endpoint Type, for example Oracle or Microsoft SQL Server.
The endpoint role, either SOURCE or TARGET.
Duplicating Endpoints
You can duplicate an endpoint if you need to define a new endpoint with similar settings.
Except for the name, all endpoint settings are duplicated to the new endpoint.
To duplicate an endpoint:
1. In the left panel of the Manage Endpoint Connections window, click the endpoint
you want to duplicate.
2. Click Duplicate.
3. On the General tab, edit the name for the endpoint.
4. Make any other necessary changes.
5. Click Save; then click Close.
To delete an endpoint:
In the left panel of the Manage Endpoint Connections window, Select the endpoint
and click Delete.
Notes
Replication of views is supported in Full Load Only tasks only, except when
replicating from the following sources:
Amazon Redshift
IBM Netezza
Teradata
ODBC with CDC
Views are replicated to the target endpoint as tables
When replicating views, the corresponding tables are created without a primary
key. This presents an issue for Apply Changes tasks, which require the target
tables to have a primary key. Therefore, if you are also running Apply Changes
tasks (using one of the CDC-capable endpoints mentioned above), you need to
define one or more primary keys for each of the target tables using a
transformation. For an explanation of how to accomplish this, see Using the
Transform Tab in Defining Transformations for a Single Table/View.
Note When working with ODBC with CDC and Teradata source endpoints, any views
and tables that you want to replicate must have the same context field(s). If you only
want to replicate views, then all of the views must have the same context field(s).
For information on setting up context fields, see Configuring Change Processing
Settings.
Once you have selected tables/views to replicate, you can run the replication task.
However, if you need to make any changes to the structure of the tables in the target
endpoint or only select specific columns, you will need to carry out one or both of the
following procedures:
Defining Transformations for a Single Table/View
Using Filters
To select tables/views:
1. Open the task you are working with if it is not already displayed in a dedicated tab.
For information on opening a task, see Editing a Replication Task.
Note When selecting tables from the SAP Application endpoint, "Business Groups"
will appear instead of "Schema".
Note You can also include special characters in your search string. For more
information, see the Note in Creating a Record Selection Condition for One or More
Columns.
The Table List field displays any table/view that matches the specified.
If the source endpoint supports view selection, an additional Type column indicates
whether the database object is a table or a view.
6. Click OK.
Note If you rename a table in the database, the Designer tab will still show the
original table name. The Monitor tab, on the other hand, will show the new table name.
Note To view all of the tables/views included when you use a table selection pattern,
click the Full Table List tab in Designer view. The Full Table List lists all of the
tables/views included in any table pattern you defined as well as all explicitly selected
tables/views. To view only patterns and explicitly selected tables/views, click the
Patterns and Selected Tables tab in Designer view.
Notes
Load order cannot be changed during a task. If you want to change the load order,
first stop the task, then change the load order as desired, and finally reload the
target.
Load order cannot be set for table patterns.
To edit a task:
1. In Tasks view, select the task and click Open.
The task opens, displaying the source and target endpoints and which tables have been
selected for replication.
2. Continue with any of the following procedures:
Adding a Source and Target Endpoint to a Task
Adding Tables and/or Views to a Task
Defining Transformations for a Single Table/View
Note If you use a Microsoft SQL Server endpoint, a Microsoft SQL Server system
administrator must delete the Microsoft SQL Server Replication Publisher definitions for
the endpoint that was used in the task from SQL Server.
For more information, see the Limitations in the Microsoft SQL Server chapter.
To delete a task:
1. Stop the task that you want to delete.
2. In Tasks view, click Delete.
The task is deleted.
Note If you need to access the computer with Attunity Replicate from a remote
computer, you can use a telnet connection.
When you export a task to a different environment, you may need to edit the task
information. For example, you may need to change the connection string for an endpoint.
Exporting Tasks
Editing an Exported (json) File
Exporting Tasks
The following section explains how to export a task using either the Attunity Replicate
Console or the command line.
Importing Tasks
The following section explains how to import a task using either the Attunity Replicate
Console or the command line.
Important: The name of the JSON file must be specified without the .JSON
extension.
The export utility automatically appends the extension .JSON to exported files, thus
eliminating the need to add the extension manually.
The exported *.json file will be located in the <data-directory>\imports folder or
directory on the original computer where the task was exported or in the folder
specified by the folder_name parameter in the export command.
Example:
<product_dir>\data\imports\many_tables.json
If you are importing this task into a different environment, you should copy the file to
a location on the second Attunity Replicate computer and then import the file from
there.
In many cases, when you import the task into a different environment, you will need
to make changes to the task. For example, you may need to change the connect
strings for the endpoints in the task or change the user password. In that case, you
will need to edit the *.json file.
See Editing an Exported (json) File for more information.
Important: Make any changes to the *.json file before you carry out the import
operation.
Note Information about the endpoints, tables, tasks, task settings, and logger settings
should be changed using the Attunity Replicate Console after the file is imported.
To be able to use the new task, you will need to make changes to the endpoint password
and connection strings by editing the *.json file. See Making Changes to the Endpoint
Connection Information for more information.
Important: Make sure that the connect string remains between the quotation
marks (").
2. Change the password string to the relevant password for the endpoint in the new
environment. Type the new password using plain text exactly as it is configured in the
endpoint. For example, 8yTkLMt.
When you save the file and then import it to the new environment, the password is
encrypted automatically.
In this chapter:
Using Oracle as a Source
Using Microsoft SQL Server as a Source
Using SAP Sybase ASE as a Source
Using a MySQL-Based Database as a Source
Using Hadoop as a Source
Using Teradata Database as a Source
Using PostgreSQL as a Source
Using a File as a Source
Using ODBC with CDC as a Source
Using IBM Informix as a Source
Using IBM DB2 for LUW as a Source
Using IBM DB2 for iSeries as a Source
Using IBM DB2 for z/OS as a Source
Using IBM Netezza as a Source
Using SAP Application as a Source
Using SAP HANA as a Source
Using ODBC to Connect to a Source
Using ARC CDC Solutions in Attunity Replicate
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 121
Using Oracle as a Source
This section describes how to set up and use an Oracle database as a source in a replication
task.
In this section:
Supported Oracle Database Editions
Prerequisites
Limitations
Required Permissions
Supported Encryption Methods
Supported Compression Methods
Redo Log Files - Access Method Guidelines
Handling Shrink Space Operations
Replicating Nested Tables
Oracle Source Data Types
Non-Supported Data Types
Homogeneous Replication
Preparing the Oracle Database for Replication
Setting General Connection Properties
Setting Advanced Connection Properties
Finding the Wallet Entries used for TDE Encryption
Prerequisites
Before you can work with an Oracle endpoint, make sure the prerequisites listed in this
section have been met.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 122
On Windows systems, install Oracle Instant Client for Microsoft Windows (x64) Version
11.2.0.3.0 and above.
Note Support for the XMLTYPE data type requires the full Oracle Client.
On Linux systems, install Oracle Instant Client for Linux (x86-64) Version 11.2.0.3.0
and above.
Note Support for the XMLTYPE data type requires the full Oracle Client.
In addition, if not already included in your system, you need to create a symbolic link
in the $Oracle_Home\lib directory. This link should be called libclntsh.so, and
should point to a specific version of this file.
For example, on an Oracle 12c client:
lrwxrwxrwx 1 oracle oracle 63 Oct 2 14:16 libclntsh.so ->
/u01/app/oracle/home/lib/libclntsh.so.12.1
Additionally, append the LD_LIBRARY_PATH environment variable to the Oracle lib
directory by copying the driver location to the site_arep_login.sh file as follows:
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_
PATH:/u01/app/oracle/home/lib/ > site_arep_login.sh
Limitations
The following limitations apply:
Long object names (over 30 bytes) are not supported.
Function-based indexes are not supported.
If you are managing supplemental logging and you carry out transformations on any of
the columns, you must be sure that supplemental logging is activated for all fields and
columns.
The AR_H_USER header column is supported only for Oracle database version 11.2.0.3
and higher. In Oracle database version 10, the value for this column may not be
correct. For information on using header columns, see Headers.
Connecting to a CDB is not supported.
The rename table <table name> to <new table name> syntax is supported by
Attunity Replicate when using Oracle version 11 and higher.
Data changes resulting from partition/sub-partition operations (ADD, DROP,
EXCHANGE and TRUNCATE) will not be replicated and may cause the following errors:
For ADD operations, updates and deletes on the added data may return a "0 rows
affected" warning.
For DROP and TRUNCATE operations, new inserts may result in "duplicates"
errors.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 123
For EXCHANGE operations, both a "0 rows affected" warning and "duplicates"
errors may be encountered.
To replicate changes resulting from partition/sub-partition operations, you need to
reload the tables in question. When adding a new empty partition, operations on the
newly added partition will be replicated to the target as normal.
Data changes resulting from the "CREATE TABLE AS..." statement is not supported.
However, the new table will be created on the target.
When Limited-size LOB mode is enabled, empty LOBs on the Oracle source are
replicated as NULL values. For more information on Limited-size LOB mode, see Task
Settings|Metadata.
Changes made by the Oracle DBMS_REDEFINITION package - e.g. table metadata and
the OBJECT_ID) - will not be captured by Attunity Replicate.
To enable change processing from an Oracle standby database, the database must be
a physical standby database with Active Data Guard enabled (available from Oracle
11g and above).
Empty BLOB/CLOB columns are mapped to NULL on the target.
During Change Processing, columns without supplemental logging that are not updated
will be inserted as NULL in the Change Table.
During Change Processing, batch updates to numeric columns defined as a Primary
Key are not supported.
Example of an unsupported UPDATE command:
UPDATE tableX set ID=ID+1;
Where tableX is the table name and ID is a numeric column defined as a Primary Key.
Data in LONG and LONG RAW column cannot exceed 64k. Any data that is larger than
64k will be truncated.
Tables whose names contain apostrophes cannot be replicated.
Change Data Capture (CDC) is not supported from dynamic views.
When running a Full Load and Apply Changes task on a physical standby Oracle
database, Replicate may not be able to properly synchronize the Full Load and Appy
Changes processes, which could result in missing operations.
Index-organized tables with an overflow segment are not supported in Change
Processing (CDC) tasks.
Replicating from a Hot Standby database is not supported.
When using Oracle LogMiner to access the redo logs, the following limitations apply:
In Oracle 12 only, any changes to LOB columns are not supported (i.e. replicated).
UPDATEs to XMLTYPE and LOB columns are not supported (i.e. replicated).
The DDL statement ALTER TABLE ADD <column> <data_type> DEFAULT <> does
not replicate the default value to the target and the new column is set to NULL.
Note that this may happen even if the DDL that added the column was executed in
the past. If the new column is nullable, Oracle updates all the table rows before
logging the DDL itself. As a result, Attunity Replicate captures the changes but
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 124
does not update the target. As the new column is set to NULL, if the target table
has no Primary Key/Unique Index, subsequent updates will generate a "zero rows
affected" message.
SHRINK SPACE operations are not supported
Connecting to a PDB using Oracle LogMiner is not supported. Therefore, if you
want to connect to a PDB, make sure that the Access redo logs via Attunity Log
Reader option is selected in the Advanced tab.
When using Attunity Log Reader to access the redo logs, the following limitations
apply:
Table clusters are not supported.
Only table-level SHRINK SPACE operations are supported. These include the full
table, partitions, and sub-partitions.
Implementing online redo logs on raw devices is not supported.
Changes to Index-organized tables with key compression are not supported.
Required Permissions
In this section:
General Permissions
Access Privileges when using Oracle LogMiner to Access the Redo Logs
Access Privileges when using Attunity Log Reader to Access the Redo Logs
Required ASM Privileges
General Permissions
To use an Oracle source in an Attunity Replicate task, the user specified in the Attunity
Replicate Oracle endpoint connection settings must be granted the following privileges in
the Oracle database:
Note If any of the required privileges cannot be granted to a V$xxx, then grant them to
the V_$xxx.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 125
SELECT on V_$TRANSACTION
SELECT on ALL_INDEXES
SELECT on ALL_OBJECTS
SELECT on DBA_OBJECTS - Required if the Oracle version is earlier than 11.2.0.3.
SELECT on ALL_TABLES
SELECT on ALL_USERS
SELECT on ALL_CATALOG
SELECT on ALL_CONSTRAINTS
SELECT on ALL_CONS_COLUMNS
SELECT on ALL_TAB_COLS
SELECT on ALL_IND_COLUMNS
SELECT on ALL_LOG_GROUPS
SELECT on SYS.DBA_REGISTRY
SELECT on SYS.OBJ$
SELECT on SYS.ENC$
SELECT on DBA_TABLESPACES
SELECT on ALL_TAB_PARTITIONS
SELECT on ALL_ENCRYPTED_COLUMNS
If views are exposed: SELECT on ALL_VIEWS
Grant the following additional privilege (for each replicated table) when you are using a
specific table list:
SELECT on <any-replicated-table>;
Grant the following additional privilege when using a pattern for the table list:
SELECT ANY TABLE;
Grant the following additional privilege (for each replicated table) when Attunity Replicate
adds supplemental logging automatically (the default behavior) and you are using a
specific table list. For information on how to turn off supplemental logging, see Setting
Advanced Connection Properties Using Oracle LogMinerSetting Advanced Connection
Properties Using Oracle LogMiner.
ALTER on <any-replicated-table>;
Grant the following additional privilege when Attunity Replicate adds supplemental logging
automatically (the default behavior). For information on how to turn off supplemental
logging, see Setting Advanced Connection Properties Using Oracle LogMinerSetting
Advanced Connection Properties Using Oracle LogMiner.
ALTER ANY TABLE;
Access Privileges when using Oracle LogMiner to Access the Redo Logs
If you are using Oracle LogMiner to access the Redo logs, grant the following privileges.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 126
CREATE SESSION
EXECUTE on DBMS_LOGMNR
SELECT on V_$LOGMNR_LOGS
SELECT on V_$LOGMNR_CONTENTS
LOGMINING
Note This privilege is only required for Oracle 12c and above.
Access Privileges when using Attunity Log Reader to Access the Redo
Logs
The following privileges should be granted when using Attunity Log Reader to access the
Redo logs:
CREATE SESSION
SELECT on v_$transportable_platform
Grant the SELECT on v_$transportable_platform privilege if the Redo logs are stored in
ASM and accessed by Replicate from ASM.
CREATE ANY DIRECTORY
Attunity Replicate uses following Oracle file access features:
BFILE read - Used when Replicate does not have file-level access to the Redo logs, and
the Redo logs are not accessed from ASM.
DBMS_FILE_TRANSFER package - Used to copy the Redo log files to a temporary
folder (in which case the EXECUTE ON DBMS_FILE_TRANSFER privilege needs to be
granted as well)
DBMS_FILE_GROUP package - Used to delete the Redo log files from a
temporary/alternate folder (in which case the EXECUTE ON DBMS_FILE_GROUP
privilege needs to be granted as well).
Oracle file features work together with Oracle directories. Each Oracle directory object
includes the name of the folder containing the files which need to be processed.
If you want Replicate to create and manage the Oracle directories, you need to grant the
CREATE ANY DIRECTORY privilege specified above. Note that the directory names will be
prefixed with attu_. If you do not grant this privilege, you need to create the corresponding
directories manually. If you create the directories manually and the Oracle user specified
in the Oracle Source endpoint is not the user that created the Oracle Directories, grant the
READ on DIRECTORY privilege as well.
If the Oracle source endpoint is configured to copy the Redo log files to a temporary folder,
and the Oracle user specified in the Oracle source endpoint is not the user that created the
Oracle directories, the following additional privileges are required:
READ on the Oracle directory object specified as the source directory
WRITE on the directory object specified as the destination directory in the copy
process
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 127
See also: Setting Advanced Connection Properties.
Note When connecting to ASM, Attunity Replicate will first try to log in as SYSDBA and,
if unsuccessful, will try to log in as SYSASM.
You can validate ASM account access by opening a command prompt and issuing the
following statements:
sqlplus asmuser/asmpassword@+asmserver as sysdba
-OR-
sqlplus asmuser/asmpassword@+asmserver as sysasm
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 128
Supported Encryption Methods
The table below lists which encryption methods Attunity Replicate supports when working
with an Oracle source database.
Note When the Oracle source endpoint is configured to use Attunity Log Reader, the
Query Low level of the HCC compression method is only supported in the Full Load task
mode.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 129
The volume of changes in the redo log is more than 30GB/hour
The volume of changes is between 10GB/hour and 30GB/hour and the changes need to
be processed (i.e. replicated to the target) as fast as possible.
There are multiple tasks replicating from the same source. Using Oracle LogMiner is
less efficient in this case, as it accesses the redo logs via the database, thereby
consuming additional database resources.
Both Attunity Log Reader and Oracle LogMiner are subject to certain limitations, support
different compression methods, and require different access permissions. It is therefore
strongly recommended to review the relevant sections before configuring the endpoint
settings. In the end, your decision whether to use Attunity Log Reader or Oracle LogMiner
may be based on a limitation that exists in one but not the other, the way your data is
compressed, or the permissions that you are willing to grant the Replicate user.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 130
If a captured nested table is added to an existing parent table (captured or not captured),
Replicate will handle it correctly, but the non-unique index for the corresponding target
table will not be created. Note that in this case, if the target child table becomes extremely
large, performance may be impacted. In such a case, it is recommended to stop the task,
create the index, and then resume the task.
After the nested tables are replicated to the target, the DBA will need to run a JOIN
statement on the parent and corresponding child tables in order to flatten the data.
Prerequisites
Make sure that you replicate parent tables for all the replicated nested tables. Both the
parent tables (the tables containing the nested table column) and the child (i.e. nested)
tables will be available for selection in Replicate.
Limitations
Only one level of nesting is supported.
Replicate does not verify that both the parent and child table(s) are selected for
replication. In other words, it's possible to select a parent table without a child and
vice versa.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 131
Creating the parent table with a column of type my_tab_t that was defined
above:
CREATE TABLE my_parent_table (id NUMBER PRIMARY KEY, col1 my_tab_t) NESTED
TABLE col1 STORE AS col1_tab;
Table 8.3 | Supported Oracle Data Types with Mapping to Attunity Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 132
Table 8.3 | Supported Oracle Data Types with Mapping to Attunity Replicate Data Types
(Cont.)
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 133
Table 8.3 | Supported Oracle Data Types with Mapping to Attunity Replicate Data Types
(Cont.)
Notes
When replicating XML columns, performance
can be improved by not using the Oracle 12
client.
Support for the XMLTYPE data type requires
the full Oracle Client (as opposed to the
Oracle Instant Client).
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 134
Non-Supported Data Types
Columns with the following data types are not supported and will not be replicated:
BFILE
ROWID
REF
UROWID
ANYDATA
SDO_GEOMETRY
Nested Table
User-defined data types
Note
Virtual columns are not supported.
As the ROWID data type is not supported, materialized views based on a ROWID
column are also not supported.
Homogeneous Replication
With the exception of the LONG and LONG RAW data types, when replicating from an Oracle
source to an Oracle target, all of the source and target data types will be identical. The
LONG data type will be mapped to CLOB and the LONG RAW data type will be mapped to
BLOB. It should be noted that, as of Oracle 9.0, the LONG and LONG RAW data types are no
longer supported by Oracle.
Additionally, Primary/Unique Index names are preserved during homogeneous replication.
Note In homogeneous replication, the source data first passes through the Attunity
Replicate data type and is therefore subject to any limitations of that type.
For information on Replicate data types and their limitations (where relevant), see
Replicate Data Types.
For information on which Replicate data types the source data passes through when
replicating from Oracle, see the Oracle to Attunity Replicate data types mapping table
described earlier.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 135
Preparing the Oracle Database for Replication
The following topics describe the configuration requirements for using an Oracle database
with Attunity Replicate as a source. An Oracle DBA should know how to carry out these
tasks.
Provide Oracle Account Access
Ensure that ARCHIVELOG Mode is On
Setting up Supplemental Logging
Note You can automatically set up supplemental logging in the Advanced tab of the
Oracle database dialog box. If you select this option, you do not have to carry out the
following procedure. For more information, see Setting Advanced Connection Properties
Using Oracle LogMiner.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 136
Note For Replicate to work, the parameter value must match the real version of
the database.
Step 2: Make sure that the required supplemental logging is added for each
table
1. If a Primary Key exists, supplemental logging must be added for the Primary Key
either by using the format to add supplemental logging on the Primary Key, or by
adding supplemental logging on the Primary Key columns.
2. If no Primary Key exists and the table has a single Unique Index, then all of the Unique
Index’s columns must be added to the supplemental log. Using SUPPLEMENTAL LOG
DATA (UNIQUE INDEX) COLUMNS does not add the Unique Index columns to the log.
3. If no Primary Key exists and the table has multiple Unique Indexes, Attunity Replicate
will select the first Unique Index. Attunity Replicate will use the first index in an
alphabetically ordered ascending list. Supplemental logging must be added on the
selected index's columns. Using SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS
does not add the Unique Index columns to the log.
4. If there is no Primary Key and no Unique Index, supplemental logging must be added
on all columns.
Note When the target table Primary Key/Unique Index is different than the source
table Primary Key/Unique Index, the user needs to add supplemental logging
manually on the source table columns that comprise the target table Primary
Key/Unique Index.
5. If you change the target table primary key, the supplemental logging must be added
on the selected index's columns instead of the columns of the original primary
key/unique index.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 137
Step 3: If a filter or transformation is defined for the table, additional logging
might be necessary
Note If ALL COLUMNS supplemental logging has been added to the table, there is no
need to add any additional logging.
If the table has a Unique Index or a Primary Key, you also need to add supplemental
logging on each column that is involved in a filter or transformation (if those columns are
different than the Primary Key or Unique Index columns).
Note If a transformation uses only one column, this column may not be added to a
supplemental logging group. For example, "A+B" needs both columns to be added,
whereas substring(A, 10) does not need "A" to be added.
One method of setting up both Primary Key/Unique Index supplemental logging and
supplemental logging on specific columns is to add USER_LOG_GROUP supplemental logging
only on the Primary Key/Unique Index columns and on the columns that are filtered or
transformed.
For example, to replicate a table named EXAMPLE.TABLE with Primary Key ID and filter by
column NAME, you can run a command similar to the one below to create the log group
supplemental logging:
ALTER TABLE EXAMPLE.TABLE ADD SUPPLEMENTAL LOG GROUP example_log_group
(ID,NAME) ALWAYS;
Step 4: When the Insert the missing target record Apply Conflicts option is
selected, supplemental logging must be enabled for ALL the source table
columns.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 138
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('DROP','PRIMARY
KEY');
In Step 5: Management Options of setting up your Oracle database instance, set the
Enabled Automatic Backups option to Yes.
Setting Up Archiving
To retain archived redo logs of your Oracle database instance (which will allow Attunity
Replicate to retrieve the log information using Oracle LogMiner), execute the following
command (example 24 hours):
exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention
hours',24);
Make sure that your storage has sufficient space for the archived redo logs during the
specified period.
Note
Oracle can also be used as a target database. For information on using Oracle as a
target, see Setting General Connection Properties.
You can also use Oracle files as a source or target. For more information, see
Using a File as a Source.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 139
You can type the connect string in any Oracle format, for example:
//host:port/service name
Where:
host: This is the name or IP address for the computer with the Oracle database
that you are using. For example, johnboy_W7 or 255.255.255.0.
port: (optional) This is the TNS Listener Port number for the computer with the
Oracle database that you are using. If you do not enter a port number the default
Oracle TNS Listener port is used.
service name: (optional) This is the service name for the computer with the
Oracle database you are using. If you do not enter a service name the default
service name is used.
You can also enter an Oracle Net keyword-value pair. For example:
"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=dlsun242) (PORT=5521))
(CONNECT_DATA=(SERVICE_NAME=bjava21)))"
Note When working with a Multitenant environment, the connection string should
specify a specific PDB.
Limitations:
Connecting to the CDB is not supported.
Oracle does not support using PDB with Oracle LogMiner. Therefore, if you
want to connect to a PDB, make sure that the Use Oracle LogMiner to
access redo logs option is disabled in the Advanced tab.
Note If no <common ASM connection string> is specified, all the RAC instances
should be defined in the ASM connection.
When using Attunity Log Reader to access the redo logs, the connection string syntax
is as follows:
<Oracle connection string>[, <thread id> <thread BFILE connection
string>, <thread id> <thread BFILE connection string> ...]
<Oracle connection string> is mandatory. If specified, the <thread BFILE
connection string> will be used instead of the <Oracle connection string>.
7. Type the Oracle authentication information (User Name, Password) for the authorized
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 140
user for this Oracle database. If you do not know this information, see your Oracle
database Administrator (DBA).
Important: Make sure that the Oracle user entered in the Oracle Authentication
section has the correct access privileges. For information on how to provide the
required privileges, see Required Permissions.
Note For guidelines on choosing which redo logs access method to use, see Redo Log
Files - Access Method Guidelines.
Note If your Oracle database version precedes 10.2.0.4 (i.e. version 10.1.x to
10.2.0.3), you must use Oracle LogMiner to access the redo logs.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 141
intend to replicate are encrypted you need to specify the Oracle Wallet encryption
keys and their values.
See also: Finding the Wallet Entry used for TDE Column Encryption in a Specific Table
and Finding the Wallet Entries used for TDE Encryption.
Retry interval: Use the counter or type the number of seconds that the system waits
before resending a query.
Archived redo logs destination identifier: The destination of the archived redo
logs. The value should be the same as the DEST_ID number in the V$archived_log
table.
Note When working with multiple log destinations (DEST_ID), you should specify
an Archived redo logs location identifier that represents archived logs that
can be accessed by Replicate. If the Archived redo logs location identifier is
not specified, Replicate will use the minimal existing DEST_ID.
Note The "Expose NUMBER" definition in the Oracle database is used for the
NUMBER data type only (without the explicit precision and scale definition).
Use archived redo logs only: When this option is selected, Attunity Replicate will
only access the archived redo logs. If the archived redo logs ares stored on ASM only,
the Attunity Replicate user needs to be granted the ASM privileges described in
Required ASM Privileges.
Support nested tables: Select this option if you need to replicate Oracle tables
containing columns that are nested tables or defined types.
For more information on this feature and its prerequisites, see Replicating Nested
Tables.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 142
2. In the edit box, type the name of the parameter you need to add and then click it.
3. The parameter is added to the table below the search box with its default value.
4. Change the default value as required.
5. To reset the parameter value to its default, click the "Restore default value" icon at the
end of the row.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Finding the Wallet Entry used for TDE Column Encryption in a Specific
Table
This section describes how to find the correct encryption key used for TDE column
encryption in a specific table.
Note For more information, see Step 5 in Finding the Wallet Entries used for TDE
Encryption.
4. Copy the master key entry and its value into the Names and Values fields
respectively.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 143
Note If your Oracle database version precedes 10.2.0.4 (i.e. version 10.1.x to
10.2.0.3), you must use Oracle LogMiner to access the redo logs.
Note To access the redo logs in ASM, you also need to grant the additional
privileges described in Required ASM Privileges
See also: Best Practices when Working with Oracle ASM.
ASM Connection String: The connection string to the ASM instance if your
Oracle database is using ASM.
ASM user name: The user name for the ASM user.
ASM password: The password for the ASM user.
To access a redo log as a binary file (i.e. not using LogMiner), select one of the
following options:
Use path as it appears in the database: Select this to access the redo logs
using the path as it appears in the database. Continue from Using the Path as it
Appears in the Database.
-OR-
Replace path prefix: You can determine whether to read the redo logs from a
different root location while leaving the relative path unchanged. Continue from
Replacing the Path with a Prefix.
Replicate has file-level access to the redo log files: Select this to access and
read the redo logs directly from the file system of the local computer where Attunity
Replicate is installed.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 144
Copy redo logs to a temporary folder: Select this to copy the redo logs to a
temporary folder and then specify the path of the redo logs on the Oracle machine.
Note When configuring multiple tasks that use the same temporary folder
(configured in the Oracle source endpoint), do not select the Delete processed
archived redo log files option. This is because Replicate uses the original
archived log names.
Note When a stopped task is resumed, Replicate will try to re-copy the
currently processed Redo logs. If there are no Redo logs in the specified
directory, the task will wait for them to be copied there.
Look for missing archived redo logs in folder: Type the full path to a location
from where you want Attunity Replicate to read the archived redo logs if they are not
found in the default location. The folder can be located anywhere in the network where
Attunity Replicate is located, but be sure that the location is accessible to the Attunity
Replicate user.
Replicate has file-level access to the specified folder: Select this to
access and read the archived redo logs directly from the file system of the local
computer where Attunity Replicate is installed.
Delete processed archived redo log files: Select this to delete the copied
archived redo log files after they have been read. This option requires the following
additional permissions for the Replicate user:
GRANT SELECT ON DBA_FILE_GROUPS
Example:
GRANT SELECT ON DBA_FILE_GROUPS to nonpriv_user;
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 145
GRANT EXECUTE on SYS.DBMS_FILE_GROUP
Example:
GRANT EXECUTE ON SYS.DBMS_FILE_GROUP to nonpriv_user;
EXECUTE DBMS_FILE_GROUP.GRANT_SYSTEM_PRIVILEGE with the system
privilege 'MANAGE_FILE_GROUP' for the Replicate user.
Example:
execute DBMS_FILE_GROUP.GRANT_SYSTEM_PRIVILEGE (DBMS_FILE_
GROUP.MANAGE_FILE_GROUP, 'nonpriv_user', FALSE)
Note Verify that another file group is not using the configured temp directory
under a different Oracle user.
Retry interval: Use the counter or type the number of seconds that the system waits
before resending a query.
Archived redo logs destination identifier: The destination of the archived redo
logs. The value should be the same as the DEST_ID number in the V$archived_log
table.
Note When working with multiple log destinations (DEST_ID), you should specify
an Archived redo logs location identifier that represents archived logs that
can be accessed by Replicate. If the Archived redo logs location identifier is
not specified, Replicate will use the minimal existing DEST_ID.
Note The "Expose NUMBER" definition in the Oracle database is used for the
NUMBER data type only (without the explicit precision and scale definition).
Use archived redo logs only: When this option is selected, Attunity Replicate will
only access the archived redo logs. If the archived redo logs ares stored on ASM only,
the Attunity Replicate user needs to be granted the ASM privileges described in
Required ASM Privileges.
Support nested tables: Select this option if you need to replicate Oracle tables
containing columns that are nested tables or defined types.
For more information on this feature and its prerequisites, see Replicating Nested
Tables.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 146
Replacing the Path with a Prefix
Replace path prefix: You can determine whether to read the redo logs from a
different root location while leaving the relative path unchanged.
Type the first part of the path to the current location of the redo logs. For example,
C:\OldFolder.
You can include one folder or directory level or multiple folders or directories in this
field.
With: Type the name of the folder or prefix to replace the existing prefix that you
added in the field above. For example, C:\NewFolder.
Apply prefix replacement to online and archived redo logs: Select this to
apply the prefix replacement to the online and archived redo logs.
Replicate has file-level access to the new location: Select this to
access and read the online and archived redo log files directly from the file
system of the local computer where Attunity Replicate is installed.
Apply prefix replacement to archived redo logs only: Select this to apply
the prefix replacement to the archived redo logs only (and not to the online redo
logs).
Replicate has file-level access to the original online location: Select
this to access and read the original online redo log files directly from the file
system of the local computer where Attunity Replicate is installed.
Replicate has file-level access to the new archive location: Select
this to access and read the archived redo log files directly from the file
system of the local computer where Attunity Replicate is installed.
Delete processed archived redo log files: Select this to delete the copied
archived redo log files after they have been read. This option requires the
following additional permissions for the Replicate user:
GRANT SELECT ON DBA_FILE_GROUPS
Example:
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 147
GRANT SELECT ON DBA_FILE_GROUPS to nonpriv_user;
GRANT EXECUTE on SYS.DBMS_FILE_GROUP
Example:
GRANT EXECUTE ON SYS.DBMS_FILE_GROUP to nonpriv_user;
EXECUTE DBMS_FILE_GROUP.GRANT_SYSTEM_PRIVILEGE with the system
privilege 'MANAGE_FILE_GROUP' for the Replicate user.
Example:
execute DBMS_FILE_GROUP.GRANT_SYSTEM_PRIVILEGE (DBMS_FILE_
GROUP.MANAGE_FILE_GROUP, 'nonpriv_user', FALSE)
Note Verify that another file group is not using the configured temp
directory under a different Oracle user.
Retry interval: Use the counter or type the number of seconds that the system waits
before resending a query.
Archived redo logs destination identifier: The destination of the archived redo
logs. The value should be the same as the DEST_ID number in the V$archived_log
table.
Note When working with multiple log destinations (DEST_ID), you should specify
an Archived redo logs location identifier that represents archived logs that
can be accessed by Replicate. If the Archived redo logs location identifier is
not specified, Replicate will use the minimal existing DEST_ID.
Note The "Expose NUMBER" definition in the Oracle database is used for the
NUMBER data type only (without the explicit precision and scale definition).
Use archived redo logs only: When this option is selected, Attunity Replicate will
only access the archived redo logs. If the archived redo logs ares stored on ASM only,
the Attunity Replicate user needs to be granted the ASM privileges described in
Required ASM Privileges.
Support nested tables: Select this option if you need to replicate Oracle tables
containing columns that are nested tables or defined types.
For more information on this feature and its prerequisites, see Replicating Nested
Tables.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 148
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 149
Finding the Wallet Entries used for TDE Encryption
In order to specify the correct encryption key(s) used for TDE tablespace encryption or TDE
column encryption, you first need to find the relevant entry (or entries in the case of
multiple keys) in the Oracle Wallet containing the encryption key(s). After you find the
relevant entry or entries, copy the entry and its value (or entries and values if more than
one) into the Names and Values fields respectively.
Note To enter multiple values, first copy each entry into a text editor such as Notepad
making sure to separate the values with a comma. Then, copy the string containing the
values and commas from the text editor and paste it into the Values field. There is no
need to do this for entries. You can paste the entries directly into the Entries field,
remembering to separate each entry with a comma.
4. Use the “list” option in the Oracle mkstore utility to determine the
ORACLE.SECURITY.DB/TS.ENCRYPTION.<SUFFIX> entry name(s), as follows:
mkstore –wrl <full wallet name> -list
5. If you know which entry/entries is/are used to encrypt the Redo logs, select the entry
name(s) and use the “viewEntry” option in the Oracle mkstore utility to determine the
entry value, as follows:
mkstore –wrl <full wallet name> -viewEntry <entry name>
Note If you do not know which entry is used to encrypt the Redo logs, you can
select multiple DB or TS entries and determine their values as described above
(and then copy and paste the entry names and values into the Names and Values
fields as described in the Finding the Wallet Entries used for TDE Encryption). If the
specified entries are not correct, the task will fail and the error message will
contain the correct entry name.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 150
Note If the DBA changes the entry while the task is running, the task will fail and
the error message will contain the new entry name. Add the new entry (name and
value) to the already specified entries and then resume the task.
In this section:
Supported Editions
Prerequisites
Limitations
Working with Microsoft SQL Server AlwaysOn Availability Groups
Required Permissions
Supported Compression Methods
Microsoft SQL Server Source Data Types
Homogeneous Replication
Preparing the Microsoft SQL Server Database for Replication
Setting General Connection Properties
Setting Advanced Connection Properties
Supported Editions
Attunity Replicate supports the following Microsoft SQL Server editions:
Enterprise Edition
Standard Edition
Workgroup Edition
Developer Edition
Prerequisites
Make sure that the following prerequisites have been met:
Client prerequisites (for source and target endpoints):
Attunity Replicate for Windows:
For all versions of Microsoft SQL Server, Microsoft SQL Server Native Client 11.0 must
be installed on the Attunity Replicate Server machine.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 151
Attunity Replicate for Linux:
You can either work with the Microsoft ODBC Driver or the Simba Microsoft SQL Server
ODBC Driver. Instructions for both are provided below.
First, install Microsoft ODBC Driver 13.1.1.0 for Linux on the Attunity Replicate Server
machine.
Then, on the Attunity Replicate Server machine, open a Unix shell and perform the
following steps:
Note The procedure below assumes that you have installed a single default
instance of Replicate on Linux (areplicate). If you have installed multiple instances,
replace areplicate with the name of the instance running the task with a Microsoft
SQL Server source. If several instances are running such as task, the procedure
needs to be repeated for each instance.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 152
To create a symbolic link
Issue the following command:
ln -s <existing_library_name> libmsodbcsql-13.1.so.0.0
where <existing_library_name> is the name of the currently installed library
(e.g. libmsodbcsql-13.1.so.0.2).
A Microsoft SQL Server account with the specific access privileges is required. See
Source Permissions for more information.
Microsoft SQL Server as a source must be configured for a full backup to work with
Attunity Replicate. For more information, see Preparing Microsoft SQL Server Backup
and Recovery.
Limitations
When using a Microsoft SQL Server source endpoint in a Replicate task, the following
imitations apply:
A Secondary SQL Server database is not supported as a source database.
If you are using a Microsoft SQL Server source database in a replication task, the
Microsoft SQL Server Replication Publisher definitions for the database that was used
in the task are not removed when you remove a task. A Microsoft SQL Server system
administrator must delete these definitions from Microsoft SQL Server.
Sparse tables are not supported.
Replicating data from indexed views is not supported.
Renaming tables using sp_rename is not supported (e.g. sp_rename
'Sales.SalesRegion', 'SalesReg;)
Renaming columns using sp_rename is not supported (e.g. sp_rename
'Sales.Sales.Region', 'RegID', 'COLUMN';)
TRUNCATE events will not be captured.
Changes to computed fields in a Microsoft SQL Server source will not be replicated.
Microsoft SQL Server partition switching is not supported.
When using the WRITETEXT and UPDATETEXT utilities, Attunity Replicate does not
capture events applied on the source database.
The following DML pattern is not supported:
select <*> into <new_table> from <existing_table>
Column-level encryption is not supported.
Due to a known issue with Microsoft SQL Server 2008/2008 R2, Attunity Replicate does
not support server level audits on Microsoft SQL Server 2008/2008 R2 as a source
database.
For example, running the following command:
USE [master]
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 153
GO
ALTER SERVER AUDIT [my_audit_test-20140710] WITH (STATE=on)
GO
Will cause Attunity Replicate to fail.
The following limitations apply when accessing the backup transaction logs:
Encrypted backups are not supported.
Backups stored at a URL or on Windows Azure are not supported.
The following limitations apply when accessing the backup transaction logs at file
level:
The backup transaction logs must reside in a shared folder with the appropriate
permissions and access rights.
Active transaction logs are accessed through the Microsoft SQL Server API (and
not at file-level).
The Attunity Replicate and Microsoft SQL Server machines must reside in the
same domain.
Compressed backup transaction logs are not supported.
Transparent Data Encryption (TDE) is not supported. Note that when accessing
the backup transaction logs using SQL Server’s native functionality (i.e. not using
file-level access), TDE encryption is supported.
Unix platforms are not supported.
Reading the backup logs from multiple stripes is not supported.
For more information on configuring Attunity Replicate to access the backup
transaction logs at file-level access, see Setting Advanced Connection Properties.
Microsoft SQL Server backup to multiple disks is not supported.
When inserting a value into SQL Server spatial data types (GEOGRAPHY and
GEOMETRY), one can either ignore the SRID (Spatial Reference System Identifier)
property - in which case the default SRID will be used (0 for GEOMETRY and 4326 for
GEOGRAPHY) - or specify a different number. When replicating tables with spatial data
types, Attunity Replicate replaces the SRID that was inserted by user with the default
SRID.
If your database is not set up for MS-REPLICATION or MS-CDC, you can still capture
tables that do not have a Primary Key, but bear in mind that in such a setup only
INSERT/DELETE DML events will be captured. UPDATE and TRUNCATE TABLE events
will be ignored.
Columnstore indexes are not supported.
Memory-optimized tables (using In-Memory OLTP) are not supported.
When replicating a table with a Primary Key that consists of multiple columns,
updating the Primary Key columns during Full Load is not supported.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 154
Temporal databases are not supported
Delayed durability is not supported
Table change tracking is not supported
Due to an ODBC limitation, no more than 16 columns can be part of a Primary Key.
Note Support for AlwaysOn Availability Groups is not available when Replicate is
installed on Linux.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 155
In the event that Replicate is connected to a primary replica that is not the AlwaysOn
backup replica and needs to access the backup transaction logs, it will be unable to do so.
In such a situation, the task will stop with a fatal error.
The scenarios where Replicate needs to access the backup transaction logs are as follows:
Working in backup only mode.
For more information on this mode, see Read changes from backup only.
Starting a task from a specific timestamp.
For more information on this option, see the Tables are already loaded in Using
Advanced Run Options.
Due to latency i.e. if there is a high rate of events (changes) that Replicate is unable to
process using the active log only.
2. In Replicate:
a. Open the Microsoft SQL Server endpoint (source or target) settings.
b. In the Server Name field, specify the DSN name or IP address that was
configured for the Availability Group Listener.
c. Specify the name of the replica server where Replicate expects to find the backup
logs in the AlwaysOn backup replica field in the Advanced tab of the
Microsoft SQL Server source endpoint. The name must be specified without the
domain suffix, even if it is the correct domain. For example, instead of
myreplica.qa.int, specify myreplica.
Note
When you start a Replicate task for the first time, it may take longer than usual to
start as the creation of the table articles is being duplicated by the Availability
Groups Server.
In the event of failover, you will see recoverable errors in the log and the task will
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 156
restart. This is normal as the connection is being forcibly closed by the failover. As
soon as the new primary server is available, processing will resume.
Required Permissions
To use a Microsoft SQL Server source in an Attunity Replicate task, the user specified in the
Microsoft SQL Server endpoint connection settings must be a member of both the db_owner
database role and the sysAdmin fixed server role.
Sparse Sparse
Columns Columns
Columnar
Structure
Compression
2005 No No No No
2008-2016 Yes No No No
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 157
Note Collatable data types are indicated by an asterisk (*).
Table 8.5 | Microsoft SQL Server Source Data Types with Mapping to Attunity Replicate
Data Types when the Target is not Microsoft SQL Server
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 158
Table 8.5 | Microsoft SQL Server Source Data Types with Mapping to Attunity Replicate
Data Types when the Target is not Microsoft SQL Server (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 159
Table 8.5 | Microsoft SQL Server Source Data Types with Mapping to Attunity Replicate
Data Types when the Target is not Microsoft SQL Server (Cont.)
Note User-defined data types are supported according to their base-type. For example
a user-defined data type based on DATETIME is handled as a DATETIME data type.
Homogeneous Replication
When replicating from a Microsoft SQL Server source to a Microsoft SQL Server target,
most of the source and target data types will be identical. The exceptions are listed in the
table below.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 160
Note In homogeneous replication, the source data first passes through the Attunity
Replicate data type and is therefore subject to any limitations of that type.
For information on Replicate data types and their limitations (where relevant), see
Replicate Data Types.
For information on which Replicate data types the source data passes through when
replicating from Microsoft SQL Server, see the Microsoft SQL Server to Attunity
Replicate data types mapping table described earlier.
Note To prevent data truncation when replicating XML, Geometry and Geography
data types, it is strongly recommended to enable the Allow unlimited LOB size option in
the task settings.
Microsoft SQL Server Source Microsoft SQL Server Microsoft SQL Server
2005 Target 2005-2016 Target
DATETIME2 (Microsoft SQL DATETIME (when
Server 2008 and later) prec<=3)
else VARCHAR (37)
DATE VARCHAR (11)
TIME VARCHAR (27)
DATETIMEOFFSET VARCHAR (34)
VARCHAR VARCHAR (x)
(when x=0 or x>8000)
else VARCHAR (max)
NVARCHAR (length) NVARCHAR (x)
(when x=0 or x>8000)
else NVARCHAR (max)
VARBINARY VARBINARY (x)
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 161
Table 8.6 | Data Type Exceptions in Homogeneous Replication (Cont.)
Microsoft SQL Server Source Microsoft SQL Server Microsoft SQL Server
2005 Target 2005-2016 Target
(when x=0 or x>8000)
else VARBINARY (max)
HIERARCHYID VARCHAR (x)
GEOMETRY VARCHAR (MAX)
GEOGRAPHY VARCHAR (MAX)
TIMESTAMP VARBINARY
Note To support collation replication, the DBA must ensure that the collations defined
for the source Microsoft SQL Server database are the same as those defined for the
target Microsoft SQL Server database.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 162
Replicating Tables that do not have a Primary Key
Defining Microsoft SQL Server Database Settings
Note After setting the Recovery Model, it is strongly recommended not to change it;
doing so may result in loss of data.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 163
In the Distributor step, select <Microsoft SQL Server Name> will act as its own
distributor; Microsoft SQL Server will create a distribution database and
log.
Note This functionality is supported only for Microsoft SQL Server Enterprise edition
and not on Microsoft SQL Server 2005.
Use MS-CDC
To set up MS-CDC, you first need to enable MS-CDC for the database by running the
following command:
use [DBname]
EXEC sys.sp_cdc_enable_db
Then you need to enable MS-CDC for each of the source tables by running the following
command:
EXECUTE sys.sp_cdc_enable_table @source_schema = N'MySchema', @source_name
= N'MyTable', @role_name = NULL;
Note Replicating tables that do not have a Primary Key or a Unique Index may
adversely affect performance (since additional database resources are required to
capture the changes). However, you can prevent performance issues related to the
absence of Primary Keys or a Unique Index by manually adding indexes to the target
tables.
For more information on setting up MS-CDC for specific tables, please refer to the
Microsoft website.
If your database is not set up for MS-REPLICATION or MS-CDC, you can still capture tables
that do not have a Primary Key, but bear in mind that in such a setup only INSERT/DELETE
DML events will be captured. UPDATE and TRUNCATE TABLE events will be ignored.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 164
It is also important to note that a DELETE statement executed on an UPDATED source
record, will not be applied on the target.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 165
3. In the Description field, type a description that helps to identify the Microsoft SQL
Server database. This is optional.
4. Select SOURCE as the database role.
5. Select Microsoft SQL Server as the database Type.
6. Specify the Server name. This is the host name or IP address of the computer with
the Microsoft SQL Server instance containing the source database.
Note: To override the default port, add the port to the server name, separated by a
comma. For example, if the server name is myserver.company.local and the port is
3333, then the server name should be entered like this:
myserver.company.local,3333
7. Select Windows authentication (only relevant when Replicate is installed on
Windows) or SQL Server authentication.
If you select Windows authentication, the user credentials for the Windows domain
will be used. This privilege must be configured in the Microsoft SQL Server database
by the system administrator. Note that this option is not relevant when Microsoft SQL
Server is running on Linux.
Note When using Windows authentication, make sure that the user account
that is associated with the Attunity Replicate Server service has Network read
and write permissions. This must be configured by a Windows system
administrator.
Notes
This information is case sensitive.
To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 166
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
Important: Make sure that the Microsoft SQL Server user has the correct access
privileges. For information on how to provide the required privileges, see Required
Permissions.
8. Type the Database name or click Browse and select one from the list of available
databases. This is the name of the database from where you are replicating the data.
Note This method also requires the Log Reader Agent to be running to enable
truncation of the Microsoft SQL Server active transaction log. Note that if the
Log Reader Agent is not running, the active log may become full, causing the
source database to be essentially "read-only" until the issue is resolved.
Note When this option is selected, Replicate creates a table named attrep_
truncation_safeguard in the source database. This is a very small but
important table whose purpose is to prevent truncation of the transaction log
by mimicking a transaction in the database. The table can be safely deleted if
there are no tasks configured with the Start transactions in the database
option.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 167
involve any transactional activities, it can only be used when Microsoft
Replication is not running. Also, using this method, only one Attunity Replicate
task can access the database at any given time. Therefore, if you need to run
parallel Attunity Replicate tasks against the same database, use the default
method.
Note This method requires the Log Reader Agent to be stopped in the
database. If the Log Reader Agent is running when the task starts, Attunity
Replicate will forcibly stop it. Alternatively, you can stop the Log Reader Agent
manually, before starting the Attunity Replicate task. For instructions on how
to do this, refer to the Microsoft SQL Server Management Studio help.
Note This option is not available when the Microsoft SQL Server Replication
job resides on a remote Distributor machine as Replicate does not have access
to the remote machine.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 168
Replicate has file-level access to the backup log files: Select this option if
Attunity Replicate has been granted file-level access to the backup log files in the
Alternate backup folder.
Note When Attunity Replicate has file-level access to the backup transaction logs,
the following rules apply:
The Alternate backup folder must be a common shared network folder, for
example: \\temp\backup.
The Attunity Replicate Server service must be configured to log on using the
user name and password specified in the Backup folder user name and
Backup folder password fields.
To do this:
In the Windows Services console, double-click the Attunity Replicate Server
service.
In the Log On tab, select This account and then enter the user name and
password.
The specified user must be granted Read permission to the alternate backup
folder (i.e. the shared network folder).
For a complete list of the limitations affecting file-level access, see Limitations.
Backup folder user name: The user name required to access the backup folder
when Attunity Replicate has file-level access.
Backup folder password: The password required to access the backup folder
when Attunity Replicate has file-level access.
Backup file preprocessing command: You can use a third-party utility to convert
the transaction logs to standard Microsoft SQL Server format (if they are in a different
format) and back them up to an alternate backup folder. This option should be used in
conjunction with the Alternate backup folder option described above.
Prerequisites and Notes:
The command is invoked via the XP_CMDSHELL extended procedure.
The backup utility is responsible for setting the system return code (0 for
success, 1 for failure), assuming that this code is delegated as the XP_CMDSHELL
return value.
The backup utility invoked by XP_CMDSHELL must have the same security rights
as the Microsoft SQL Server service account.
XP_CMDSHELL is normally disabled. It can be enabled and disabled by using the
Policy-Based Management or by executing SP_CONFIGURE.
Using this extended procedure requires CONTROL SERVER permission (at least).
Command Usage:
The backup utility should provide Attunity Replicate with the following parameters:
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 169
{BACKUP_INFILE} - The full path to the original backed up transaction log.
{ALTDIR_OUTFILE} - The specifications of the target file to transfer to the
alternate backup folder.
{BACKUP_SET} - The backup set to be processed within the backup log.
Example command:
C:\Temp\YourBackupUtility.exe -B{BACKUP_INFILE} -A{ALTDIR_OUTFILE}"
Important: Directory names in the command path or file names in the actual
command that contain spaces must be enclosed in double-quotes:
Example:
C:\temp\test\"my program"\"new version"\converter.exe -A{"input file"} -B
{outfile}
Delete processed backup logs: Select this option to delete the backup logs after
they have been read.
Select virtual backup device types: When this option is selected, Attunity
Replicate will read changes from the specified virtual device(s). Usually, this option
only needs to be enabled when using a third-party backup utility (which will be
recorded as a virtual device).
AlwaysOn backup replica: See Working with Microsoft SQL Server AlwaysOn
Availability Groups.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 170
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 171
Using SAP Sybase ASE as a Source
This section describes how to set up and use a SAP Sybase ASE database as the source
endpoint in a replication task.
In this section:
Prerequisites
Limitations
Required Permissions
SAP Sybase ASE database Source Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Removing the Truncation Point
Prerequisites
Make sure the following prerequisites have been met:
SAP Sybase ASE ODBC 64-bit client installed on the computer where Attunity Replicate
is located.
SAP Sybase ASE replication enabled for tables using the sp_setreptable command or
privileges to enable it automatically.
RepAgent must be disabled on the SAP Sybase ASE database.
When replicating to SAP Sybase ASE 15.7 installed on a Windows machine configured
with a non-Latin language (e.g. Chinese), Attunity Replicate requires Sybase 15.7
SP121 to be installed on the SAP Sybase ASE machine.
Limitations
The following limitations apply:
Sybase ASE primary/standby configuration is supported with the publish-and-
subscribe model only (i.e. Warm standby/MSA is not supported).
Only one Attunity Replicate task can be run per SAP Sybase ASE database.
Attunity Replicate tasks cannot run concurrently with SAP Sybase ASE Replication
Server against the same SAP Sybase ASE database.
Rename table is not supported (e.g. sp_rename 'Sales.SalesRegion',
'SalesReg;)
Rename column is not supported (e.g. sp_rename 'Sales.Sales.Region',
'RegID', 'COLUMN';)
Zero values located at the end of binary data type strings are truncated when
replicated to the target database. For example,
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 172
0x0000000000000000000000000100000100000000 in the source table will become
0x00000000000000000000000001000001 in the target table.
The reorg rebuild index command is not supported.
Clusters are not supported.
Materialized views are not supported.
Required Permissions
To use SAP Sybase ASE database as a source in a Replicate task, the following permissions
are required:
sa_role
replication_role
sybase_ts_role
If the Automatically enable Sybase replication option is enabled (in the Advanced
tab), Replicate also needs permission to run the stored procedure sp_setreptable.
For information on the Automatically enable SAP Sybase ASE replication option, see
Setting Advanced Connection Properties.
Table 8.7 | SAP Sybase ASE database Source Data Types with Mapping to Attunity
Replicate Data Types
SAP Sybase ASE Source Data Types Attunity Replicate Data Types
BIGINT INT8
UNSIGNED BIGINT UINT8
INT INT4
UNSIGNED INT UINT4
SMALLINT INT2
UNSIGNED SMALLINT UINT2
TINYINT UINT1
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 173
Table 8.7 | SAP Sybase ASE database Source Data Types with Mapping to Attunity Rep-
licate Data Types (Cont.)
SAP Sybase ASE Source Data Types Attunity Replicate Data Types
DECIMAL NUMERIC
NUMERIC NUMERIC
FLOAT REAL8
DOUBLE REAL8
REAL REAL4
MONEY NUMERIC
SMALLMONEY NUMERIC
DATETIME DATETIME
BIGDATETIME DATETIME (6)
SMALLDATETIME DATETIME
DATE DATE
TIME TIME
BIGTIME TIME
CHAR STRING
UNICHAR WSTRING
NCHAR WSTRING
VARCHAR STRING
UNIVARCHAR WSTRING
NVARCHAR WSTRING
BINARY BYTES
VARBINARY BYTES
BIT BOOLEAN
TEXT CLOB
UNITEXT NCLOB
IMAGE BLOB
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 174
Setting General Connection Properties
This section describes how to configure general connection properties. For an explanation
of how to configure advanced connection properties, see Setting Advanced Connection
Properties below.
Note You can also use SAP Sybase ASE files as a source. For more information, see
Using the Attunity Replicate File Channel.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 175
information, see your SAP Sybase ASE database Administrator (DBA).
Important: Make sure that the SAP Sybase ASE user entered in the SAP Sybase
ASE Authentication section has the correct access privileges. For information on
how to provide the required privileges, see Required Permissions.
9. In the Database name field, enter the SAP Sybase ASE database name.
Note If the user name or password specified in the General tab contains non-Latin
characters (e.g. Chinese), the following property is required:
charset=gb18030
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 176
5. To reset the parameter value to its default, click the "Restore default value" icon at the
end of the row.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 177
Using a MySQL-Based Database as a Source
This section describes how to set up and use a MySQL-based database as a source in a
replication task.
You need to configure the Replicate MySQL endpoint when replicating from any of the
following databases:
MySQL
Percona
MariaDB
Amazon Aurora
Amazon RDS for MySQL
Note The procedures for configuring connectivity to these endpoints are identical to
those described in this section, for MySQL. However, when using Percona as a source,
there is no need to perform the procedures described in Cluster Prerequisites.
In this section:
Prerequisites
Limitations
Security Requirements
Setting up Amazon RDS MySQL for CDC (Change Data Capture)
MySQL Database Source Data Types
Setting General Connection Properties
Selecting a Schema
Setting Advanced Connection Properties
Prerequisites
Make sure that the prerequisites described in this section have been met.
In this section:
General Prerequisites
Attunity Replicate Server for Windows
Attunity Replicate Server for Linux
MySQL Replication
Enable Binary Logging
Cluster Prerequisites
Replicating 4-byte UTF8 Emojis
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 178
General Prerequisites
The following is required:
A MySQL account with the required Security Requirements.
A MySQL database with the tables that you want to replicate should be accessible in
your network.
The following MySQL editions are supported:
MySQL Community Edition
MySQL Standard Edition
MySQL Enterprise Edition
MySQL Cluster Carrier Grade Edition
MySQL Replication
Replication enables data from one MySQL database server (the master) to be copied to one
or more MySQL database servers (the slaves).
The Replicate MySQL source endpoint can be configured to replicate data from either a
master or a slave.
To replicate changes from a slave (CDC), the binary logging parameter log_slave_
updates needs to be set to true (1).
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 179
Table 8.8 | Required my.ini/my.cnf Parameters for Binary Logging
Parameter Value
server_id Any value from 1.
Example:
server_id=1
log-bin=<path> Path to the binary log file (without an extension).
Example:
log-bin=E:\MySql_Logs\BinLog
binlog_format Must be:
binlog_format=row
expire_logs_days To prevent disk space issues, it is strongly recommended not to use
the default value (0).
Example:
expire_logs_days=5
binlog_row_image Must be:
binlog_row_image=full
binlog_checksum NONE or CRC32
When enabled, this parameter causes the master to write a
checksum for each event in the binary log. The default from MySQL
5.6.6 is CRC32. Before that, the default is NONE.
log_slave_updates When replicating from a MySQL slave database server, this value
should be set to true (1). If set to 0 (the default) updates on a slave
received from a master during replication are not logged to the
slave's binary log. The slave's binary log needs to be enabled for
this to have an effect.
Cluster Prerequisites
To be able to replicate clustered (NDB) tables (i.e. by connecting Attunity Replicate to any
of the cluster nodes), the following parameters must be configured in MySQL’s my.ini
(Windows) or my.cnf (UNIX) files.
Note When using Percona as a source, there is no need to perform the procedures
described in this section.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 180
Table 8.9 | Required my.ini/my.cnf Parameters for Cluster Replication
Parameter Value
ndb_log_bin Must be:
ndb_log_bin=on
This ensures that changes in clustered tables will be logged to the
binary log.
ndb_log_update_ Must be:
as_write ndb_log_update_as_write=OFF
This prevents writing UPDATEs as INSERTs in the binary log.
ndb_log_updated_ Must be:
only ndb_log_updated_only=OFF
Ensures that the binary log will contain the entire row and not just
the changed columns.
Limitations
The following limitations apply:
The following DDLs are not supported:
All partition DDLs
Drop Table
Rename Table
Using the alter table <table_name> add column <column_name> statement to add
columns to the beginning or to the middle of a table is not supported.
Using the alter table <table_name> add column <column_name> statement to add
a column to the middle of a table, will add the column to the end of the table instead.
When MySQL is installed on Windows, changes are not captured from tables whose
names contain both upper and lower case characters.
The AR_H_USER header column is currently not supported. For information on using
header columns, see Headers.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 181
If a MySQL table contains LOBs and the task's Replicate Lob columns option is
disabled, the table will be replicated without the LOB columns. Note that this only
applies to MEDIUMBLOB, LONGBLOB, MEDIUMTEXT and LONGTEXT columns. This
limitation does not apply to BLOB, TINYBLOB, TEXT and TINYTEXT columns.
If the MySQL database is stopped during Full Load, the Full Load will end successfully,
but the tables on the target may have less rows than the source tables. If this should
happen, either restart the task or reload the tables with the missing rows.
Indexes created on only part of the column data are not supported.
The following is an example of a statement that creates an index using only part of the
column data:
CREATE INDEX partial_name ON customer (name(10));
Security Requirements
The Attunity Replicate user must have the ReplicationAdmin role with the following
privileges (according to task type):
REPLICATION CLIENT - Required for Change Processing tasks only. In other words,
Full Load only tasks do not require this privilege.
REPLICATION SLAVE - Required for Change Processing tasks only. In other words, Full
Load only tasks do not require this privilege.
SUPER - Only required in versions prior to MySQL 5.6.6.
The Attunity Replicate user must also have SELECT privileges for the source tables
designated for replication.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 182
MySQL Database Source Data Types
The following table shows the MySQL database source data types that are supported when
using Attunity Replicate and the default mapping to Attunity Replicate data types. When
replicating to a MySQL target, the source and target data types are the same, apart from
the exceptions described in Homogeneous Replication.
For information on how to view the data type that is mapped in the target, see the section
for the target database you are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 8.10 | MySQL Database Source Data Types with Mapping to Attunity Replicate
Data Types when the Target is not MySQL
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 183
Table 8.10 | MySQL Database Source Data Types with Mapping to Attunity Replicate
Data Types when the Target is not MySQL (Cont.)
to UTC).
TIME STRING
TIMESTAMP DATETIME
YEAR INT2
DOUBLE REAL8
FLOAT REAL (DOUBLE)
If the FLOAT values are not in the range specified below,
use a transformation to map FLOAT to STRING. For an
explanation of how to do this, see Using the Transform Tab.
Supported FLOAT range:
- 1.79E+308 to -2.23E-308, 0
and
2.23E-308 to 1.79E+308
*VARCHAR (45) WSTRING (45)
*VARCHAR (2000) WSTRING (2000)
*VARCHAR (4000) WSTRING (4000)
VARBINARY (4000) BYTES (4000)
VARBINARY (2000) BYTES (2000)
*CHAR WSTRING
*TEXT WSTRING (65535)
*LONGTEXT NCLOB
*MEDIUMTEXT NCLOB
*TINYTEXT WSTRING (255)
GEOMETRY BLOB
POINT BLOB
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 184
Table 8.10 | MySQL Database Source Data Types with Mapping to Attunity Replicate
Data Types when the Target is not MySQL (Cont.)
Note If the DATETIME and TIMESTAMP data types are specified with a “zero” value
(i.e. 0000-00-00), you need to make sure that the target database in the replication task
supports "zero" values for the DATETIME and TIMESTAMP data types. If they are not
supported, you can use a transformation to specify a supported value (e.g. 1970.)
Otherwise, they will be recorded as null on the target.
Note The JSON data type introduced in MySQL 5.7 is not supported. Consequently,
JSON columns in the source tables will be ignored.
Homogeneous Replication
The following section describes how Replicate handles replication between a MySQL source
and a MySQL target (i.e. homogeneous replication).
Note In homogeneous replication, the source data first passes through the Attunity
Replicate data type and is therefore subject to any limitations of that type.
For information on Replicate data types and their limitations (where relevant), see
Replicate Data Types.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 185
For information on which Replicate data types the source data passes through when
replicating from MySQL, see the MySQL to Attunity Replicate data types mapping table
described earlier.
Data Types
When replicating to a MySQL target endpoint, the data types will be identical with the
following exceptions:
Collation
When replicating from one MySQL endpoint to another, table and column collations will be
replicated to the target. Collatable data types are indicated by an asterisk (*) in Table 11–3
above.
To support collation replication, the DBA must ensure that the collations defined for the
source MySQL database are the same as those defined for the target MySQL database.
Note You can also use MySQL files as a source. For more information, see Using the
Attunity Replicate File Channel.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 186
2. In the Name field, type a name for your endpoint. This can be any name that will help
to identify the database being used.
3. In the Description field, type a description that helps to identify the MySQL database.
This is optional.
4. Select SOURCE as the endpoint role.
5. From the Type drop-down list, select MySQL.
6. In the Server Name field, enter the host name or IP address of the computer on
which the MySQL database is installed.
7. Optionally, change the default port (3306).
8. Type the MySQL authentication information (User Name, Password) for the
authorized user for this MySQL database. If you do not know this information, see your
MySQL database Administrator (DBA).
Important: Make sure that the MySQL user entered in the MySQL Authentication
section has the correct access privileges. For information on how to provide the
required privileges, see Security Requirements.
Selecting a Schema
You can choose which MySQL database to access. After configuring the MySQL source
database connection settings, open the Select Tables dialog box (by clicking the Table
Selection button on the right of the console) and select which schema to use from the
Schema drop down list.
See also Designing Tasks.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 187
Note Attunity Replicate assumes that MySQL Client 5.2.6 to 5.3.x for Linux or MySQL
ODBC Client 5.2.6 to 5.3.x 64-bit for Windows is installed on the Attunity Replicate
Server machine. If a version later than 5.3.x is installed, you need to specify the
version number as an internal parameter where provider is the Parameter and MySQL
ODBC <version> Unicode Driver is the Value (where <version> is the client version
e.g. 5.4).
For instructions on setting internal parameters, see Internal Parameters.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 188
Using Hadoop as a Source
This section describes how to set up and use Hadoop as the source endpoint in a replication
task.
In this section:
Prerequisites
Limitations
Required Permissions
Hadoop Endpoint Source Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Before you begin to work with a Hadoop cluster as a data source in Attunity Replicate,
make sure that the following prerequisites have been met:
General:
The Hadoop WebHDFS must be accessible from the Attunity Replicate machine.
The Hadoop Data Nodes must be accessible from the Attunity Replicate machine.
The Hadoop WebHDFS service must be running.
To access Hive using WebHCat, the Hadoop WebHCat service must be running.
Other methods for accessing Hive are described later in this chapter.
The user specified in the Attunity Replicate Hadoop target settings must have
access to HCatalog.
SSL: Before you can use SSL, you first need to perform the following tasks:
Configure each NameNode and each DataNode with an SSL certificate (issued by
the same CA).
Place the CA certificate on the Replicate Server machine. The certificate should
be a base64-encoded PEM (OpenSSL) file.
Permissions: The user specified in the Hadoop source settings must have read
permission for the HDFS directories that contain the data files.
Limitations
The following limitations apply:
Change data capture is not supported. The Hadoop endpoint will not be available for
selection if either Apply Changes or Store Changes is enabled in the task settings.
Replicating data compressed using a method other than gzip is currently not
supported.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 189
Replicating data that is not in Text format is currently not supported.
Replicating from tables with skews, buckets or partitions is currently not supported.
Limited LOB support only.
Due to a Hive limitation, in Hive version 0.12 and earlier versions, only alphanumeric
and underscore characters are allowed in table and column names. From Hive 0.13,
column names can contain any Unicode character.
Required Permissions
The Hadoop NameNode must be accessible from the Attunity Replicate machine.
Table 8.11 | Supported Hadoop Data Types Mapped to Attunity Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 190
Unsupported Data Types
The Complex Types listed below are not supported:
ARRAYS
MAPS
STRUCTS
UNION
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 191
Prerequisites has been met.
In the CA path field, either specify the directory containing the CA certificate.
-OR-
Specify the full path to a specific CA certificate.
b. Select one of the following authentication types:
User name - Select to connect to the Hadoop cluster with only a user name.
Then, in the User name field, specify the name of a user authorized to
access the Hadoop cluster.
Kerberos - Select to authenticate against the Hadoop cluster using
Kerberos. Replicate automatically detects whether Attunity Replicate Server
is running on Linux or on Windows and displays the appropriate settings.
Note You need to define a global Kerberos ticket file even if you select
the Use specific Kerberos ticket file option. The global Kerberos
ticket file is used for authentication when selecting a Hive endpoint, when
testing the connection (using the Test Connection button), and when
selecting which tables to replicate.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 192
If you selected Keytab, provide the following information:
Realm: The name of the realm in which your Hadoop cluster resides.
For example, if the full principal name is john.doe@EXAMPLE.COM, then
EXAMPLE.COM is the realm.
Principal: The user name to use for authentication. The principal must
be a member of the realm entered above.
For example, if the full principal name is john.doe@EXAMPLE.COM, then
john.doe is the principal.
Keytab file: The full path of the Keytab file. The Keytab file should
contain the key of the Principal specified above.
Note When the Replicate KDC and the Hadoop KDC are in different
domains, a relationship of trust must exist between the two
domains.
If you are unsure about any of the above, consult your IT/security
administrator.
For additional steps required to complete setup for Kerberos authentication,
see Using Kerberos Authentication.
User name and password - Select to connect to the Hadoop NameNode or
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 193
to the Knox Gateway (when enabled - see below) with a user name and
password. Then, in the User name and Password fields, specify the
required user name and password.
Important: Make sure that the specified user has the required Hadoop
access privileges. For information on how to provide the required
privileges, see Required Permissions.
8. If you need to access the Hortonworks Hadoop distribution through a Knox Gateway,
select Use Knox Gateway.
Note To be able to select this option, first select Use SSL and then select
Password from the Authentication type drop-down list.
Note The port and path values are set in the gateway-site.xml file. If you
are unsure whether the default values have been changed, contact your IT
department.
Cluster name - The cluster name as configured in Knox. The default is "Default".
10. In the HDFS section, select either WebHDFS or HttpFS as the HDFS access method.
If you are accessing MapR, it is recommended to use HttpFS.
Note When the Use Knox Gateway option is selected, the NameNode, HttpFS
Host, and Port fields described below are not relevant (and are therefore hidden).
11. Do one of the following, depending on whether you selected WebHDFS or HttpFS:
If you selected WebHDFS:
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 194
a. In the NameNode field, specify the IP address of the NameNode.
Note This is the Active node when High Availability is enabled (see below).
Note When the Use Knox Gateway option is selected, the Host and Port fields
described below are not relevant (and are therefore hidden).
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 195
Table 8.12 | Hadoop Source Endpoint - Advanced Tab Options
Option Description
Field The delimiter used to separate fields in the source files.
delimiter
Null The value used to indicate a null value in the source files.
value Example (where @@ is the null value):
mike,male,295678
sara,female,@@
Escape This can either be the character used to escape the field delimiter character -
character if the source files were created using a SerDe that does not support quote
characters (see Example 1) or the character used to escape the quote
character - if the source files were created using a SerDe that supports quote
characters (see Example 2).
Example 1 (where \ is the escape character and a comma is the
field delimiter):
sunroof\,power-steering
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 196
5. To reset the parameter value to its default, click the "Restore default value" icon at the
end of the row.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 197
Using Teradata Database as a Source
This section describes how to set up and use Teradata Database as a source in a replication
task.
In this section:
Prerequisites
Required Permissions
Teradata Source Data Types
Setting General Connection Properties
Setting Change Processing Parameters
Prerequisites
The following section describes the prerequisites for working with Attunity Replicate and a
Teradata Database Source.
Note These instructions assume that the Teradata Database Client is installed in
the following location:
/opt/teradata/client/14.10
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 198
export LD_LIBRARY_PATH=$LD_LIBRARY_
PATH:/opt/attunity/replicate/lib:/opt/teradata/client/14.10/tbuild/lib64:$LD_
LIBRARY_PATH:/usr/lib64
5. To make sure that the path is updated, run the following command:
echo $LD_LIBRARY_PATH
6. Run the following command:
export ODBCINI=/opt/teradata/client/14.10/odbc_64/odbc.ini
7. Add the export commands to the site_arep_login.sh file.
8. Add the Teradata Database name to the hosts file as described in Editing the Hosts
File.
Important: A Replicate task cannot be defined with endpoints that use different ODBC
Driver Managers. Teradata Database source is accessed using the DataDirect ODBC
Driver Manager. With the exception of Oracle, Hadoop, File and Replicate Connect
sources (which are not subject to the above limitation), all other source endpoints are
accessed using the unixODBC Driver Manager.
To configure a task with a DataDirect source and a unixODBC target, you need to use
the Replicate File Channel. For more information about setting up a task using the File
Channel, see Using the Attunity Replicate File Channel.
Required Permissions
The user that is specified in the General tab when Setting General Connection Properties
must be registered as a user in the Teradata Database.
Table 8.13 | Supported Teradata Source Data Types with Mapping to Attunity Replicate
Data Types
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 199
Table 8.13 | Supported Teradata Source Data Types with Mapping to Attunity Replicate
Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 200
Table 8.13 | Supported Teradata Source Data Types with Mapping to Attunity Replicate
Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 201
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
Important: Make sure that the Teradata Database user entered in the Teradata
Database Authentication section has the correct access privileges. For information
on how to provide the required privileges, see Required Permissions.
8. Type the Default database name or select one from the list of available endpoints.
This is the name of the Teradata Database where you are replicating the data to.
Prerequisites
Before you can define the settings in the Change Processing tab, you need to ensure that
at least one special "Context" column exists in your source database tables. Context
column(s) are basically columns in a table that enable Replicate to determine whether the
data has changed. You can add Context columns specifically for the purpose of change
processing (either using a script or manually) or you can use existing columns that contain
suitable "Context" data.
Note You can create and reference any number of Context columns in a table as long
as the Context column names are the same for all source tables. Additionally, each
value in the Context column(s) must be unique.
In the example below, the Context column cf has been added to the table. The cf column
contains TIMESTAMPs that enable Replicate to determine whether a change occurred (by
comparing the current TIMESTAMP with the TIMESTAMP stored in its repository).
By default, all changes are assumed to be INSERTs. If UPDATE and DELETE operations are
also performed on the source tables, you can write an UPDATE and/or DELETE expression
(described below) that will enable Replicate to identify the operation type.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 202
Figure 8.1 | Example of a Table with a Context Column
Limitations
The following limitations apply when Change Processing is enabled for the Teradata
Database source:
The "Start from timestamp" run option is not supported. For more information, see
Using Advanced Run Options.
If one of the Context columns is part of the Primary Key or Unique Index, then UPDATE
and DELETE operations are not supported.
Context columns cannot be LOB columns
DDLs are not supported
When inserting a record and then updating the same record, the task error handling
settings should be set as follows:
Open the <Task Name> Settings dialog box.
Select the Error Handling|Apply Conflicts tab.
Set a task-specific Apply Conflicts policy as described in Error Handling Settings.
From the No record found for applying an update drop-down list, select
INSERT the missing target record.
For more information on error handling, see Error Handling.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 203
To configure change processing settings:
1. Select the Change Processing tab in the Teradata Database source.
2. In the Columns field, specify the names of the Context columns. The column names
are case-sensitive and must be separated by commas.
Example:
context1,context2
3. Choose the sorting order of the Context columns as appropriate (Ascending or
Descending). Note that if the order you select is not the same as the actual sorting
order, an error will occur.
4. In the Check for changes every field, specify how often to check for changes.
5. Enter expressions that Replicate will use to identify UPDATE and DELETE operations. If
you do not enter any expressions or if no match is found for an expression, any row
whose context is higher (if the sorting order is Ascending) or lower (if the sorting
order is Descending) than the previous context value will be considered an INSERT.
Note Expressions must be written in the native syntax of the Teradata Database
source. All examples in this section are written using PostgresSQL syntax.
Tip: [Selecting the UPDATE the existing target record option in the Apply
Conflicts tab, eliminates the need to provide an UPDATE expression.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 204
Using PostgreSQL as a Source
This section describes how to set up and use a PostgreSQL database as a source in a
replication task.
In this section:
Source Prerequisites
Required Permissions
Source Limitations
PostgreSQL Source Data Types
Homogeneous Replication
Setting General Connection Properties
Setting Advanced Connection Properties
Removing Replicate Artifacts from the PostgreSQL Database
Source Prerequisites
The following section lists the prerequisites for working with Attunity Replicate and a
PostgreSQL database source.
Client Side
Attunity Replicate Server for Windows:
The PostgreSQL ODBC Driver psqlodbc_09_03_0300-x64-1 must be installed on
the Attunity Replicate machine.
Note Make sure that the PostgreSQL ODBC installation folder "bin" (e.g.
"C:\Program Files\psqlODBC\0905\bin") is added to the system PATH.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 205
Make sure that the /etc/odbcinst.ini file contains an entry for PostgreSQL, as
in the following example:
[PostgreSQL]
Description = PostgreSQL ODBC driver
Driver = /usr/pgsql-9.4/lib/psqlodbc.so
Setup = /usr/pgsql-9.4/lib/psqlodbcw.so
Debug = 0
CommLog = 1
UsageCount = 2
When the Apply Changes task option is enabled, the user specified in the PostgreSQL
source database’s General tab must be granted super-user permissions.
Server Side
The IP address of the Attunity Replicate machine must be added to the pg_hba.conf
configuration file with the "replication" keyword in the database field.
Example:
host replication all 176.123.1.212/32 trust
Make sure that the test_decoding output plugin (found in the postgresql94-contrib
package) is installed.
The following parameters and values must be set in the postgresql.conf
configuration file.
wal_level = logical
max_replication_slots >=1
The max_replication_slots value should be set according to the number of tasks
that you want to run. For example, to run 5 tasks you need to set a minimum of 5
slots. Slots open automatically as soon as a task starts and remain open, even when
task is no longer running. Note that open slots need to be manually deleted.
max_wal_senders >=1
The max_wal_senders parameter sets the number of concurrent tasks that can run.
The wal_sender_timeout parameter terminates replication connections that are
inactive longer than the specified number of milliseconds. The default timeout is 60
seconds. To disable the timeout mechanism (optional), set this parameter to zero.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 206
Required Permissions
The user specified in the General tab when Setting General Connection Properties must be
granted the following permissions in the PostgreSQL database:
For Full Load replication: Standard SELECT on the source database
For Apply Changes replication: SUPERUSER
Source Limitations
The following limitations apply when using PostgreSQL as a source:
The database name cannot include a semi-colon (;).
Both the source table and the corresponding target table must have an identical
Primary Key. In the event that one of the tables does not have a Primary Key, the
result of DELETE and UPDATE record operations will be unpredictable.
The “Start Process Changes from Timestamp” run option is not supported.
Replication of the Before Image is not supported.
Change processing is not supported on Amazon RDS for PostgreSQL.
Replication of multiple tables with the same name but a different case (e.g. table1,
TABLE1 and Table1) may cause unpredictable behavior and is therefore not supported.
Change processing of [CREATE | ALTER | DROP] table DDLs are supported unless they
are held in an inner function/procedure body block or in other nested constructs.
For example, the following change will not be captured:
CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
create table attu.distributors1(did serial PRIMARY KEY,name varchar
(40) NOT NULL);
END;
$$;
Change processing of TRUNCATE operations is not supported.
The DDL statement ALTER TABLE ADD <column> <data_type> DEFAULT <> will not
replicate the default value to the target.
Partitioned tables: When performing a Full Load replication of partitioned tables,
the parent table will be created and separate tables will be created for each partition.
A DML on the parent partitioned table will be applied on the physical partition of the
corresponding target table only.
Primary keys are not supported on partitioned tables, which may impact UPDATE
operations.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 207
Note In order to replicate partitioned tables from a PostgreSQL source to a
PostgreSQL target, you first need to manually create the parent and child tables on
the target. Then define a separate task to replicate to those tables. In such a case,
the task settings should be configured to “Truncate before loading”. For more
information on the “Truncate before loading” option, see Full Load Settings.
Table 8.14 | Supported PostgreSQL Source Data Types with Mapping to Attunity
Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 208
Table 8.14 | Supported PostgreSQL Source Data Types with Mapping to Attunity Rep-
licate Data Types (Cont.)
TEXT NCLOB
BYTEA BLOB
TIMESTAMP DATETIME
TIMESTAMP (z) DATETIME
Note Replicate only supports ISO formatted textual DATE formats (the default). If
other formats are used, an error will be generated. You can change the date format in
the postgresql.conf file or using the PGDATESTYLE environment variable. You can
also change the date format at database level.
DATE DATE
TIME TIME
TIME (z) TIME
INTERVAL STRING (128) - 1 YEAR, 2
MONTHS, 3 DAYS, 4 HOURS, 5
MINUTES, 6 SECONDS
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 209
Table 8.14 | Supported PostgreSQL Source Data Types with Mapping to Attunity Rep-
licate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 210
Homogeneous Replication
When replicating from a PostrgreSQL source to a PostrgreSQL target, most of the source
and target data types will be identical. The exceptions are listed in the table below.
Additionally, in homogeneous replication, source column and table collations will be
replicated to the target as described in Column and Table Collation.
Note In homogeneous replication, the source data first passes through the Attunity
Replicate data type and is therefore subject to any limitations of that type.
For information on Replicate data types and their limitations (where relevant), see
Replicate Data Types.
For information on which Replicate data types the source data passes through when
replicating from PostgreSQL, see the PostgreSQL to Attunity Replicate data types
mapping table described earlier.
Note To support collation replication, the DBA must ensure that the collations defined
for the source PostgreSQL database are the same as those defined for the target
PostgreSQL database.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 211
Setting General Connection Properties
This section describes how to configure general connection properties. For an explanation
of how to configure advanced connection properties, see Setting Advanced Connection
Properties below.
Important: Make sure that the PostgreSQL database user entered in the
PostgreSQL database Authentication section has the correct access privileges.
9. Type the database name or select one from the list of available endpoints. This is the
name of the PostgreSQL database from which you are replicating data.
10. Click OK to save your settings and close the dialog box.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 212
Setting Advanced Connection Properties
In the Advanced tab, you can set the following properties:
Capture DDLs: When this option is selected, the following actions occur:
Operational artifacts are created (by Replicate) in the database when the task
starts. In order to capture DDL events, Attunity Replicate creates various
artifacts in the PostgreSQL database when the task starts. You can later remove
these artifacts as described in Removing Replicate Artifacts from the PostgreSQL
Database.
Streamed DDL events are captured.
Create DDL artifacts in schema: The schema in which the operational DDL
database artifacts will be created. The default value is "Public".
WAL heartbeat - An Apply Changes task that is running but not capturing changes
(due to source table inactivity) will continue to occupy the LSN position in its
replication slot, thereby preventing truncation of the WAL. Since the WAL is a server-
wide resource used by all PostgreSQL processes, it may grow extremely large if no
changes are captured for an extended period.
To prevent this from happening, enable the "WAL heartbeat" option. When this option
is enabled, the PostgreSQL source endpoint mimics task activity by periodically
committing pseudo transactions (i.e. "Heartbeats") to the heartbeat table, thereby
advancing the task slot’s LSN position.
Create WAL heartbeat table in schema: The schema in which the WAL
heartbeat table (attrep_wal_heartbeat) will be created. The default value is
"public".
Heartbeat frequency (minutes): The frequency with which to commit
transactions to the heartbeat table.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 213
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Important: Dropping a schema should be done with extreme caution, if at all. Never
drop an operational schema, especially not public.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 214
Using a File as a Source
This section describes how to set up and use delimited text files as a source in a replication
task. You can use the File target endpoint to export database tables to files, which can then
be used as a source in a Replicate task with a File source endpoint.
In this section:
General Overview
File Source Overview
Prerequisites
Limitations
Setting General Connection Properties
Setting Advanced Options
General Overview
The Replicate File endpoint can be used either as a source or as a target. When used as a
source, the File endpoint requires the source files to be in delimited text file format. When
used as a target, the File endpoint generates the data files ether in delimited text file
format (CSV) or in JSON format (according to the format selected in the endpoint settings).
Delimited text files are used to store data in tabular format. Examples of delimited text file
formats include the CSV (Comma Separated Values) and TSV (Tab Separated Values)
formats. Some organizations may implement procedures that export data from a database
to a delimited text file while others may simply prefer this format as a convenient way of
storing tabular data.
In a delimited text file, each record in the table occupies a separate row. Delimiters are
used to mark the beginning of a new row or the beginning of a new column. Virtually any
character can be used as a delimiter, although a newline (\n) is often used to separate
rows, and commas are commonly used to separate columns.
In JSON files, each record is represented by a single line.
So, for example, the following table:
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 215
{ "book_id": 456, "title": "Fallen", "price": 6.49, "is_hardcover": true }
{ "book_id": 789, "title": "Rise Up", "price": 7.23, "is_hardcover": true }
Reference Files
Change Files can either reside in a single location or in multiple locations. To access
Change Files that reside in different locations and/or that do not include the target table
names, you need to use a Reference File. If the rows in the Change File(s) contain the
names of the tables to which to apply the changes, then the Reference File only needs to
contain the paths to the Change Files. If each Change File contains changes for a single
table, then each of the Change File paths in the Reference File needs to be preceded by the
name of its corresponding target table.
For more information on Reference File and Reference File formats, see Change
Processing.
Each row in the Reference File should be formatted as follows:
[<table_name>],<full path to Change File>
Where [<table_name>] is required only if the referenced Change File contains changes for
a single table.
Note Reference File names cannot exceed 70 characters (no such limitation exists for
the path length). Reference File names that exceed 70 characters will be ignored and
appropriate warning will be written to the log.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 216
Example 8.1 | Reference File: Each Change File contains changes for a
single table:
table1,c:\temp\cdc1.csv
table2,c:\temp\cdc2.csv
table3,c:\temp\cdc3.csv
Example 8.2 | Reference File: Each Change File contains changes for
multiple tables:
c:\temp\cdc1.csv
c:\temp\cdc2.csv
c:\temp\cdc3.csv
Change Files
A Change File is a delimited text file that contains a record of DML changes - represented
as rows - to apply to the specified target tables. Replicate reads the Change File(s) and
applies the changes to the relevant target tables, which can either be specified in the
Change File itself or in a Reference File (see Reference Files below for details). Change
Files are picked up from the source directory according to their modification date, thereby
ensuring that the changes will be processed in the proper sequence.
Note The Change File modification date must be both newer than the task start
timestamp and newer than the last processed Change File.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 217
The name of the target table to which to apply the change (only required if the Change
File contains changes for multiple tables)
(Optional) The timestamp of the change i.e. when the change occurred
(Optional) The user who applied the change
The data to change (one or more columns)
Change Files can either contain changes for multiple tables or for a single table, as shown
in the examples below.
Note To access Change Files that reside in different locations and/or that do not
include the target table names, you need to use a Reference File. For more information
on Reference Files, see Reference Files.
Note Change File names cannot exceed 70 characters (no such limitation exists for the
path length). Change File names that exceed 70 characters will be ignored and
appropriate warning will be written to the log.
Example 8.3 | Change File that contains changes for multiple tables
INSERT,table1,ts1,user,dog,cat,bird
INSERT,table2,ts1,user,dog,cat,bird
DELETE,table3,ts1,user,dog,cat,bird
Example 8.4 | Change File that contains changes for a single table
INSERT,,ts1,user,dog,cat,bird
INSERT,,ts1,user,dog,cat,bird
DELETE,,ts1,user,dog,cat,bird
Prerequisites
Before you begin to work with a File as a source in Attunity Replicate, make sure that the
following prerequisites have been met:
Attunity Replicate installed in your network
Change Files, Full Load files and Reference Files should be in delimited text file format
Source files (including the Reference File) should be accessible from the Attunity
Replicate machine.
Limitations
The following limitations apply to the File source:
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 218
Change Files that are currently being used in a Replicate task cannot be modified while
the task is in progress.
Stopping a Full Load task and then starting it again will start the task from the
beginning (and not from the point at which it was stopped).
Option Description
File Format
Field Delimiter The delimiter used to separate columns in the source files. The
default is a comma.
Example:
mike,male
Record delimiter The delimiter used to separate records (rows) in the source files.
The default is a carriage return (\n).
Example (Using an asterisk as the row delimiter)
mike,male*sara,female
Null value The character used to indicate a null value in the source files.
Example (where * is the row delimiter and @ is the null
value):
mike,male,295678*sara,female,@
Quote character The character used at the beginning and end of a column that
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 219
Table 8.16 | File Source Endpoint - General Tab Options (Cont.)
Option Description
contains the column delimiter character. The default is the double-
quote character ("). When a column that contains column
delimiters is enclosed in double-quotes, the column delimiter
characters are interpreted as actual data, and not as column
delimiters.
Example (where a comma is the column delimiter):
"sunroof, power-steering"
Escape character The character used to escape a string when both the string and the
column containing the string are enclosed in quotation marks.
Note that the string’s quotation marks will be removed unless they
are escaped.
Example (where " is the quote character and \ is the
escape character):
1955,"old, \"rare\", Chevrolet",$1000
Code page Specify the code page of your source files if it is different from the
default (65001).
Ignore records Optionally, specify which header and footer rows in the source
files to ignore. Make sure that the header and footer rows to
ignore do not contain actual data.
Change Processing
Important: Changes cannot be captured from Change Files that are present during
the Full Load operation. Consequently, the Change Files should be placed in their
source location(s) only after Full Load completes.
Folder Select this option if your Change Files contain the target table
names and reside in a single folder. Then specify the folder
location in the designated field. You can optionally use wildcard
characters to only process files that match the specified pattern.
Example:
c:\temp\*changes.CSV
See also: Change Files.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 220
Table 8.16 | File Source Endpoint - General Tab Options (Cont.)
Option Description
Use Reference Files Select this option if you are using Reference Files to point to the
location of the Change Files. Then specify one of the following:
The path to the Reference Files
The path to a specific Reference File
A path with a wildcard pattern that matches the Reference File
names (e.g. C:\Reference Files\*.csv)
The folder can either contain a single reference file (which is
continually appended with the Change File locations) or multiple
reference files.
For information on when Reference Files should be used, see
Reference Files.
Change File path is Select this option if each of the Change File paths in the reference
preceded by table files is preceded by a table name.
name
Note Selecting this option will disable the Table name check
box in the Header columns ordinal position section.
Header column order Specify the position of each header column in your Change Files.
Apart from the data columns which must be positioned after the
header columns, the columns can be positioned in any order.
So, for example, if your Change Files looked liked this:
DELETE,table1,timestamp,user1,dog,cat,bird
Then, the column positions would be set as follows:
Operations are in column: 1
Table names are in column: 2
Timestamps are in column: 3
User names are in column: 4
Start data from column: 5
For more information on the columns, see Change Files.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 221
Table 8.16 | File Source Endpoint - General Tab Options (Cont.)
Option Description
Start data from Specify which column to start the actual data from. Note that data
column: columns must be positioned after header columns. See the
example in the description of the Header column order field
above.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 222
Note To determine if you are connected to the endpoint you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the connection fails,
an error message is displayed at the bottom of the dialog box.
To view the log entry if the connection fails, click View Log. The server log is displayed
with the information for the connection failure. Note that this button is not available
unless the test connection fails.
To define a table:
1. In the Tables tab, click New Table.
The New Source Table window opens.
2. In the Table name field, specify the name of the table.
3. In the Location of full load data file(s) field, specify location of the delimited text
files that contain your full load data. Wildcard characters are supported.
4. To add a field, click Add Field. Then, click the default column name to edit it.
5. To specify a data type, select the row and then select a type from the drop-down list in
the Type column.
6. (Optional) Click in the Key column to add or remove a Primary Key to/from a column.
7. To create the table, click OK.
The table will be added to the list of tables in the Tables tab.
See also the example for Creating a Table.
To edit a field:
Double-click the column in the New/Edit Source Table dialog box and then edit the
values as described above.
To delete a field:
Select the column in the New/Edit Source Table dialog box and then click the
Delete Field button.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 223
To edit a table:
In the Tables tab, either double-click the table or select the table and then click the
Edit button. Edit the table as described above.
To delete a table:
In the Tables tab, select the table and then click the Delete button.
Note Boolean values must be expressed as the digits 1 (TRUE) or 0 (FALSE) and not
TRUE or FALSE.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 224
Setting Advanced Options
In the Advanced tab, the following options are available.
Option Description
File If your source files (Full Load and/or Change Files) are not in delimited
preprocessing text format, you can convert them to the required format using a
command conversion program.
The command should be specified as in the following example:
c:\temp\files\convertfile.exe
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 225
Table 8.17 | File Source Endpoint - Advanced Tab Options (Cont.)
Option Description
Check for Specify how often to check the Change Files for updates.
changes
every
Change Select one of the following cleanup options to determine what Replicate
Processing should do with the processed Change Files/Reference Files:
Cleanup Do nothing - to leave the file(s) in the original location.
Delete files - to delete the file(s) from the disk.
Archive files to folder - to archive the file(s) to the specified
location.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 226
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 227
Using ODBC with CDC as a Source
This section describes how to use ODBC connectivity to connect to a source endpoint in a
Full Load and/or CDC task.
In this section:
Prerequisites
Limitations
ODBC with CDC Source Data Types
Setting General Connection Properties
Setting Change Processing Parameters
Prerequisites
The following section describes the prerequisites for working with Attunity Replicate and an
ODBC source with CDC.
Note You must use a 64-bit ODBC provider client to work with Attunity Replicate
2. Use the ODBC Data Source Administrator to create a System DSN.The Data Source is
located in the Windows control panel.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 228
Driver64 = /usr/lib64/psqlodbc.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
3. Define a DSN for the installed driver by editing the /etc/odbc.ini file, as in the
following example:
[Postgre_DSN]
Description = Test
Driver = /usr/lib64/psqlodbc.so
Endpoint = MyDatabase
Servername = 12.3.45.678
Port = 5432
Limitations
The following limitations apply:
UPDATES to primary key fields are not supported. To update the field, define it as a
unique index instead.
For providers that do not support batch operations, you must manually add the
RowByRow=true internal parameter according to the instruction provided in Setting
Change Processing Parameters.
The "Resume from timestamp" run option is not supported.
Table 8.18 | Supported ODBC with CDC Source Data Types with Mapping to Attunity
Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 229
Table 8.18 | Supported ODBC with CDC Source Data Types with Mapping to Attunity Rep-
licate Data Types (Cont.)
SQL_SMALLINT INT2
UINT2
SQL_INTEGER INT4
UINT4
SQL_BIGINT INT8
UINT8
SQL_DOUBLE REAL8
SQL_FLOAT REAL8
SQL_REAL REAL8
SQL_NUMERIC (P,S) NUMERIC (P,S)
REAL8
The SQL_NUMERIC data type is mapped to REAL8
when at least one of the following is true:
Precision > 38
Scale < 0
Scale > 38
Scale > Precision
SQL_DECIMAL (P,S) NUMERIC (P,S)
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 230
Table 8.18 | Supported ODBC with CDC Source Data Types with Mapping to Attunity Rep-
licate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 231
Table 8.18 | Supported ODBC with CDC Source Data Types with Mapping to Attunity Rep-
licate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 232
Table 8.18 | Supported ODBC with CDC Source Data Types with Mapping to Attunity Rep-
licate Data Types (Cont.)
Note If you are using a Replicate Connect CDC Agent as the source in a
Replicate task, you cannot select the DSN for the Attunity ODBC driver as the
target. In this case, to use Attunity ODBC as a source, you must enter the
connection string manually by selecting Connection String and following the
directions for that option in this procedure.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 233
ODBC endpoint provider you are using.
Note that if you specify a password in your connection string, it will be revealed
as plain text in the task log files. It is therefore recommended to specify the
password in the GUI Password field.
Note To determine if you are connected to the endpoint you want to use or if
the connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
To view the log entry if the connection fails, click View Log (this button is not
available unless the test connection fails). The server log is displayed with the
information for the connection failure.
7. Type the authentication information (User Name, Password) for the authorized user
for the ODBC endpoint being used. For example, the IBM DB2 system administrator if
you are using a IBM DB2 provider. If you do not know this information, see your ODBC
Endpoint System Administrator.
Important: Make sure that the ODBC endpoint user has the correct access
privileges for the ODBC provider being used.
Prerequisites
Before you can define the settings in the Change Processing tab, you need to ensure that
at least one special "Context" column exists in your source database tables. Context
column(s) are basically columns in a table that enable Replicate to determine whether the
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 234
data has changed. You can add Context columns specifically for the purpose of change
processing (either using a script or manually) or you can use existing columns that contain
suitable "Context" data.
Note You can create and reference any number of Context columns in a table as long
as the Context column names are the same for all source tables. Additionally, each
value in the Context column(s) must be unique.
In the example below, the Context column cf has been added to the table. The cf column
contains TIMESTAMPs that enable Replicate to determine whether a change occurred (by
comparing the current TIMESTAMP with the TIMESTAMP stored in its repository).
By default, all changes are assumed to be INSERTs. If UPDATE and DELETE operations are
also performed on the source tables, you can write an UPDATE and/or DELETE expression
(described below) that will enable Replicate to identify the operation type.
Limitations
The following limitations apply when Change Processing is enabled:
The "Start from timestamp" run option is not supported. For more information, see
Using Advanced Run Options.
If one of the Context columns is part of the Primary Key or Unique Index, then UPDATE
and DELETE operations are not supported.
Context columns cannot be LOB columns
DDLs are not supported
When inserting a record and then updating the same record, the task error handling
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 235
settings should be set as follows:
Open the <Task Name> Settings dialog box.
Select the Error Handling|Apply Conflicts tab.
Set a task-specific Apply Conflicts policy as described in Error Handling Settings.
From the No record found for applying an update drop-down list, select
INSERT the missing target record.
For more information on error handling, see Error Handling.
Note Expressions must be written in the native syntax of the source database. All
examples in this section are written using PostgresSQL syntax.
Tip: Selecting the UPDATE the existing target record option in the Apply
Conflicts tab, eliminates the need to provide an UPDATE expression.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 236
Important: In addition to the DELETE expression, DELETE operations should
be carried out as "Soft" deletes. This means that the row is not actually
deleted from the table, but rather, marked as "deleted".
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 237
Using IBM Informix as a Source
This section describes how to set up and use an IBM Informix database as the source
database in a replication task.
In this section:
Prerequisites
Limitations
Required Permissions
IBM Informix Database Source Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Before you begin to work with an IBM Informix database as a source in Attunity Replicate,
make sure that the following prerequisites have been met:
Attunity Replicate machine:
Attunity Replicate installed in your network.
IBM Informix ODBC Driver (64-bit) version 3.70 or above must be installed on the
computer where Attunity Replicate is located.
The DB_LOCALE=<Informix_db_locale_value> environment variable must be
set to be the name of the IBM Informix database locale from which you want to
capture data.
The INFORMIXSQLHOSTS environment variable must be set to include the names of
the IBM Informix servers that are available for use as Replicate source
endpoints.
IBM Informix Server:
An IBM Informix account with the required Required Permissions.
CDC enabled. To enable CDC, run the script $INFORMIXDIR/etc/syscdcv1.sql
on the IBM Informix server.
Note This requires DBA privileges (User 'IBM Informix' or another DBA
user).
Make sure that the database to be replicated was created with either the WITH
LOG or the WITH BUFFERED LOG property.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 238
Limitations
When using IBM Informix as a database in a Replicate task, the following limitations
currently apply:
CDC does not capture DDL changes. Due to an IBM Informix limitation, IBM Informix
does not allow DDLs to be executed on tables with Full Row Logging enabled.
To learn how to capture DDL changes during CDC, see Automatically enable full row
logging.
Due to an IBM Informix limitation, columns that follow columns of data types
SET,MULTISET or LIST will not be replicated during CDC.
For example, in the table below, changes to Col3 will not be captured during CDC.
Table 8.19 | Example
Important: Choosing this option will resume the task from the current time.
If a task with an IBM Informix source is stopped before any changes have been made
and then resumed, any changes that were made between the time that the task was
stopped and the time that it was resumed will be lost.
Due to a known issue with the IBM Informix CDC API, Replicate does not support
replication of tables whose names contain spaces or non-English letters.
Due to a known issue with the IBM Informix transaction consistency mechanism,
cached changes during Full Load are not supported.
Required Permissions
In order to access the specified database, the user specified in the General tab must be a
member of the "IBM Informix" group (which has DBA privileges) on the database server.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 239
For information on how to view the data type that is mapped in the target, see the section
for the target database you are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 8.20 | IBM Informix database Source Data Types with Mapping to Attunity
Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 240
Table 8.20 | IBM Informix database Source Data Types with Mapping to Attunity Rep-
licate Data Types (Cont.)
Note You can also use IBM Informix files as a source. For more information, see Using
the Attunity Replicate File Channel.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 241
Note Consider the following:
This information is case sensitive.
You can use the Advanced tab to add specific properties and create a custom
connect string. In this case, you do not need to enter information in this tab.
For more information on using the Advanced tab, see Setting Advanced
Connection Properties.
To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
7. Enter the IBM Informix authentication information (User Name, Password) for the
authorized user for this IBM Informix database. If you do not know this information,
see your IBM Informix database administrator (DBA).
Important: Make sure that the IBM Informix user entered in the IBM Informix
Authentication section has the correct access privileges. For information on how to
provide the required privileges, see Required Permissions.
8. In the Database name field, enter the IBM Informix database name.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 242
Note DDL events are not captured during CDC. To perform DDL operations on
source tables in a Replicate CDC task:
Stop the Replicate task.
Disable Full Row Logging for the relevant tables as in the following example:
execute function syscdcv1:IBM Informix.cdc_set_fullrowlogging
('sysuser:IBM Informix.employees_table', 0)
Perform the DDL operation(s).
If the Automatically enable full row logging option is not selected,
manually enable Full Row Logging for the relevant tables.
Start the Replicate task.
Reload the relevant tables or perform a Full Load.
Max bytes per read: Specify the maximum number of bytes to read each time the
log is accessed. If you encounter performance issues, adjusting this number may help.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 243
Using IBM DB2 for LUW as a Source
This section describes how to set up and use an IBM DB2 for LUW database as the source
database in a replication task.
In this section:
Prerequisites
Replicating 4-byte UTF8 Emojis
Limitations
IBM DB2 for LUW Database Source Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Before you begin to work with an IBM DB2 for LUW database as a source in Attunity
Replicate, make sure that the prerequisites described in this section have been met.
In this section:
Client Prerequisites
IBM DB2 for LUW Server Prerequisites
Client Prerequisites
The IBM DB2 for LUW client prerequisites are determined by the platform on which Attunity
Replicate Server is installed (Windows or Linux).
The IBM Data Server Client version 10.5 must be installed on the Attunity Replicate Server
machine.
The following steps need to be performed on the Attunity Replicate Server machine:
1. Install v10.5fp9_linuxx64_server_t.tar.gz; choose to install “CLIENT”.
2. If the Attunity Replicate Server machine does not have a DB2 instance, create a DB2
instance by running the following commands:
adduser <db2_instance_name>
/opt/ibm/db2/V10.5/instance/db2icrt <db2_instance_name>
3. Add the DB2 driver location to the Linux library path. To do this, add the following line
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 244
to the site_ arep_login.sh file:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:path/lib64
where path is the path to the driver.
Example:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ibm/db2/V10.5/lib64
4. Create a new file named odbcinst.ini under /etc and add the following entry:
[IBM DB2 ODBC DRIVER]
Driver = /opt/ibm/db2/V10.5/lib64/libdb2o.so
fileusage=1
dontdlclose=1
5. Restart Attunity Replicate Server.
6. Add the IBM DB2 for LUW endpoint as described in Setting General Connection
Properties and click Test Connection.
If you get the following error:
Cannot connect to DB2 LUW Server ODBC unknown error.
RetCode: SQL_ERROR SqlState: NativeError: -1390 Message: [unixODBC]
[IBM][CLI Driver] SQL10007N Message "0" could not be retrieved. Reason
code: "3". ODBC general error.
a. Run the following command:
/opt/ibm/db2/V10.5/bin /db2cli writecfg add -database <db_name_
from_endpoint_connection_settings> -host <server_name_from_
endpoint_connection_settings> -port <port_from_endpoint_connection_
settings>
b. Restart Attunity Replicate Server.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 245
Limitations
When using IBM DB2 for LUW as a database in a Replicate task, the following limitations
currently apply:
Clustered database is not supported
Note Users can define a separate IBM DB2 for LUW database for each of the
endpoints in the cluster.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 246
Table 8.21 | IBM DB2 for LUW database Source Data Types with Mapping to Attunity
Replicate Data Types
IBM DB2 for LUW Source Data Types Attunity Replicate Data Types
INTEGER INT4
SMALLINT INT2
BIGINT INT8
DECIMAL (p,s) NUMERIC (p,s)
FLOAT REAL8
DOUBLE REAL8
REAL REAL4
DECFLOAT (p) If precision = 16, then:
REAL8
If precision is = 34, then:
STRING
GRAPHIC WSTRING
n<=127
VARGRAPHIC WSTRING
n<=16k double byte chars
LONG VARGRAPHIC CLOB
CHAR (n) STRING
n<=255
VARCHAR (n) STRING
n<=32k
LONG VARCHAR (n) CLOB
n<=32k
CHAR (n) FOR BIT DATA BYTES
VARCHAR (n) FOR BIT DATA BYTES
LONG VARCHAR FOR BIT DATA BYTES
DATE DATE
TIME TIME
TIMESTAMP DATETIME
BLOB BLOB
CLOB CLOB
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 247
Table 8.21 | IBM DB2 for LUW database Source Data Types with Mapping to Attunity Rep-
licate Data Types (Cont.)
IBM DB2 for LUW Source Data Types Attunity Replicate Data Types
Maximum size: 2 GB
DBCLOB CLOB
Maximum size: 1 G double byte chars
XML CLOB
Note You can also use IBM DB2 for LUW File Channel files as a source. For more
information, see Using the Attunity Replicate File Channel.
Important: Make sure that the specified user has the required access privileges.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 248
Setting Advanced Connection Properties
In the Advanced tab, you can set the following properties:
Maximum Buffer Size for Read (KB): Specify the maximum number of bytes to
read each time the log is accessed during Change Processing. If you encounter
performance issues, adjusting this number may help.
Change Data Capture: To enable data capture from IBM DB2 for LUW, the source
tables need to be set up as follows:
CREATE / ALTER TABLE table-name …. DATA CAPTURE CHANGES [INCLUDE
LONGVAR COLUMNS];
You can either configure Replicate to perform this operation by selecting the
Automatically alter tables to enable data capture or you can do this manually
by selecting Let DBA set up data capture.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 249
For example:
database Partition 0 - database TEST - Active - Up 3 days 00:00:30
Logs:
Current Log Number 0
Pages Written 612
Cur Commit Disk Log Reads 0
Cur Commit Total Log Reads 0
Method 1 Archive Status n/a
Method 1 Next Log to Archive n/a
Method 1 First Failure n/a
Method 2 Archive Status n/a
Method 2 Next Log to Archive n/a
Method 2 First Failure n/a
Log Chain ID 0
Current LSN 0x000000000452CABB
From this header, you can see that the current LSN is 0x000000000452CABB.
After retrieving the current LSN, specify it as described in Internal Parameters.
Note When CurrentLSN=scan, Replicate will search the log from the start until it finds
the current LSN. This may take some time depending on the size of the log.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 250
Using IBM DB2 for iSeries as a Source
This section describes how to set up and use an IBM DB2 for iSeries database as the source
database in a replication task.
In this section:
Prerequisites
Required Permissions
Limitations
IBM DB2 for iSeries Database Source Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
The following topic lists the prerequisites for using an IBM DB2 for iSeries endpoint in a
Replicate task.
Client
Windows: To work with an IBM DB2 for iSeries database as a source in Attunity
Replicate, the iSeries ODBC driver (5770-XE1 IBM i Access for Windows) must be
installed on the Replicate Server machine.
The minimum supported version is 12.64.
The driver is part of IBM i Access Client Solutions, which can be downloaded from the
IBM web site by authorized IBM customers. Note that it is not necessary to install all of
the IBM i Access Client Solutions components, only the ODBC driver (which is installed
regardless of which components you choose to install).
Linux: To work with an IBM DB2 for iSeries database as a source in Attunity Replicate,
the iSeries ODBC driver (5770-XL1 IBM i Access for Linux) must be installed on the
Replicate Server machine.
The minimum supported version is 12.64.
The driver is part of IBM i Access Client Solutions, which can be downloaded from the
IBM web site by authorized IBM customers. Note that it is not necessary to install all of
the IBM i Access Client Solutions components, only the ODBC driver (which is installed
regardless of which components you choose to install).
After installing the Linux Driver, edit the file /etc/odbcinst.ini and add the following
section:
[IBM i Access ODBC Driver 64-bit]
Description = IBM i Access for Linux 64-bit
ODBC Driver Driver = /opt/ibm/iaccess/lib64/libcwbodbc.so
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 251
Setup = /opt/ibm/iaccess/lib64/libcwbodbcs.so
Threading = 0
DontDLClose = 1
UsageCount = 1
Change Processing
For DB2 iSeries version 7.1, the following IBM patch needs to be installed:
DB2 for IBM i Group PTF
SF99701: 710 DB2 for IBM i - Level 3 (released August 2010) or PTF '5770SS1 V7R1M0
SI39820' , PTF '5770SS1 V7R1M0 SI39821'.
All of the source tables for a given Replicate task need to be journaled to the same
journal. The name of the journal and the library in which it is located must be specified
in the endpoint settings. During the task, Replicate polls this journal for changes to the
source tables.
When you start journaling the source tables, the Record images parameter can be set
to *BOTH (for capturing before and after images) or *AFTER.
Note If you need to run several Replicate tasks (that replicate data from IBM DB2
for iSeries), it is more efficient (though not essential) to create a separate journal
for each task. As only one journal can be specified per endpoint, you would also
need to define a separate endpoint for each task.
Required Permissions
The following permissions must be granted to the user specified in the General tab of the
IBM DB2 for iSeries endpoint settings:
You must also set the following Authorities and Locks for the IBM DB2 for iSeries
database:
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 252
File Authority (if specified): *USE
File Library Authority: *EXECUTE
Journal Lock: *SHRRD
Journal Receiver Lock: *SHRRD
File Lock (if specified): *SHRRD
*OBJEXIST is also required for the journal authority if any of the following are
true:
Limitations
The following limitations apply when using the IBM for DB2 iSeries endpoint as a source in
a Replicate task:
The IBM for DB2 iSeries endpoint is not supported when Replicate is installed on
Windows Server 2016.
Multi-member tables are not supported
Field level encryption is not supported
Journal receivers must be System Managed rather than User Managed.
All tables must be in the same journal
The DROP TABLE DDL is not supported
The RENAME TABLE DDL is not supported
Limited LOB support is actually full LOB support
Replicating BLOBs will significantly affect performance
The XML data type is not supported
The DBCLOB data type is not supported
Row size cannot exceed 32740 bytes
Partitioned tables are not supported
When the Use table and schema system names option is enabled (in the
Advanced tab), only table/schema names that contain uppercase letters, digits, and
underscores (_) are supported.
For more information on this option, see Replicating System Names.
Usually, Replicate only applies source database changes to the target if the
transactions with the changes were committed before the Full Load started. However,
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 253
due to a known issue with the DB2 iSeries database, records that were deleted from
the source as part of an uncommitted transaction will not be replicated to the target
during Full Load.
DELETE operations in auto-commit mode will be ignored for tables journaled with
*AFTER images. In such cases, DELETE operations will only be captured if one of the
Add RRN column options is enabled and if the journaled tables do not have a primary
key.
Table 8.22 | IBM DB2 for iSeries database Source Data Types with Mapping to Attunity
Replicate Data Types
IBM DB2 for iSeries Source Data Attunity Replicate Data Types
Types
INTEGER INT4
SMALLINT INT2
BIGINT INT8
DECIMAL (p,s) NUMERIC (p,s)
FLOAT REAL8
DOUBLE REAL8
REAL REAL4
CHAR (n) If n<=32 KB, then:
STRING
VARCHAR (n) If n<=32 KB, then:
STRING
GRAPHIC (n) If n<=16 KB, then:
STRING
VARGRAPHIC (n) If n<=16 KB double byte chars, then:
STRING
DATE DATE
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 254
Table 8.22 | IBM DB2 for iSeries database Source Data Types with Mapping to Attunity
Replicate Data Types (Cont.)
IBM DB2 for iSeries Source Data Attunity Replicate Data Types
Types
TIME TIME
TIMESTAMP DATETIME (6)
BLOB BLOB
Maximum size: 2 GB
CLOB CLOB
Maximum size: 2 GB
DBCLOB CLOB
Maximum size: 1 GB double byte chars
ROWID BYTES - This should be a user-defined
column.
DATALINK STRING
TIMESTAMP WITH TIME ZONE NOT SUPPORTED
Note You can also use IBM DB2 for iSeries File Channel files as a source. For more
information, see Using the Attunity Replicate File Channel.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 255
Use these connection properties - If you choose this option, enter the IBM
DB2 for iSeries Server (hostname or IP address).
7. Enter the IBM DB2 for iSeries authentication information (User Name, Password)
for the authorized user for this IBM DB2 for iSeries database. If you do not know this
information, see your IBM DB2 for iSeries database administrator (DBA).
Important: Make sure that the specified user has the required access privileges.
8. In the Journal Name field, enter the name of the journal containing the source
tables.
See also: Change Processing prerequisites.
9. In the Journal Library field, enter the name of the library where the journal is
located.
See also: Change Processing prerequisites.
Note If there is a conflict between the character set mapping for a specific column and
the character set mapping defined in the endpoint settings, the column-level character
set mapping takes precedence.
For more information on overriding character set mapping at column level, see Using
the Transform Tab.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 256
To do this:
1. In the Override CCSID to Character Set Mapping section, click the New button.
A row is added to the table.
2. Enter the CCSID in the CCSID column and the code page in the Character set
column.
3. Repeat to map additional CCSID values.
Note If you edit an existing UCM file, you must also change the values of the
<code_set_name> and <icu:alias> properties. If the file does not contain an
<icu:alias> property, then you only need to change the value of the <code_set_
name> property.
2. Create a CNV file for the UCM file by running the following command:
<product_dir>\bin\makeconv.exe -v <file_name>.ucm
Example:
"c:\Program Files\Attunity\Replicate\bin\makeconv.exe" -v 1047_EX.ucm
This will create a CNV file with the same name as the UCM file (e.g. 1047_EX.cnv).
3. Copy the file to the following location:
<product_dir>\bin\icudt58l
4. Add a new character set mapping as follows:
a. In CCSID column, enter the original source CCSID number (e.g. 1047)
b. In the Character set column, enter the name of the CNV file without the
extension (e.g. 1047_EX).
5. Restart the Attunity Replicate UI Server service.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 257
When you select one of the "Add RRN columns" options, both the Change Tables and the
target tables will have an extra column, ATTREP_RRN of type INTEGER, which contains a
unique value for each row. This column contains the RRN that corresponds to each source
table row.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 258
Using IBM DB2 for z/OS as a Source
This section describes how to set up and use an IBM DB2 for z/OS database as the source
endpoint in a replication task.
In this section:
Prerequisites
Limitations
Controlling the CDC Process
IBM DB2 for z/OS Database Source Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Sample XMIT Files “Receive” Job
Prerequisites
The following topic lists the prerequisites for working with the Attunity Replicate IBM DB2
for z/OS endpoint.
In this topic:
Install the R4Z Product on z/OS
ODBC Prerequisites
Required Permissions
Change Data Capture Prerequisites
ODBC Requirements
The Attunity Replicate IBM DB2 for z/OS source endpoint relies on the IBM Data Server
Driver for ODBC for access to data, Change Data and metadata. This section describes the
client side and server side ODBC prerequisites.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 259
Client Side ODBC Requirements (Linux, Unix and Windows)
Install "IBM Data Server Driver for ODBC and CLI" for DB2 11.1 for z/OS on the Attunity
Replicate Server machine.
Bind the plan to be used for ODBC, as specified in the PLANNAME= value in the ODBC
initialization file. The default name is DSNACLI. The BIND job can be found in member
DSNTIJCL, which is in the SDSNSAMP library of the source DB2 installation.
Use the DB2CLI bind command to bind the ODBC-supplied packages to your intended
source z/OS DB2 subsystem. This action is described in Configuring your developer and
runtime environment on the IBM website. For information about the DB2CLI utility,
including an example for the bind utility, see db2cli - DB2 interactive CLI command on the
IBM website.
Required Permissions
To enable Replicate to extract data from the source tables (Full Load and Change Data
Capture), the user specified in the IBM DB2 for z/OS endpoint settings must be granted the
following permissions:
EXECUTE on the IFI reading the UDTF (only required for Change Data Capture)
SELECT on the source tables and on the DB2 catalog tables
MONITOR2 to be able to start IFI sessions (only required for Change Data Capture)
For additional details about these permissions, see Change Data Capture Requirements.
Copyright © 2018 Attunity Ltd. Chapter 8 | Adding and Managing Source Endpoints | Page 260
Change Data Capture Requirements
To capture changes from IBM DB2 for z/OS, Attunity Replicate uses a special program -
invoked as an external routine - which is a user-defined table function (UDTF). This
program (a load module) as well as the UDTF need to be installed and configured on the
z/OS system before changes can be captured. The installation procedure, which should be
performed by the DBA, is described in the Attunity R4Z Installation and Configuration
Guide.
Additionally, the Data Capture Changes attribute must be set for every table whose
changes you want to replicate. You can either do this manually or allow Replicate to do this
by leaving the Automatically enable Data Capture Changes (requires admin
privileges) option enabled (the default) in the Advanced tab.
Limitations
The following limitations apply when using the IBM DB2 for z/OS endpoint in a Replicate
task:
During a task with Full Load and Apply Changes enabled, duplicate keys may be
replicated to the target. This is because records that were updated and cached during
the Full Load stage of the task may have the same timestamp as the original records
that were inserted during Full Load. Note that this usually only happens when the time
difference between the inserted record and the updated (cached) record is very small
(milliseconds).
DDL limitations:
Drop column: Columns cannot be dropped from tables with the DATA CAPTURE
CHANGES attribute.
Change column data type: To capture changes to column data types:
1. Stop the Replicate task.
2. Change the data type(s).
3. REORG the table with the modified data types.
4. Resume the Replicate task.
Note If you run the command without any parameters, it will return the current status
of the CDC service.
Where:
SERVICE=CDC-service-qualifier designates the logical scope of Replicate activity, upon
which the control program is to act.
For more information on CDC services, see Change Data Capture Requirements.
Notes
If you select ONE for DEFWLMAE, jobs DO2* and DO3SRVTF should be run one
time ; if you select PER , these jobs should be run for each CDC service, after
the JCL SET variable CDCSRV is set to the CDC service’s qualifier.
Job DO3SRVDF creates a CONFIG library, and places a member named
“CDCS”, which serves as the default configuration file. After running job
DO3SRVTF the library will contain the configuration of all CDC services,
making it possible to edit them and change the configurations of a specific CDC
service.
Table 8.23 | IBM DB2 for z/OS Database Source Data Types with Mapping to Attunity
Replicate Data Types
Note You can also use IBM DB2 for z/OS File Channel files as a source. For more
information, see Using the Attunity Replicate File Channel.
Notes
This information is case sensitive
Make sure that the specified user has the required access privileges
8. Provider: Leave the default unless it was changed during the driver installation. Note
that this should be the same as the name specified in the ODBC Data Source
Administrator.
Note If there is a conflict between the character set mapping for a specific column and
the character set mapping defined in the endpoint settings, the column-level character
set mapping takes precedence.
For more information on overriding character set mapping at column level, see Using
the Transform Tab.
To do this:
1. In the Override CCSID to Character Set Mapping section, click the New button.
A row is added to the table.
2. Enter the CCSID in the CCSID column and the code page in the Character set
column.
3. Repeat to map additional CCSID values.
Converting to a Custom Code Page
Perform the following procedure if your source endpoint tables are defined with an
incorrect CCSID and the correct definition is actually in a UCM file.
1. Create or download a mapping data file with the file extension .ucm.
Note If you edit an existing UCM file, you must also change the values of the
<code_set_name> and <icu:alias> properties. If the file does not contain an
<icu:alias> property, then you only need to change the value of the <code_set_
name> property.
2. Create a CNV file for the UCM file by running the following command:
<product_dir>\bin\makeconv.exe -v <file_name>.ucm
Example:
"c:\Program Files\Attunity\Replicate\bin\makeconv.exe" -v 1047_EX.ucm
This will create a CNV file with the same name as the UCM file (e.g. 1047_EX.cnv).
3. Copy the file to the following location:
<product_dir>\bin\icudt58l
4. Add a new character set mapping as follows:
a. In CCSID column, enter the original source CCSID number (e.g. 1047)
b. In the Character set column, enter the name of the CNV file without the
extension (e.g. 1047_EX).
5. Restart the Attunity Replicate UI Server service.
The following table provides a list of internal parameters that can be used as required.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Sample XMIT Files “Receive” Job
The following is a sample job for receiving the LOAD and INSTALL libraries.
//*******************************************************************
//* Sample JCL for receiving *
//* Attunity ReplicateIBM DB2 for z/OS endpoint installation kit *
//* 1. Add a jobcard *
//* 2. Replace all <xmit-HLQ> by the High Level Qualifier used *
//* for receive files *
//* 3. Replace all <r4z-vn-hlq> by the High Level Qualifier chosen *
//* for the installation files *
//*******************************************************************
//RCVLOAD EXEC PGM=IKJEFT01,DYNAMNBR=20
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
RECEIVE INDSN('<xmit-HLQ>.LOAD.XMIT') NODISPLAY
DATASET('<r4z-vn-hlq>.LOAD')
/*
//RCVINSTL EXEC PGM=IKJEFT01,DYNAMNBR=20
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
RECEIVE INDSN('<xmit-HLQ>.INSTALL.XMIT') NODISPLAY
DATASET('<r4z-vnd-hlq>.INSTALL')
/*
Using IBM Netezza as a Source
This section describes how to set up and use an IBM Netezza database as a source endpoint
in a replication task.
Note The IBM Netezza source endpoint is supported in Full Load replication mode only.
In this section:
Prerequisites
IBM Netezza Data Types
Setting General Connection Properties
Setting Change Processing Parameters
Prerequisites
Prior to installing Attunity Replicate, make sure that the IBM Netezza ODBC 64-bit client is
installed on the Attunity Replicate machine.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 8.24 | Supported IBM Netezza Data Types with Mapping to Attunity Replicate Data
Types
9. In the Database name field, enter the name of the IBM Netezza database.
10. Click Test Connection to verify that the settings you entered are correct.
Setting Internal Parameters
In the Advanced tab, you can set internal parameters.
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Prerequisites
Before you can define the settings in the Change Processing tab, you need to ensure that
at least one special "Context" column exists in your source database tables. Context
column(s) are basically columns in a table that enable Replicate to determine whether the
data has changed. You can add Context columns specifically for the purpose of change
processing (either using a script or manually) or you can use existing columns that contain
suitable "Context" data.
Note You can create and reference any number of Context columns in a table as long
as the Context column names are the same for all source tables. Additionally, each
value in the Context column(s) must be unique.
In the example below, the Context column cf has been added to the table. The cf column
contains TIMESTAMPs that enable Replicate to determine whether a change occurred (by
comparing the current TIMESTAMP with the TIMESTAMP stored in its repository).
By default, all changes are assumed to be INSERTs. If UPDATE and DELETE operations are
also performed on the source tables, you can write an UPDATE and/or DELETE expression
(described below) that will enable Replicate to identify the operation type.
Limitations
The following limitations apply when Change Processing is enabled:
The "Start from timestamp" run option is not supported. For more information, see
Using Advanced Run Options.
If one of the Context columns is part of the Primary Key or Unique Index, then UPDATE
and DELETE operations are not supported.
Context columns cannot be LOB columns
DDLs are not supported
When inserting a record and then updating the same record, the task error handling
settings should be set as follows:
Open the <Task Name> Settings dialog box.
Select the Error Handling|Apply Conflicts tab.
Set a task-specific Apply Conflicts policy as described in Error Handling Settings.
From the No record found for applying an update drop-down list, select
INSERT the missing target record.
For more information on error handling, see Error Handling.
Configuring Change Processing Settings
Perform the following steps to configure change processing settings.
Note Expressions must be written in the native syntax of the source database. All
examples in this section are written using PostgresSQL syntax.
Tip: Selecting the UPDATE the existing target record option in the Apply
Conflicts tab, eliminates the need to provide an UPDATE expression.
In this section:
Prerequisites
Limitations
SAP Application Source Data Types
Setting General Connection Properties
Setting Advanced Properties
Prerequisites
The following section describes the prerequisites for working with the Attunity Replicate
SAP Application endpoint.
Supported SAP Packages
Set up a Source Endpoint for your SAP Application
Install the SAP NetWeaver RFC Client
Install the Attunity Replicate for SAP Client on the SAP Machine
Managing Business Groups and Tables
Target Collation
Note Replicate supports NetWeaver RFC SDK 7.20 and 7.50, which can be downloaded
from the SAP Service Marketplace.
Windows: Extract the contents of the NWRFC_xxx.SAR file and then copy the .dll
files from the nwrfcsdk/lib directory to the Replicate bin directory.
Linux: Extract the contents of the NWRFC_xxx.SAR file and then copy the .so files
from the nwrfcsdk/lib directory to the Replicate lib directory.
Install the Attunity Replicate for SAP Client on the SAP Machine
This section describes how to install the transports that make up the Attunity Replicate for
SAP Client.
There are five transports in total, which are provided in the following ZIP files:
1. DeleteCode.zip - Required for uninstalling the Attunity Replicate for SAP Client.
2. DeletePackage.zip - Required for uninstalling the Attunity Replicate for SAP Client.
3. InstallCode.zip (e.g. K902086.ESD) - The main transport.
4. InstallCodeECC.zip (e.g. K901271.ESD) - A transport with additional logic for ECC SAP
systems .
5. InstallConfig.zip (e.g. K900012.R4S) - The configuration transport.
Replicate for SAP delivers its own authorization object: ZR4SAP. In addition to this
authorization object, there are additional authorizations that need to be enabled for the
Attunity Replicate software.
A dialog user in SAP is required to access the Attunity Replicate for SAP Client GUI in SAP.
In addition, a communication user is required to support the RFC calls from the Attunity
Replicate software to the SAP system.
Identify existing users in SAP or create dedicated users for the Attunity Replicate software.
Both the dialog and communication users will need to be assigned to a role with
authorization object S_TCODE and value ZR4SAP.
The communication user will also require the following authorization objects: S_RFC and
S_OC_SEND.
Figure 8.5 | Authorization Object S_RFC:
There are two types of files required to import the ABAP objects into the SAP system: the
data-file and the co-file.
1. Log on to the system at the Operating System level as the <sid> adm.
2. Change the directory to /usr/sap/trans
3. Add the transport to the R/3 buffer with the following command:
# tp ‘addtobuffer SID’
4. Import the transport to the target R/3 system with the following command:
# tp ‘import SID client=000 U16’
The expected result of the addtobuffer step is a successful return code of `0’.
If problems occur during the addtobuffer step, it is likely there is a problem with the files.
They may be missing, in the wrong location, or have incorrect ownership or permissions.
The expected result of the import step is a successful return code of either `0’ or `4’. A
return code of `8’, `12’ or `16’ indicates transport failure. Return codes higher than `16’
indicate a major failure within the transport tool. If this occurs, check the present working
directory to ensure the correct location. Also, check the files for existence, location, and
proper ownership and access.
If problems exist during the import, retry the import step. If problems persist, check the
import and activation logs for failure reason. These files are in the /usr/sap/trans/log
location and named.R6U (the `?’ stands in as a wildcard).
Beginning in R/3 version 4.0, SAP allows importing transports through the SAP system via
transaction code STMS.
Note Security authorization in the SAP system must include proper access to import
the transport request.
The following instructions explain how to upgrade/patch, and uninstall the Attunity
Replicate SAP Client.
Note If you are applying a patch or upgrading the Attunity Replicate for SAP Client, you
should only install the main transport and the ECC-specific transport (if upgrading on an
ECC system). Do not install the configuration transport again, or any customizations
made to the configuration will be lost.
Note Do not uninstall the Replicate for SAP Client if you are also running Attunity Gold
Client, as this will uninstall some components that are shared by both products.
Managing Tables
3. Click the button above the table list to enter Edit mode.
3. Click the button above the table list to enter Edit mode.
4. Select the table you want to delete.
Target Collation
As SAP is case-sensitive, when a Replicate task is defined with a SAP Application source,
the target endpoints need to be set up with case-sensitive collation.
Limitations
When using SAP Application as a source endpoint in a Replicate task, the following
limitations apply:
A task with a SAP Application source and a File Channel target may replicate some
tables twice - the requested table and the underlying table. To prevent this from
happening, exclude the underlying table from the list of tables to be replicated.
When a task is defined with a SAP Application source, the Applied Changes Details
monitoring metrics in the Change Processing tab may be incorrect for clustered and
pooled tables.
Table 8.25 | Supported SAP Data Types with Mapping to Attunity Replicate Data Types
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Using SAP HANA as a Source
This section describes how to set up and use a SAP HANA endpoint as a source in a
replication task.
Note The SAP HANA endpoint can either be accessed directly or via the SAP Application
endpoint. For an explanantion of how to set up the SAP Application endpoint, see Using
SAP Application as a Source
In this section:
Prerequisites
Limitations
Permissions
Supported Data Types
Setting General Connection Properties
Setting Advanced Properties
Prerequisites
Before SAP HANA can be used as a source endpoint in a replication task, the prerequisites
described in this section must be met.
Port
Open inbound port number 3xx15 to the SAP HANA server where xx is the instance number
of the SAP HANA database that contains the source tables.
For example, the port for instance 90 would be 39015.
Required Clients
Windows: Install the SAP HANA ODBC 64-bit Driver 2.x for Windows on the Replicate
Server machine. The driver name is HDBODBC.
Linux: Install the SAP HANA ODBC 64-bit Driver 2.x for Linux on the Replicate Server
machine. The driver name is HDBODBC.
Add the following section to the odbcinst.ini file located in directory /etc:
[HDBODBC]
Description=64-bit HANA ODBC Driver
Driver=/opt/sap/hdbclient/libodbcHDB.so
fileUsage=1
Change Processing
To be able to capture changes committed to the source tables, Replicate requires the
following artifacts to be created in the source database (either manually by the DBA or
automatically by Replicate):
Three triggers for each of the designated source tables: The triggers capture
changes to the source tables (INSERTs, UPDATEs, and DELETEs) and write them to the
Replicate attrep_cdc_changes table described below. A separate trigger is required
for each DML operation.
The triggers will be created in the source table schema.
The Replicate attrep_cdc_changes table: This table will contain changes captured
by the triggers and will either be created in the schema of the user specified in the SAP
HANA endpoint settings, or in the schema specified in the endpoint settings.
Note This limitation does not apply when accessing SAP HANA via the SAP
Application endpoint.
Permissions
The following are the minimum permissions required:
Grant SELECT and TRIGGER on the SAP schema containing the selected source tables
to the user specified in the SAP HANA source endpoint.
If the attrep_cdc_changes table is created in a schema owned by the user specified
in the SAP HANA source endpoint settings (the default), no further permissions are
required.
If the attrep_cdc_changes table is created in a schema not owned by the user
specified in the endpoint settings, grant SELECT, INSERT, UPDATE and DELETE on the
attrep_cdc_changes table to the specified user.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 8.26 | Supported SAP HANA Data Types with Mapping to Attunity Replicate Data
Types
8. Click Test Connection to verify that the specified settings are correct.
Note The specified schema must already exist in the source database.
Log cleanup interval (min): Specify how often (in minutes) to check if Change
Records need to be deleted from the attrep_cdc_changes table.
Log retention period (min): Specify how long (in minutes) to keep Change Records
in the attrep_cdc_changestable before deleting them.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Using ODBC to Connect to a Source
This section describes how to use ODBC connectivity to connect to a source endpoint.
In this section:
Prerequisites
Limitations
ODBC Source Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
The following section describes the prerequisites for working with Attunity Replicate and an
ODBC endpoint.
Note You must use a 64-bit ODBC provider client to work with Attunity Replicate.
2. Use the ODBC Data Source Administrator to create a System DSN. The Data Source is
located in the Windows control panel.
Note To access an IBM DB2 for LUW target using ODBC, make sure that you
specify the libdb2o.so driver (and not libdb2.so).
3. Define a DSN for the installed driver by editing the /etc/odbc.ini file, as in the
following example:
[Postgre_DSN]
Description = Test
Driver = /usr/lib64/psqlodbc.so
Endpoint = MyDatabase
Servername = 12.3.45.678
Port = 5432
Limitations
When using ODBC as a source, the following limitations apply:
UPDATES to primary key fields are not supported. To update the field, define it as a
unique index instead.
The ODBC Source endpoint supports full-load operations only.
For providers that do not support batch operations, you must set the RowByRow=true
internal parameter according to the description provided in Internal Parameters.
Table 8.27 | Supported ODBC Source Data Types with Mapping to Attunity Replicate Data
Types
SQL_SMALLINT INT2
UINT2
SQL_INTEGER INT4
UINT4
SQL_BIGINT INT8
UINT8
SQL_DOUBLE REAL8
SQL_FLOAT REAL8
SQL_REAL REAL8
SQL_NUMERIC (P,S) NUMERIC (P,S)
REAL8
The SQL_NUMERIC data type is mapped to REAL8
Table 8.27 | Supported ODBC Source Data Types with Mapping to Attunity Replicate Data
Types (Cont.)
SQL_WLONGVARCHAR NCLOB
SQL_BINARY BYTES
SQL_LONGVARBINARY BLOB
SQL_GUID STRING
SQL_INTERVAL_YEAR STRINGw
SQL_INTERVAL_MONTH
SQL_INTERVAL_DAY
SQL_INTERVAL_MINUTE
Table 8.27 | Supported ODBC Source Data Types with Mapping to Attunity Replicate Data
Types (Cont.)
Note If you are using an ARC CDC Agent as the source in a Attunity Replicate
task, you cannot select the DSN for the Attunity ODBC driver as the target. In
this case, to use Attunity ODBC as a source, you must enter the connection
string manually by selecting Connection String and following the directions
for that option in this procedure.
Note
You can use the Advanced tab to add specific properties and create a
custom connect string. In this case, you do not need to enter information
in this tab. For more information on using the Advanced tab, see Setting
Advanced Connection Properties.
To determine if you are connected to the endpoint you want to use or if
the connection information you entered is correct, click Test
Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the
dialog box.
To view the log entry if the connection fails, click View Log. The server
log is displayed with the information for the connection failure. Note that
this button is not available unless the test connection fails.
7. Type the authentication information (User Name, Password) for the authorized user
for the ODBC endpoint being used. For example, the IBM DB2 system administrator if
you are using a IBM DB2 provider. If you do not know this information, see your ODBC
Endpoint System Administrator.
Note
When you select Connection String be sure to include User
name/password information in the connection string that you type in the
box.
If you are using the Advanced tab to create a custom string, make sure to
include the User Name and Password properties. For more information, see
Setting Advanced Connection Properties.
This information is case sensitive.
You can set custom properties in the Advanced tab. For more information,
see Setting Advanced Connection Properties.
Important: Make sure that the ODBC endpoint user has the correct access
privileges for the ODBC provider being used.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Using ARC CDC Solutions in Attunity Replicate
This section describes how to use an ARC (Attunity Replicate Connect) CDC Solution as an
Attunity Replicate endpoint.
Notes
For better performance, it is strongly recommended that Replicate runs on
Windows when working with an ARC-based source.
For all ARC sources, it is strongly recommended to install the ARC Agent in the
same data center as the Replicate server.
In this section:
Prerequisites for Using ARC CDC Solutions
Additional Prerequisites when Using ARC Non-Relational Sources
ARC CDC Solution Security Considerations
Limitations
ARC Source Data Type Mapping
Working with ARC CDC Solutions
Setting Advanced Connection Properties
For more information on creating ARC Solutions, please refer to the Attunity Replicate
Connect User Guide and Reference.
Note For information about installing the database you are working with, see the
installation guide for that database.
Note Steps 2-4 apply to non-relational ARC data sources only (e.g. VSAM). If you
are working with a relational ARC data source, continue to Step 5.
2. On the Router machine, create an encryption key which has the same values as the
encryption key that you created on the Agent machine. The procedure is the same as
described in Step 1, but instead of expanding the machine on which your ARC
Solution’s Agent is installed, expand the machine on which your ARC Solution’s Router
is installed.
3. On the Router machine, define the Agent as an authenticator according to the
following steps:
a. In the Configuration tab, expand the machine on which the Router is installed.
Then, right-click your solution’s Router binding (e.g vsam_router) and select
Open.
b. In the Machines tab, click the Security button.
The NAV tab opens.
c. To the right of the Authenticators list, click the Add button.
The Add Authenticator dialog box opens.
d. From the Resource type, drop-down list, select Adapter.
e. In the Resource name field, specify the name of your solution’s Agent as it
appears under the Adapters folder (e.g VSAM_ag).
f. At the bottom of the dialog box, select the Encryption key check box and then
specify the encryption key name and value in the designated fields. These values
must be the same as the encryption key values defined in Step 1.
4. In the Router’s Properties tab, expand the comm property and set the
defaultEncryptionMethod property to AES.
Note If the Properties tab is not displayed, open the Preferences dialog box
(by selecting Preferences from the Windows menu), navigate to Studio and
then select the Show advanced environment parameters option in the
Advanced tab.
5. In the Advanced tab of the Replicate ARC database, specify the encryption key name
and value. These values must be the same as the encryption key values defined in
Step 1.
For more information on the Advanced tab, see Using ARC CDC Agents as Endpoints.
See also: Using ARC CDC Agents as Endpoints.
Limitations
When working with ARC data sources, the following limitations apply:
IBM DB2 on iSeries (ARC): Table and field names that contain the "/" character are
not supported.
Only one Replicate task can work with the same ARC Agent concurrently.
Replication of DDL changes to the target endpoint is not supported.
Table 8.28 | Supported ARC Data Types with Mapping to Attunity Replicate Data Types
Note If you activate the solution, then disable the router and staging area
workspaces and keep the agent workspace enabled. For more information, see the
Attunity Replicate Connect User Guide and Reference.
Note To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the connection
fails, an error message is displayed at the bottom of the dialog box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button is
not available unless the test connection fails.
When you add a database to Attunity Replicate and you select a non-relational ARC data
source as the database type, the following dialog box opens.
Note If you choose IMS/DLI, you will need to close the database to IMS/TM or
IMS/DBCTL. This option might be faster than using BMP. IMS/BMP does not require
exclusive access to the database.
12. Click OK to add the database to Attunity Replicate. You can use this database as the
source database for any replication task that you create.
Note To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the connection
fails, an error message is displayed at the bottom of the dialog box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button is
not available unless the test connection fails.
Note For a detailed explanation of how to encrypt session between Replicate and
ARC endpoints, see Encrypting Communications Between Replicate and ARC Data
Sources.
Fixed NAT: Select this to indicate that the connection is made with a fixed network
address translation.
Timeout: Enter the amount of time, in seconds, to wait for interactions before
disconnecting. 0 indicates that the system does not timeout. The default value is 0.
Event wait: Enter the maximum amount of time (in seconds) to wait for a change
event to take place before the system times out. The default value is 300.
CDC batch size: Enter the maximum number of change events that can be
transferred in a single batch. The default value is 200.
Bulk batch size: Enter the unloading batch size. The default value is 100.
Trace: Select this to enable tracing for the change processing.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
In this chapter:
Using Oracle as a Target
Using Microsoft SQL Server as a Target
Using Microsoft Azure SQL Database as a Target
Using SAP Sybase ASE as a Target
Using a MySQL-Based Database as a Target
Using MemSQL as a Target
Using Hadoop as a Target
Using Microsoft Azure HDInsight as a Target
Using Amazon EMR as a Target
Using Teradata Database as a Target
Using a PostgreSQL-Based Database as a Target
Using a File as a Target
Using SAP Sybase IQ as a Target
Using SAP HANA as a Target
Using Pivotal Greenplum as a Target
Using Actian Vector as a Target
Using Amazon Redshift as a Target
Using Amazon S3 as a Target
Using Microsoft Azure ADLS as a Target
Using HP Vertica as a Target
Using Microsoft APS PDW as a Target
Using ODBC to Connect to a Target
Using Microsoft Azure SQL Data Warehouse as a Target
Using IBM Netezza as a Target
Using Kafka as a Target
Using MapR Streams as a Target
Using Microsoft Azure Event Hubs as a Target
Using Amazon Kinesis Data Streams as a Target
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 317
Using Oracle as a Target
This section describes how to set up and use an Oracle database as a target endpoint in a
replication task.
Note When replicating to an Oracle database with a full disk and/or partition where
Oracle is trying to write archived redo log files, insert operations may fail. In such as
case, no error will be shown and the task will not progress past the loading stage. To
confirm that this is indeed an Oracle Archiver error, stop and attempt to restart the
task. The task will not start and an appropriate error should be shown.
In this section:
Prerequisites
Limitations
Security Requirements
Oracle Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Before you can work with an Oracle endpoint, make sure the prerequisites listed in this
section have been met.
On Windows systems, install Oracle Instant Client for Microsoft Windows (x64) Version
11.2.0.3.0 and above.
Note Support for the XMLTYPE data type requires the full Oracle Client.
On Linux systems, install Oracle Instant Client for Linux (x86-64) Version 11.2.0.3.0
and above.
Note Support for the XMLTYPE data type requires the full Oracle Client.
In addition, if not already included in your system, you need to create a symbolic link
in the $Oracle_Home\lib directory. This link should be called libclntsh.so, and
should point to a specific version of this file.
For example, on an Oracle 12c client:
lrwxrwxrwx 1 oracle oracle 63 Oct 2 14:16 libclntsh.so ->
/u01/app/oracle/home/lib/libclntsh.so.12.1
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 318
Additionally, append the LD_LIBRARY_PATH environment variable to the Oracle lib
directory by copying the driver location to the site_arep_login.sh file as follows:
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_
PATH:/u01/app/oracle/home/lib/ > site_arep_login.sh
Limitations
The following limitations apply:
The Attunity Replicate Oracle database cannot create a new schema on the Oracle
database. Therefore, if you are replicating data to an Oracle target and you want to
change the schema name, the new schema name must already exist on the Oracle
database. If it does not exist, you must create the schema on the database, then you
can use that schema name in Attunity Replicate.
The Use direct path full load option does not support the following:
Tables with INDEXTYPE CONTEXT
Workaround:
Use Array Load.
Bidirectional replication
In Batch Optimized Apply mode, loading into the net changes table uses Direct Path
which does not support XMLType.
Workaround:
Use Transactional Apply mode.
Attunity Replicate cannot create a new schema on the Oracle database. To replicate to
a new schema, the new schema name must already exist on the Oracle target. You can
then specify the new schema name in the Task Settings’ Target Metadata and Control
Tables tabs as required.
Security Requirements
A user must have the following privileges granted in the Oracle database to use an Oracle
target in an Attunity Replicate task:
Note If any of the required privileges cannot be granted to a V$xxx, then grant them to
the V_$xxx.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 319
SELECT on ALL_TABLES
SELECT on ALL_USERS
SELECT on ALL_CATALOG
SELECT on ALL_CONSTRAINTS
SELECT on ALL_CONS_COLUMNS
SELECT on ALL_TAB_COLS
SELECT on ALL_IND_COLUMNS
CREATE ANY TABLE
DROP ANY TABLE
SELECT ANY TABLE
INSERT ANY TABLE
DELETE ANY TABLE
UPDATE ANY TABLE
CREATE ANY VIEW
DROP ANY VIEW
CREATE ANY PROCEDURE
ALTER ANY PROCEDURE
DROP ANY PROCEDURE
CREATE ANY SEQUENCE
ALTER ANY SEQUENCE
DROP ANY SEQUENCE
You can add the following permissions to use a specific table list:
SELECT on <any-replicated-table>
ALTER on <any-replicated-table>
The following permission must be granted for logon:
CREATE SESSION
The following permission must be granted if you are using a direct path:
LOCK ANY TABLE
If the "DROP and CREATE table" or "TRUNCATE before loading" option is selected in the Full
Load Settings tab and the target table schema is different from the Attunity Replicate user,
the following permission must be granted:
DROP ANY TABLE
To store changes in Change Tables or in an Audit Table when the target table schema is
different from the Attunity Replicate user, the following permission must be granted:
CREATE ANY INDEX
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 320
The Attunity Replicate user must also be granted read permissions for the following DBA
tables:
SELECT on DBA_USERS
SELECT on DBA_TAB_PRIVS
SELECT on DBA_OBJECTS
SELECT on DBA_SYNONYMS
SELECT on DBA_SEQUENCES
SELECT on DBA_TYPES
SELECT on DBA_INDEXES
SELECT on DBA_TABLES
SELECT on DBA_TRIGGERS
Table 9.1 | Supported Oracle Data Types with Mapping from Attunity Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 321
Table 9.1 | Supported Oracle Data Types with Mapping from Attunity Replicate Data
Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 322
Table 9.1 | Supported Oracle Data Types with Mapping from Attunity Replicate Data
Types (Cont.)
Note When the source database is Oracle, the source data types will be replicated "as
is" to the Oracle target. For example, an XMLTYPE data type on the source will be
created as an XMLTYPE data type on the target.
Note The total number of columns per table supported in Batch optimized apply mode
can be expressed using the following formula:
2 * columns_in_original_table + columns_in_primary_key <= 999
So, for example, if the original tables has 25 columns and its Primary Key consists of 5
columns, then the total number of columns would be 55. If a table exceeds the
supported number of columns, Replicate will apply all of the changes in one-by-one
mode.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 323
Working with Endpoints.
2. In the Name field, type a name for your database. This can be any name that will help
to identify the database being used.
3. In the Description field, type a description that helps to identify the Oracle database.
This is optional.
4. Select TARGET as the database role.
5. Select Oracle as the database Type.
6. Type the Oracle Connection String for the Oracle database you want to work with.
You can type the connect string in any Oracle format, for example:
//host:port/service name
Where:
host: This is the name or IP address for the computer with the Oracle database
that you are using. For example, johnboy_W7 or 255.255.255.0.
port: (optional) This is the TNS Listener Port number for the computer with the
Oracle database that you are using. If you do not enter a port number the default
Oracle TNS Listener port is used.
service name: (optional) This is the service name for the computer with the
Oracle database you are using. If you do not enter a service name the default
service name is used.
You can also enter an Oracle Net keyword-value pair. For example:
"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=dlsun242) (PORT=5521))
(CONNECT_DATA=(SERVICE_NAME=bjava21)))"
7. Type the Oracle authentication information (User Name, Password) for the
authorized user for this Oracle database. If you do not know this information, see your
Oracle database Administrator (DBA).
To prevent illicit database activity by unauthorized third-parties, Replicate can be
configured to automatically replace the user-entered password with a strong random
password. For more information, see Configuring Replicate to Automatically Replace
the User-Entered Password.
Important: Make sure that the Oracle user entered in the Oracle Authentication
section has the correct access privileges. For information on how to provide the
required privileges, see Security Requirements.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 324
Note To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the connection
fails, an error message is displayed at the bottom of the dialog box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button is
not available unless the test connection fails.
Note Due to an issue with Oracle Direct Path, when this option is selected and If
target table already exists is set to Do nothing in the Full Load Settings, the
following occurs:
The first time the task runs, no error will be issued and rows with the same
Primary Key may be added to the target table.
The second time the task runs, the setting will take effect.
Any subsequent times the task runs, an error will be generated.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 325
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 326
Using Microsoft SQL Server as a Target
This section describes how to set up and use a Microsoft SQL Server database as a target in
a replication task.
In this section:
Supported Editions
Prerequisites
Limitations
Permissions
Microsoft SQL Server Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Supported Editions
Attunity Replicate supports the following Microsoft SQL Server editions:
Enterprise Edition
Standard Edition
Workgroup Edition
Developer Edition
Prerequisites
Make sure that the following prerequisites have been met:
Client prerequisites:
Attunity Replicate for Windows:
For all versions of Microsoft SQL Server, Microsoft SQL Server Native Client 11.0 must
be installed on the Attunity Replicate Server machine.
Attunity Replicate for Linux:
You can either work with the Microsoft ODBC Driver the Simba Microsoft SQL Server
ODBC Driver. Instructions for both are provided below.
First, install Microsoft ODBC Driver 13.1 for Linux on the Attunity Replicate Server
machine.
Then, on the Attunity Replicate Server machine, open a Unix shell and perform the
following steps:
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 327
Note The procedure below assumes that you have installed a single default
instance of Replicate on Linux (areplicate). If you have installed multiple instances,
replace areplicate with the name of the instance running the task with a Microsoft
SQL Server target. If several instances are running such as task, the procedure
needs to be repeated for each instance.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 328
A Microsoft SQL Server account with the specific access privileges is required. See
Target Permissions for more information.
Limitations
When using a Microsoft SQL Server database as a target in a Replicate task, The following
imitations apply:
When Use BCP for loading tables is selected in the Advanced tab (the default),
unlimited LOB columns are not supported in Batch optimized apply change
processing mode. You can work around this limitation by limiting LOB column size in
the task settings, clearing the Use BCP for loading tables option or switching to
Transactional apply mode.
When the Use BCP for loading tables option is enabled in the Advanced tab,
triggers are not executed.
When Attunity Replicate is installed on Linux, the Use BCP for loading tables option
in the Advanced tab is not supported.
Microsoft SQL Server 2012 Target: When the target table is created manually with a
computed column, Full Load replication is not supported in BCP mode. Disabling the
"Use BCP for loading tables" option in the Advanced tab will resolve this issue. For
more information on BCP mode, see Setting Advanced Connection Properties.
Permissions
The following describes the security requirements for using Attunity Replicate with a
Microsoft SQL Server target.
The Attunity Replicate user must have at least the db_owner user role on the Microsoft SQL
Server database you are connecting to.
A Microsoft SQL Server system administrator must provide this permission for all Attunity
Replicate users.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 329
Table 9.2 | Microsoft SQL Server Target Data Types with Mapping from Attunity Replicate
Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 330
Table 9.2 | Microsoft SQL Server Target Data Types with Mapping from Attunity Rep-
licate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 331
Properties below.
Note To override the default port, add the port to the server name, separated by a
comma. For example, if the server name is myserver.company.local and the port
is 3333, then the server name should be written like this:
myserver.company.local,3333
Note When using Windows authentication, make sure that the user account that is
associated with the Attunity Replicate Server service has Network read and write
permissions. This must be configured by a Windows system administrator.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 332
Note This information is case sensitive.
Important: Make sure that the Microsoft SQL Server user has the correct access
privileges. For information on how to provide the required privileges, see
Permissions.
Note To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the connection
fails, an error message is displayed at the bottom of the dialog box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button is
not available unless the test connection fails.
8. Type the Database name or click Browse and select one from the list of available
databases. This is the name of the database from where you are replicating the data.
Note
When the target table contains an identity column that does not exist in the
source table, you must disable the Use BCP for loading tables option.
BCP is not supported by when Replicate is installed on Linux.
BCP packet size: The maximum size of the packets (in bytes) used to transfer data
using BCP.
Filegroup for Attunity Replicate internal tables: Optionally, specify a filegroup
for the Attunity Replicate internal tables. When the replication task starts, all of the
internal Attunity Replicate control tables will be created in the specified filegroup.
The following is an example of a command for creating a filegroup:
ALTER database replicate
ADD FILEGROUP Test1FG1;
GO
ALTER database replicate
ADD FILE
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 333
(
NAME = test1dat5,
FILENAME = 'C:\temp\DATA\t1dat5.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP Test1FG1;
GO
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 334
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 335
Using Microsoft Azure SQL Database as a Target
This section describes how to set up a Microsoft Azure SQL Database as a target in a
replication task.
In this section:
Prerequisites
Limitations
Permissions
Microsoft Azure SQL Database Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Make sure that the following prerequisites have been met:
Ports:
When Replicate Server runs on a machine outside Azure - Open port 1433
for outbound traffic.
When Replicate Server runs on an AzureVM - Open the following ports for
outbound traffic:
1433
11000-11999
14000-14999
Client prerequisites:
Attunity Replicate for Windows:
For all versions of Microsoft SQL Server, Microsoft SQL Server Native Client 11.0 must
be installed on the Attunity Replicate Server machine.
Attunity Replicate for Linux:
You can either work with the Microsoft ODBC Driver the Simba Microsoft SQL Server
ODBC Driver. Instructions for both are provided below.
First, install Microsoft ODBC Driver 13.1 for Linux on the Attunity Replicate Server
machine.
Then, on the Attunity Replicate Server machine, open a Unix shell and perform the
following steps:
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 336
Note The procedure below assumes that you have installed a single default
instance of Replicate on Linux (areplicate). If you have installed multiple instances,
replace areplicate with the name of the instance running the task with a Microsoft
Azure SQL Database target. If several instances are running such as task, the
procedure needs to be repeated for each instance.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 337
A Microsoft Azure SQL Database account with the specific access privileges is
required. See Target Permissions for more information.
Limitations
When using a Microsoft Azure SQL Database as a target in a Replicate task, The following
imitations apply:
When Use BCP for loading tables is selected in the Advanced tab (the default),
unlimited LOB columns are not supported in Batch optimized apply change
processing mode. You can work around this limitation by limiting LOB column size in
the task settings, clearing the Use BCP for loading tables option or switching to
Transactional apply mode.
When the Use BCP for loading tables option is enabled in the Advanced tab,
triggers are not executed.
When Attunity Replicate is installed on Linux, the Use BCP for loading tables option
in the Advanced tab is not supported.
Permissions
The following describes the security requirements for using Attunity Replicate with a
Microsoft Azure SQL Database target.
The Attunity Replicate user (i.e. the user specified in the Microsoft Azure SQL Database
endpoint settings) must have at least the db_owner user role on the Microsoft Azure SQL
Database you are connecting to.
A Microsoft Azure SQL Database system administrator must provide this permission for all
Attunity Replicate users.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 338
Table 9.3 | Microsoft Azure SQL Database Target Data Types with Mapping from Attunity
Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 339
Table 9.3 | Microsoft Azure SQL Database Target Data Types with Mapping from Attunity
Replicate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 340
Note To override the default port, add the port to the server name, separated by a
comma. For example, if the server name is myserver.company.local and the port
is 3333, then the server name should be written like this:
myserver.company.local,3333
7. Enter your user name and password for accessing the database.
Important: Make sure that the Microsoft Azure SQL Database user has the correct
access privileges. For information on how to provide the required privileges, see
Permissions.
Note To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the connection
fails, an error message is displayed at the bottom of the dialog box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button is
not available unless the test connection fails.
Note
When the target table contains an identity column that does not exist in the
source table, you must disable the Use BCP for loading tables option.
BCP is not supported by when Replicate is installed on Linux.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 341
BCP packet size: The maximum size of the packets (in bytes) used to transfer data
using BCP.
Filegroup for Attunity Replicate internal tables: Optionally, specify a filegroup
for the Attunity Replicate internal tables. When the replication task starts, all of the
internal Attunity Replicate control tables will be created in the specified filegroup.
The following is an example of a command for creating a filegroup:
ALTER database replicate
ADD FILEGROUP Test1FG1;
GO
ALTER database replicate
ADD FILE
(
NAME = test1dat5,
FILENAME = 'C:\temp\DATA\t1dat5.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP Test1FG1;
GO
Additional ODBC connection properties: Specify any additional ODBC connection
parameters that you want to use.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 342
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 343
Using SAP Sybase ASE as a Target
This section describes how to set up and use a SAP Sybase ASE database as the target
endpoint in a replication task.
In this section:
Prerequisites
Limitations
Security Requirements
SAP Sybase ASE Database Target Data Types
Non-Supported Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Make sure the following prerequisites have been met:
SAP Sybase ASE ODBC 64-bit client installed on the computer where Attunity Replicate
is located.
SAP Sybase ASE replication enabled for tables using the sp_setreptable command or
privileges to enable it automatically.
RepAgent must be disabled on the SAP Sybase ASE database.
When replicating to SAP Sybase ASE 15.7 installed on a Windows machine configured
with a non-Latin language (e.g. Chinese), Attunity Replicate requires Sybase 15.7
SP121 to be installed on the SAP Sybase ASE machine.
Limitations
The following limitations apply:
Only one Attunity Replicate task can be run per SAP Sybase ASE database.
Attunity Replicate tasks cannot run concurrently with SAP Sybase ASE Replication
Server against the same SAP Sybase ASE database.
Zero values located at the end of binary data type strings are truncated when
replicated to the target database. For example,
0x0000000000000000000000000100000100000000 in the source table will become
0x00000000000000000000000001000001 in the target table.
Attunity Replicate creates the target table with columns that do not allow NULL values,
if the database default is not to allow NULL values. Consequently, if a Full Load or CDC
replication task contains empty values, errors will occur.
To prevent this from happening:
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 344
Right-click the database name and select Properties from the context menu.
In the Options tab, select Allow nulls by default and then click OK.
Security Requirements
You must provide SAP Sybase ASE account access to the Attunity Replicate user. This user
must have read/write privileges in the SAP Sybase ASE database.
Note SAP Sybase ASE does not support applying changes to binary data types in Batch
optimized apply mode. For more information on Batch optimized apply mode, see
Change Processing Tuning.
For information on how to view the data type that is mapped from the source, see the
section for the source endpoint you are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 9.4 | Supported SAP Sybase ASE Data Types with Mapping from Attunity Replicate
Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 345
Table 9.4 | Supported SAP Sybase ASE Data Types with Mapping from Attunity Replicate
Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 346
6. In the Server Name field, enter the host name or IP address of the computer on
which the SAP Sybase ASE database is installed.
Important: Make sure that the SAP Sybase ASE user entered in the SAP Sybase
ASE Authentication section has the correct access privileges. For information on
how to provide the required privileges, see Security Requirements.
9. In the Database name field, enter the SAP Sybase ASE database name.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 347
Setting Advanced Connection Properties
In the Advanced tab, you can set advanced properties.
Additional ODBC connection properties: Specify any additional ODBC connection
parameters that you want to use.
Note If the user name or password specified in the General tab contains non-Latin
characters (e.g. Chinese), the following property is required:
charset=gb18030
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 348
Using a MySQL-Based Database as a Target
This section describes how to set up and use a MySQL target endpoint in a replication task.
You need to configure a MySQL endpoint when replicating to any of the following
databases:
MySQL
Microsoft Azure Database for MySQL
MariaDB
Google Cloud for MySQL
Amazon Aurora (MySQL)
Amazon RDS for MariaDB
Amazon RDS for MySQL
In this section:
Prerequisites
Limitations
Security Requirements
Supported Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Make sure that the prerequisites described in this section have been met.
In this section:
General Prerequisites
Attunity Replicate Server for Windows
Attunity Replicate Server for Linux
General Prerequisites
The following is required:
A MySQL account with the required Security Requirements.
A MySQL database with the tables that you want to replicate should be accessible in
your network.
The following MySQL editions are supported:
MySQL Community Edition
MySQL Standard Edition
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 349
MySQL Enterprise Edition
MySQL Cluster Carrier Grade Edition
Limitations
The following limitations apply:
When only the LOB column in the source table is updated, Replicate will not update the
corresponding target LOB column. The target LOB column will only be updated if at
least one other column is also updated in the same transaction.
Due to the way MySQL operates, when loading data to a MySQL target during a Full
Load task, duplicate key errors will not be reported to the logs.
When updating a column's value to its existing value, a zero rows affected is returned
from MySQL (unlike Oracle and Microsoft SQL Server that perform an update of one
row). This generates an entry in the attrep_apply_exceptions control table and the
following warning:
Some changes from the source database had no impact when applied to the
target database. See attrep_apply_exceptions table for details.
Security Requirements
You must provide MySQL account access to the Attunity Replicate user. This user must
have read/write privileges in the MySQL database.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 350
Table 9.5 | Supported MySQL Data Types with Mapping from Attunity Replicate Data
Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 351
Table 9.5 | Supported MySQL Data Types with Mapping from Attunity Replicate Data
Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 352
To add a MySQL target endpoint to Attunity Replicate:
1. In the Attunity Replicate Console, click Manage Endpoint Connections to open the
Manage EndpointsConnections dialog box. Then click the New Endpoint
Connection button. For more information on adding an endpoint to Attunity Replicate,
see Working with Endpoints.
2. In the Name field, type a name for your database. This can be any name that will help
to identify the database being used.
3. In the Description field, type a description that helps to identify the MySQL database.
This is optional.
4. Select TARGET as the database role.
5. From the Type drop-down list, select one of the following:
For MySQL, MariaDB, Amazon Aurora (MySQL), Amazon RDS for MariaDB, and
Amazon RDS for MySQL, select MySQL.
For Google Cloud for MySQL, select Google Cloud for MySQL.
For Microsoft Azure Database for MySQL, select Microsoft Azure Database for
MySQL.
6. In the Server field, enter the host name or IP address of the computer on which the
MySQL database is installed.
Notes
This information is case sensitive.
To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 353
Setting Advanced Connection Properties
In the Advanced tab, you can set advanced properties.
Max file size (KB): Select or type the maximum size (in KB) of a CSV file before it is
loaded into the MySQL target database. The default value is 32000 KB.
Use parallel loading: Select this option to improve performance when loading data
into the MySQL target database.
Use the following number of threads: Specify how many threads to use to
load the data into the MySQL target database. Note that setting a large number of
threads may have an adverse effect on database performance since a separate
connection is required for each thread.
Note Attunity Replicate assumes that MySQL Client 5.2.6 to 5.3.x for Linux or
MySQL ODBC Client 5.2.6 to 5.3.x 64-bit for Windows is installed on the Attunity
Replicate Server machine. If a version later than 5.3.x is installed, you need to
specify the version number as an internal parameter where driver is the
Parameter and MySQL ODBC <version> Unicode Driver is the Value (where
<version> is the client version e.g. 5.4).
For instructions on setting internal parameters, see Internal Parameters below.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 354
Using MemSQL as a Target
This section describes how to set up and use a MemSQL target endpoint in a replication
task.
In this section:
Prerequisites
Limitations
Security Requirements
Supported Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Make sure that the prerequisites described in this section have been met.
In this section:
Attunity Replicate Server for Windows
Attunity Replicate Server for Linux
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 355
Limitations
When replicating to a MemSQL target, the following limitations apply:
When only the LOB column in the source table is updated, Replicate will not update the
corresponding target LOB column. The target LOB column will only be updated if at
least one other column is also updated in the same transaction.
Due to the way MemSQL operates, when loading data to a MemSQL target during a Full
Load task, duplicate key errors will not be reported to the logs.
When updating a column's value to its existing value, a zero rows affected is returned
from MemSQL (unlike Oracle and Microsoft SQL Server, for example, that perform an
update of one row). This generates an entry in the attrep_apply_exceptions control
table and the following warning:
Some changes from the source database had no impact when applied to the
target database. See attrep_apply_exceptions table for details.
Security Requirements
You must provide MemSQL account access to the Attunity Replicate user. This user must
have read/write privileges in the MemSQL database.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 356
Table 9.6 | Supported MemSQL Data Types with Mapping from Attunity Replicate Data
Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 357
Table 9.6 | Supported MemSQL Data Types with Mapping from Attunity Replicate Data
Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 358
see Working with Endpoints.
2. In the Name field, type a name for your database. This can be any name that will help
to identify the database being used.
3. In the Description field, type a description that helps to identify the MemSQL
database. This is optional.
4. Select TARGET as the database role.
5. From the Type drop-down list, select MemSQL.
6. In the Server field, enter the host name or IP address of the computer on which the
MemSQL database is installed.
Notes
This information is case sensitive.
To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 359
3. The parameter is added to the table below the search box with its default value.
4. Change the default value as required.
5. To reset the parameter value to its default, click the "Restore default value" icon at the
end of the row.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 360
Using Hadoop as a Target
This section describes how to set up and use Hadoop as the target endpoint in a replication
task.
In this section:
Prerequisites
Limitations
Change Data Partitioning on Hadoop
Security Requirements
Hadoop Endpoint Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Using Kerberos Authentication
Prerequisites
Before you begin to work with a Hadoop cluster as a target in Attunity Replicate, make sure
that the following prerequisites have been met:
General:
The Hadoop WebHDFS must be accessible from the Attunity Replicate machine.
The Hadoop Data Nodes must be accessible from the Attunity Replicate machine.
The Hadoop WebHDFS service must be running.
ODBC Access:
When accessing Hive using ODBC, the following ODBC drivers are supported:
Hortonworks: ODBC driver 2.1.2 (which is actually 2.1.02) and above
Cloudera: ODBC driver 2.5.19 and above
Note Cloudera ODBC drivers 2.5.20 and above do not support the Snappy
compression method.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 361
Permissions: The user specified in the Hadoop target settings must have write
permission for the specified HDFS target directory.
Limitations
The following limitations apply:
UPDATE/DELETE DMLs are not supported during change processing. If an
UPDATE/DELETE DML was captured on the source, it will be ignored on the target and a
warning will be written to the log. If the Store Changes option is enabled in the task
settings, these records will be written to the Change Table.
Limited LOB support only.
Dropping columns and changing column data types are not supported.
Due to a Hive limitation, in Hive version 0.12 and earlier versions, only alphanumeric
and underscore characters are allowed in table and column names. From Hive 0.13,
column names can contain any Unicode character.
When loading data into partitioned tables, the following limitations apply:
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 362
The Apply Changes replication option is not supported.
Data can only be loaded into tables with existing partitions.
The Drop and Create table option in the task settings’ Full Load Settings tab
should not be selected.
See also Support for Partitions, Buckets and Skews.
The following Control Tables are not supported as they require UPDATE/DELETE
operations (which are not supported by the Hadoop target endpoint):
Replication Status (requires UPDATE).
Name on target: attrep_status
Suspended Tables (requires DELETE).
Name on target: attrep_suspended_tables
For more information on Control Tables, see Control Tables.
Primary keys are not supported on Hive versions prior to 2.1. From Hive 2.1, primary
keys are supported when accessing Hive using ODBC only.
Prerequisites
The prerequisites for using Change Data Partitioning with a Hadoop target endpoint are as
follows:
The target file format must be set to Text or Sequence
Hive access must be set to ODBC
Security Requirements
The Hadoop NameNode (and data nodes when using WebHDFS) must be accessible from
the Attunity Replicate machine and the user specified in the Hadoop target settings must
have write permission for the specified HDFS target directory.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 363
For information on how to view the data type that is mapped from the source, see the
section for the source endpoint you are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 9.7 | Supported Hadoop Data Types with Mapping from Attunity Replicate Data
Types
Note When Avro is selected as the Target storage format, the TIMESTAMP and DATE
data types (which are not supported by Avro) are mapped to VARCHAR(37).
INT1 TINYINT
INT2 SMALLINT
INT4 INT
INT8 BIGINT
NUMERIC Hive 0.13 and above:
DECIMAL (p,s)
Hive 0.12 and below:
DECIMAL
REAL4 FLOAT
REAL8 DOUBLE
STRING Hive 0.13 and above:
VARCHAR (Length)
Hive 0.12 and below:
STRING
UINT1 SMALLINT
UINT2 INT
UINT4 BIGINT
UINT8 Hive 0.13 and above:
DECIMAL (20,0)
Hive 0.12 and below:
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 364
Table 9.7 | Supported Hadoop Data Types with Mapping from Attunity Replicate Data
Types (Cont.)
Note In some Hadoop Distributions, you may need to specify the value without the
"hive" prefix.
For example, |enforce.bucketing instead of |hive.enforce.bucketing.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 365
Note If the value(s) already exist in the
hive.security.authorization.sqlstd.confwhitelist property, you do not
need to add them to the
hive.security.authorization.sqlstd.confwhitelist.append property.
3. Set the Target Table Preparation task setting to Truncate before loading or Do
nothing. For more information on this setting, see Full Load Settings.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 366
User name - Select to connect to the Hadoop cluster with only a user name.
Then, in the User name field, specify the name of a user authorized to
access the Hadoop cluster.
Kerberos - Select to authenticate against the Hadoop cluster using
Kerberos. Replicate automatically detects whether Attunity Replicate Server
is running on Linux or on Windows and displays the appropriate settings.
Note You need to define a global Kerberos ticket file even if you select
the Use specific Kerberos ticket file option. The global Kerberos
ticket file is used for authentication when selecting a Hive endpoint, when
testing the connection (using the Test Connection button), and when
selecting which tables to replicate.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 367
Realm: The name of the realm in which your Hadoop cluster resides.
For example, if the full principal name is john.doe@EXAMPLE.COM, then
EXAMPLE.COM is the realm.
Principal: The user name to use for authentication. The principal must
be a member of the realm entered above.
For example, if the full principal name is john.doe@EXAMPLE.COM, then
john.doe is the principal.
Keytab file: The full path of the Keytab file. The Keytab file should
contain the key of the Principal specified above.
Note When the Replicate KDC and the Hadoop KDC are in different
domains, a relationship of trust must exist between the two
domains.
If you are unsure about any of the above, consult your IT/security
administrator.
For additional steps required to complete setup for Kerberos authentication,
see Using Kerberos Authentication.
User name and password - Select to connect to the Hadoop NameNode or
to the Knox Gateway (when enabled - see below) with a user name and
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 368
password. Then, in the User name and Password fields, specify the
required user name and password.
Important: Make sure that the specified user has the required Hadoop
access privileges. For information on how to provide the required
privileges, see Security Requirements.
7. If you need to access the Hortonworks Hadoop distribution through a Knox Gateway,
select Use Knox Gateway. Then provide values for the following fields:
Note To be able to select this option, first select Use SSL and then select
Password from the Authentication type drop-down list.
Knox Gateway host - The FQDN (Fully Qualified Domain Name) of the Knox
Gateway host.
Knox port - The port number to use to access the host. The default is "8443".
Knox Gateway path - The context path for the gateway. The default is
"gateway".
Note The port and path values are set in the gateway-site.xml file. If you
are unsure whether the default values have been changed, contact your IT
department.
Cluster name - The cluster name as configured in Knox. The default is "Default".
8. In the HDFS section, select WebHDFS, HttpFS or NFS as the HDFS access method.
If you are accessing MapR, it is recommended to use HttpFS.
Note When the Use Knox Gateway option is selected, the NameNode, HttpFS
Host, and Port fields described below are not relevant (and are therefore hidden).
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 369
If you selected WebHDFS:
In the NameNode field, specify the IP address of the NameNode.
Note This is the Active node when High Availability is enabled (see
below).
Note Due to a Hadoop limitation, the Target folder name can only contain ASCII
characters.
Note When the Use Knox Gateway option is selected, the Host and Port
fields described below are not relevant (and are therefore hidden).
ODBC - Select this option to access Hive using an ODBC driver (the default).
Then continue with the Host field.
Note If you select his option, make sure that the latest 64-bit ODBC
driver for your Hadoop distribution is installed on the Attunity Replicate
Server machine.
HQL scripts - When this option is selected, Replicate will generate HQL
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 370
table creation scripts in the specified Script folder.
Note When this option is selected, the target storage format must be set
to "Text".
No Access - When this option is selected, after the data files are created on
HDFS, Replicate will take no further action.
b. In the Host field, specify the IP address of the Hive machine.
c. In the Port field, optionally change the default port.
d. In the Database field, specify the name of the Hive target database.
Setting Description
File Format Expand this section to specify or view the file format
settings.
Note For both regular tables and Replicate Control Tables, creating and storing the
tables in text format (the default) allows data to be appended to them. This in turn
reduces the number of files created on Hadoop, improves query performance, and
reduces the number of Hive jobs running.
Target storage Select one of the following target storage formats: Text (the
format default), Avro, ORC, Parquet, Sequence.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 371
Table 9.8 | Hadoop Target - Advanced Properties (Cont.)
Setting Description
See also: Prerequisites for using the Cloudera Distribution as a
Hadoop Target.
Control Tables Text: This is the default method.
storage format Same as the target storage format: This method is only
recommended if, for whatever reason, you cannot use Text
format. For example, this may be the case if you have an
existing process that only knows how to read/interpret the
Control Table data in a different format).
Use Default SerDe Choose the SerDe interface to use when accessing the Hive
Other SerDe database tables. The default is LazySimpleSerde.
LazySimpleSerde creates the target files in delimited text file
format. To create the target files in a different format, select the
Other SerDe field and then specify the name of the SerDe that
you want to use.
Field delimiter The delimiter that will be used to separate fields in the target file.
The default is \001. Note that field delimiters must be in Octal
format (e.g. \247)
Null value The value that will be used to indicate a null value in the target
file. When using the default SerDe (LazySimpleSerde), setting the
null value is supported from Hive 0.13.
Example (where @ is the null value):
mike,male,295678
sara,female,@
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 372
Table 9.8 | Hadoop Target - Advanced Properties (Cont.)
Setting Description
Record delimiter The \n delimiter is used to separate records (rows) in the target
files. When using the default SerDe (LazySimpleSerde), the
record delimiter cannot be changed.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 373
Table 9.8 | Hadoop Target - Advanced Properties (Cont.)
Setting Description
Quote character The quote character is used to escape the field delimiter
character. When a field delimiter is escaped, it is interpreted as
actual data, and not as a field delimiter. Note that the quote
character is not available when using the default SerDe
(LazySimpleSerde).
Example (where double-quotes is the quote character):
"mike,male"
SerDe properties Enter the SerDe properties if Other SerDe is selected and the
SerDe properties are not the same as the Hadoop defaults
(field.delim, serialization.null.format, escape.delim,
line.delim, quote.delim).
The properties should be written using the following format:
"KEY1=VALUE1,KEY2=VALUE2,KEY3=VALUE3"
The list of properties should begin and end with a quotation mark.
Example:
"separatorChar=\t,escapeChar={,quoteChar=’"
Add metadata header You can optionally add a header row to the data files. The header
row can contain the source column names and/or the intermediate
(i.e. Replicate) data types.
Example of a target file with a header row when both With
column names and With data types are selected:
Position:DECIMAL(38,0),Color:VARCHAR(10)
1,"BLUE"
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 374
Table 9.8 | Hadoop Target - Advanced Properties (Cont.)
Setting Description
2,"BROWN"
3,"RED"
...
File Attributes Expand this section to specify or view the file attributes.
Use Hadoop defaults Select to work with the default block size of your Hadoop target.
Use this block size Select to work with a different block size. The default value is 64.
(MB)
Maximum file size Specify the maximum file size of each target file. When the data
reaches the maximum size, the file will be closed and written to
the specified target folder.
Compress files using Select the compression method to use on HDFS.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 375
Table 9.8 | Hadoop Target - Advanced Properties (Cont.)
Setting Description
Note To facilitate rapid delivery of DDL messages, files are uploaded immediately,
regardless of the specified File size reaches or Elapsed time reaches values.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 376
3. The parameter is added to the table below the search box with its default value.
4. Change the default value as required.
5. To reset the parameter value to its default, click the "Restore default value" icon at the
end of the row.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Note The commands described below should be issued under the "Attunity" user or
under the user that was selected during the Replicate installation.
1. Obtain a valid TGT (Ticket-Granting Ticket) from the Kerberos KDC (Key Distribution
Center) but save the TGT to a non-default cache file. Usually, a keytab file is used to
perform non-interactive authentication to Kerberos.
Command Syntax:
kinit -kt [keytab_file] -c [cache_file_name] [principal_name]
2. This step is only required for the global Kerberos ticket file. Set the Kerberos cache
environment variable (for Replicate to use later on).
To set the environment variable:
a. Change the working directory to the Replicate "bin" directory by issuing the
following command (assumes the default installation path):
cd /opt/attunity/replicate/bin
b. Stop the Attunity Replicate Server services on the Linux by running:
/opt/attunity/replicate/bin/areplicate stop
3. Create a file named site_arep_login.sh in the Attunity Replicate bin folder.
a. Add the following command to the file:
export KRB5CCNAME=cache_file_name
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 377
Example:
export KRB5CCNAME=/temp/kerberos/global.ticket
b. Save the file and
c. Start the Attunity Replicate Server services on the Linux by running:
/opt/attunity/replicate/bin/areplicate start
Now, whenever Attunity Replicate needs to use Kerberos authentication, it will perform the
following operations:
When Use global Kerberos ticket file is selected: Replicate will check whether the
KRB5CCNAME environment variable is set and, if so, will use the ticket(s) inside the
cache file specified by the environment variable.
When Use specific Kerberos ticket file is selected:
During design-time (e.g. when selecting tables, testing the connection, etc.),
Replicate will use the ticket(s) inside the cache file specified by the KRB5CCNAME
environment variable.
During runtime, Replicate will use the ticket file specified in the Hadoop endpoint
settings.
Note If the ticket in the cache file expires or becomes invalid, repeating the kinit
command shown in Step 1 above will write a new TGT to the cache file and allow
Attunity Replicate to continue working. This can be done without restarting the
Attunity Replicate Server.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 378
2. In the console tree, expand Local Policies and select User Rights Assignments.
3. In the details pane, double-click Log on as a batch job.
4. In the Log on as a batch job Properties dialog box, on the Local Security
Settings tab, verify that the respective user is listed. If it is not listed, click Add User
or Group, then add the user and click OK.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 379
Your changes should take effect immediately.
To set Kerberos authentication on Windows with MIT Kerberos set in one of the
endpoints:
If MIT Kerberos is set in one of the endpoints, you need to perform the following steps to
allow the Attunity Replicate server process to keep a specific privilege on startup. By
default, Attunity Replicate server drops all privileges on startup. These steps are not
required if you use Active Directory KDC.
1. Open the Windows registry (regedit.exe).
2. Browse to: HKEY_LOCAL_MACHINE\SOFTWARE\Attunity\Attunity
Replicate\Services\AttunityReplicateServer
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 380
3. Modify the PrivilegesKeep string to include the value SeTcbPrivilege.
4. Close the Registry Editor window.
5. Start the Attunity Replicate Server service.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 381
Using Microsoft Azure HDInsight as a Target
This section describes how to set up and use Microsoft Azure HDInsight as the target
endpoint in a replication task.
In this section:
Prerequisites
Limitations
Change Data Partitioning on Microsoft Azure HDInsight
Microsoft Azure HDInsight Endpoint Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Before you begin to work with Microsoft Azure HDInsight as a target in Attunity Replicate,
make sure that the following prerequisites have been met:
General:
The ADLS or Blob storage location (whichever you are using) must be accessible
from the Attunity Replicate machine.
The user specified in the Microsoft Azure HDInsight target endpoint's Hive access
settings must have access to HCatalog.
ODBC Driver when Replicate Server is running on Windows: Microsoft Hive
ODBC driver 2.1.12 or above must be installed on the Attunity Replicate Server
machine.
ODBC Driver when Replicate Server is running on Linux:
1. Install Hortonworks Hive ODBC driver 2.1.2 or above on the Replicate Server
machine.
2. After the driver is installed, edit the hortonworks.hiveodbc.ini file as follows:
DriverManagerEncoding=UTF-16
ODBCInstLib=libodbcinst.so
Permissions: The "Storage account" (when using Blob storage) or "Azure Active
Directory application ID" (when using ADLS) specified in the Microsoft Azure HDInsight
endpoint's Storage settings must have write access to the specified Blob/ADLS
storage target folder.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 382
Limitations
The following limitations apply:
UPDATE/DELETE DMLs are not supported during change processing. If an
UPDATE/DELETE DML was captured on the source, it will be ignored on the target and a
warning will be written to the log. If the Store Changes option is enabled in the task
settings, these records will be written to the Change Table.
Limited LOB support only.
Dropping columns and changing column data types are not supported.
Writing to "special" tables such as tables with partitions, buckets, or skews is not
supported.
The following Control Tables are not supported as they require UPDATE/DELETE
operations (which are not supported by the Microsoft Azure HDInsight target
endpoint):
Replication Status (requires UPDATE).
Name on target: attrep_status
Suspended Tables (requires DELETE).
Name on target: attrep_suspended_tables
For more information on Control Tables, see Control Tables.
Blob storage limitations:
Supported on Windows only
Append operation is not supported
Proxy:
Does not affect the ODBC (Hive) connection. Affects the storage connection only.
When using Blob storage, the HTTPS scheme is not supported
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 383
Microsoft Azure HDInsight Endpoint Target Data Types
The following table shows the Microsoft Azure HDInsight endpoint target data types that
are supported when using Attunity Replicate and the default mapping from Attunity
Replicate data types.
For information on how to view the data type that is mapped from the source, see the
section for the source endpoint you are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 9.9 | Supported Microsoft Azure HDInsight Data Types with Mapping from Attunity
Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 384
Setting General Connection Properties
This section describes how to configure general connection properties. For an explanation
of how to configure advanced connection properties, see Setting Advanced Connection
Properties below.
Note The Blob storage option is not supported when Attunity Replicate is running
on Linux.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 385
Note Due to a Hadoop limitation, the Target folder name can only contain ASCII
characters.
Setting Description
File Format Expand this section to specify or view the file
format settings.
Target storage format Select either Text or Sequence.
Field delimiter The delimiter that will be used to separate fields in the
target file. The default is \001. Note that field delimiters
must be in Octal format (e.g. \247)
Null value The value that will be used to indicate a null value in the
target file. When using the default SerDe
(LazySimpleSerde), setting the null value is supported from
Hive 0.13.
Example (where @ is the null value):
mike,male,295678
sara,female,@
Escape character The escape character is used to escape the field delimiter
character. When a field delimiter is escaped, it is
interpreted as actual data, and not as a field delimiter.
Example (where \ is the escape character and a
comma is the field delimiter):
sunroof\,power-steering
File Attributes Expand this section to specify or view the file
attributes.
Maximum file size Specify the maximum file size of each target file. When the
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 386
Table 9.10 | Microsoft Azure HDInsight Target - Advanced Properties (Cont.)
Setting Description
data reaches the maximum size, the file will be closed and
written to the specified target folder.
Compress files using Select the compression method to use on ADLS/Blob
storage.
Change Processing Expand this section to specify or view change
processing settings.
Apply/Store changes when:
File size reaches Specify the minimum size of the data required to create a
file in idle state.
Elapsed time reaches Specify the maximum time to wait before applying the
changes in idle state.
Note To facilitate rapid delivery of DDL messages, files are uploaded immediately,
regardless of the specified File size reaches or Elapsed time reaches values.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 387
To add internal Attunity Replicate parameters:
1. Click the Internal Parameters link.
The Internal Parameters dialog box opens.
2. In the edit box, type the name of the parameter you need to add and then click it.
3. The parameter is added to the table below the search box with its default value.
4. Change the default value as required.
5. To reset the parameter value to its default, click the "Restore default value" icon at the
end of the row.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 388
Using Amazon EMR as a Target
The following topics describe how to use Amazon EMR as a target endpoint in an Attunity
Replicate task:
Note Hive can be configured to use the AWS Glue Data Catalog as its metastore or its
own metastore. The metastore that will be used depends on your Amazon EMR Cluster
configuration and requires no special configuration from a Replicate perspective.
In this section:
Prerequisites
Limitations
Change Data Partitioning on Amazon EMR
Amazon EMR Endpoint Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Before you begin to work with Amazon EMR as a target in Attunity Replicate, make sure
that the following prerequisites have been met:
General:
The Amazon S3 bucket you are using must be accessible from the Attunity
Replicate machine.
The user specified in the Amazon EMR target endpoint's Hive access settings must
have access to HCatalog.
ODBC Driver when Replicate Server is running on Windows:
Install Amazon Hive ODBC driver 1.1.1.1001 on the Replicate Server machine.
ODBC Driver when Replicate Server is running on Linux:
1. Install Amazon Hive ODBC driver 1.1.1.1001 on the Replicate Server machine.
2. After the driver is installed, edit the amazon.hiveodbc.ini file as follows:
DriverManagerEncoding=UTF-16
ODBCInstLib=libodbcinst.so
Permissions: The Access type selected in the Amazon EMR endpoint's Storage
settings must have write access to the specified bucket folder.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 389
Limitations
The following limitations apply:
UPDATE/DELETE DMLs are not supported during change processing. If an
UPDATE/DELETE DML was captured on the source, it will be ignored on the target and a
warning will be written to the log. If the Store Changes option is enabled in the task
settings, these records will be written to the Change Table.
Limited LOB support only.
Writing to "special" tables such as tables with partitions, buckets, or skews is not
supported.
Dropping columns and changing column data types are not supported.
Replication of Primary Key metadata is not supported.
The following Control Tables are not supported as they require UPDATE/DELETE
operations (which are not supported by the Amazon EMR target endpoint):
Replication Status (requires UPDATE).
Name on target: attrep_status
Suspended Tables (requires DELETE).
Name on target: attrep_suspended_tables
For more information on Control Tables, see Control Tables.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 390
Amazon EMR Endpoint Target Data Types
The following table shows the Amazon EMR endpoint target data types that are supported
when using Attunity Replicate and the default mapping from Attunity Replicate data types.
For information on how to view the data type that is mapped from the source, see the
section for the source endpoint you are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 9.11 | Supported Amazon EMR Data Types with Mapping from Attunity Replicate
Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 391
Setting General Connection Properties
This section describes how to configure general connection properties. For an explanation
of how to configure advanced connection properties, see Setting Advanced Connection
Properties below.
Note Due to a Hadoop limitation, the Target folder name can only contain
ASCII characters.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 392
Server-Side Encryption with AWS KMS-Managed Keys (SSE-KMS)
This option also requires you to specify your KMS Key ID.
For more information on the available sever-side encryption methods, see:
http://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
7. In the Hive Access section:
a. In the Host field, specify the public host name or IP address of the Hive server.
b. In the Port field, optionally change the default port.
c. From the Authentication type drop-down list, choose either Username or
Username and Password and then enter the required information in the
designated fields.
d. To access Hive using SSL, select Use SSL and then specify the full path to a CA
certificate file in PEM format in the CA path field.
e. In the Database field, specify the name of the Hive target database.
Setting Description
File Format Expand this section to specify or view the file format
settings.
Target storage format Select either Text or Sequence.
Field delimiter The delimiter that will be used to separate fields in the target
file. The default is \001. Note that field delimiters must be in
Octal format (e.g. \247)
Null value The value that will be used to indicate a null value in the target
file. The null value is supported from Hive 0.13.
Example (where @ is the null value):
mike,male,295678
sara,female,@
Escape character The escape character is used to escape the field delimiter
character. When a field delimiter is escaped, it is interpreted as
actual data, and not as a field delimiter.
Example (where \ is the escape character and a
comma is the field delimiter):
sunroof\,power-steering
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 393
Table 9.12 | Amazon EMR Target - Advanced Properties (Cont.)
Setting Description
When using Other SerDe: The escape character is used to
escape the quote character.
Example (where \ is the escape character and double
quotes is the quote character):
"\"sunroof, power-steering\""
File Attributes Expand this section to specify or view the file
attributes.
Maximum file size Specify the maximum file size of each target file. When the
data reaches the maximum size, the file will be closed and
written to the specified target folder.
Compress files using Select the compression method to use on Amazon S3 storage.
Change Processing Expand this section to specify or view change
processing settings.
Apply/store changes when:
File size reaches Specify the minimum size of the data required to create a file in
idle state.
Elapsed time reaches Specify the maximum time to wait before applying the changes
in idle state.
Note To facilitate rapid delivery of DDL messages, files are uploaded immediately,
regardless of the specified File size reaches or Elapsed time reaches values.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 394
Table 9.12 | Amazon EMR Target - Advanced Properties (Cont.)
Setting Description
On Linux: Add the CA certificate to /etc/pki/tls/certs/ca-
bundle.crt
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 395
Using Teradata Database as a Target
This section describes how to set up and use Teradata Database as a target in a replication
task.
In this section:
An Overview of the Teradata Database Target
Teradata Database Target Load Options
Database Availability
Required Teradata Database Software, Environments
Providing Access to the Teradata Database
Security Requirements
Teradata Database Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 396
TPT Load Mode
When using the TPT load mode, the TPT LOAD operator uses the Teradata Database
FastLoad protocol to load a large volume of data at high speed into an empty table on the
Teradata Database.
The TPT LOAD operator has some restrictions that include the following:
The target table must be empty.
The target table cannot have secondary indexes defined.
Database Availability
Teradata Database with the tables that are being used for replication must be available to
the system. This can be installed on any computer in your network.
For more information about the requirements for working with Attunity Replicate, see
Installation Prerequisites.
Note Teradata Database must be installed in your network and be reachable from the
computer where Attunity Replicate is installed.
Important: A Replicate task cannot be defined with endpoints that use different ODBC
Driver Managers. Teradata Database target is accessed using the DataDirect ODBC
Driver Manager. With the exception of Oracle, Hadoop, File and Replicate Connect
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 397
sources (which are not subject to the above limitation), all other source endpoints use
the unixODBC Driver Manager.
To configure a task with a unixODBC source and a DataDirect target (e.g. Microsoft SQL
Server to Teradata Database Target), you need to use the Replicate File Channel. For
more information about setting up a task using the File Channel, see Using the Attunity
Replicate File Channel.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 398
Providing Access to the Teradata Database
The Attunity Replicate user who is working with the Teradata Database must be registered
as a user in the Teradata Database. This is the user that is entered in the dialog box when
Setting General Connection Properties. You must grant Teradata Database access to this
user before configuring the database in Attunity Replicate.
Note Make sure that the database name added to the hosts files is the same as the
database specified in the Default database field in the Teradata Database target
database settings.
Security Requirements
A user must have the following privileges granted in the Teradata Database to use a
Teradata Database target in an Attunity Replicate task:
GRANT SELECT ON <database>
GRANT INSERT ON <database>
GRANT DELETE ON <database>
GRANT UPDATE ON <database>
GRANT EXECUTE ON <database>
GRANT EXECUTE FUNCTION ON <database>
GRANT EXECUTE PROCEDURE ON <database>
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 399
GRANT CREATE TABLE ON <database>
GRANT DROP TABLE ON <database>
GRANT CREATE VIEW ON <database>
GRANT DROP VIEW ON <database>
GRANT NONTEMPORAL on <database>
GRANT CHECKPOINT ON <database>
When the Stream TPT Operator is selected (in the Advanced tab), the following
privilege is also required:
GRANT CREATE MACRO ON <database>
Note Teradata Database does not support applying changes to binary data types in
Batch optimized apply mode. For more information on Batch optimized apply
mode, see Change Processing Tuning.
For information on how to view the data type that is mapped from the source, see the
section for the source database you are using. For additional information about Attunity
Replicate data types, see Replicate Data Types.
Table 9.13 | Supported Teradata Database Data Types with Mapping from Attunity
Replicate Data Types
Note
Maximum size
is 640000.
DATE DATE
TIME TIME (P)
Precision is not
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 400
Table 9.13 | Supported Teradata Database Data Types with Mapping from Attunity Rep-
licate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 401
Table 9.13 | Supported Teradata Database Data Types with Mapping from Attunity Rep-
licate Data Types (Cont.)
is 640000.
BLOB VARBYTE
(${MAX_LOB_
SIZE})
MAX_LOB_SIZE is
the maximum LOB
size specified in
Limited-Size LOB
Mode.
CLOB VARCHAR
(${MAX_LOB_
Note By default, Replicate multiplies the value of each varchar SIZE})
column by three, in order to support NLS. For example, a Unicode case-
varchar column with 36 characters in the source database will insensitive
have 108 characters in Teradata Database. This may result in character set.
Teradata Database varcharcolumns being longer than you MAX_LOB_SIZE is
actually need them (and unnecessarily increasing the row size). the maximum LOB
In such cases, you can override the default multiplication factor size specified in
by using the nlsFactor internal parameter. For instructions on Limited-Size LOB
using the nlsFactor parameter, contact Attunity Support. Mode.
NCLOB VARCHAR
See the note in CLOB above. (${MAX_LOB_
SIZE})
Case-insensitive
character set.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 402
Table 9.13 | Supported Teradata Database Data Types with Mapping from Attunity Rep-
licate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 403
required. See Setting Advanced Connection Properties for more information.
This information is case sensitive.
If you want to set custom properties for this database, see Setting Advanced
Connection Properties.
To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
Important: Make sure that the Teradata Database user entered in the Teradata
Database Authentication section has the correct access privileges. For information
on how to provide the required privileges, see Security Requirements.
8. Type the Default database name or select one from the list of available endpoints.
This is the name of the Teradata Database where you are replicating the data to.
For more information, see Teradata Database Target Load Options.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 404
Explicit sessions range: Select this if you want set a minimum and/or maximum
number of sessions that can log on to the Teradata Database.
Maximum: The maximum number of sessions that can log on to the Teradata
Database. The default value is 1. The value cannot be higher than the number of
Access Module Processors (AMPs) available.
Minimum: The minimum number of sessions that can log on to the Teradata
Database.
Dynamic statement packing: Select this check box if you want the stream driver to
dynamically determine the maximum possible pack for the current STREAM job.
Statement packing: Use the counter or type the number of statements that can
be packed into a multiple-statement request (STREAM).
You can enter a value from 2 to 600.
This is available only if Statement packing is not selected.
Additional ODBC connection properties: Type any additional ODBC connection
properties, if required.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 405
Using a PostgreSQL-Based Database as a Target
This section describes how to set up and use a PostgreSQL-based target endpoint in a
replication task.
You need to configure a PostgreSQL-based endpoint when replicating to any of the
following databases:
PostgreSQL
Amazon Aurora (PostgreSQL)
Amazon RDS for PostgreSQL
Microsoft Azure Database for PostgreSQL
In this section:
Prerequisites
Security Requirements
PostgreSQL Database Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
The following section describes the client prerequisites when replicating to a PostgreSQL
target.
Attunity Replicate Server for Windows:
The PostgreSQL ODBC Driver: The PostgreSQL ODBC Driver psqlodbc_09_
03_0300-x64-1 or above must be installed on the Attunity Replicate machine.
pgAdmin: The pgAdmin Open Source administration and development platform
for PostgreSQL must be installed on the Attunity Replicate machine.
Note If PgAdmin and the Greenplum client are installed on the same
Replicate Server, tasks configured to use a PostgreSQL target will fail.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 406
For example, postgresql94-9.4.4-1PGDG.rhel7.x86_64.rpm is the package
required for Red Hat 7.
Install unixODBC driver postgresql94-odbc-09.03.0400-1PGDG.<OS
version>.x86_64 or above for Linux, where <OS version> is the OS of the
Replicate Server machine.
For example, postgresql94-odbc-09.03.0400-1PGDG.<rhel7>.x86_64 is the
client required for Red Hat 7.
Makes sure that the /etc/odbcinst.ini file contains an entry for PostgreSQL, as
in the following example:
[PostgreSQL]
Description = PostgreSQL ODBC driver
Driver = /usr/lib/odbc/psqlodbca.so
Setup = /usr/lib/odbc/libodbcpsqlS.so
Debug = 0
CommLog = 1
UsageCount = 2
Security Requirements
The user specified in the General tab when Setting General Connection Properties must be
a registered user in the PostgreSQL database.
Table 9.14 | Supported PostgreSQL database Data Types with Mapping from Attunity
Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 407
Table 9.14 | Supported PostgreSQL database Data Types with Mapping from Attunity
Replicate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 408
Data Types when Replicating from a PostgreSQL Source
When replicating from a PostgreSQL source, the target table will be created with the same
data types for all columns, apart from columns with user-defined data types. In such
cases, the data type will be created as "character varying" in the target.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 409
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
Important: Make sure that the specified PostgreSQL database user has the correct
access privileges.
9. Type the Database name or select one from the list of available endpoints. This is
the name of the PostgreSQL database to which you are replicating data.
10. Click OK to save your settings and close the dialog box.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 410
Using a File as a Target
This section describes how to set up and use delimited text files as a target in a replication
task. You can use the File target endpoint to export database tables to files, which can then
be used as a source in a Replicate task with a File source endpoint.
In this section:
File Target Overview
Limitations
Change Data Partitioning
File Target Data Types
Setting General Properties
Setting Advanced Connection Properties
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 411
{ "book_id": 789, "title": "Rise Up", "price": 7.23, "is_hardcover": true }
When using a File as a target in a Replicate task, both the Full Load and the CDC data are
written to CSV or JSON files (depending on the endpoint settings). While the explanations
in this topic relate to CSV files, the same is true for JSON files.
Full Load files are named using incremental counters e.g. LOAD00001.csv, LOAD
00002.csv, etc. whereas Apply Changes files are named using timestamps e.g. 20141029-
1134010000.csv.
Note When Parallel Load is used, the naming convention for Full Load files is slightly
different:
LOAD_$(SegmenteID)_$(IncreasingCounter)
Example:
LOAD_1_00000001 | LOAD_1_00000002 | LOAD_1_00000003 | LOAD_2_00000001 |
LOAD_2_00000002
Note
The Apply Changes CSV files appear with a .tmp extension while they are in idle
state. For more information on idle state, see Change Processing.
When the Create metadata files in the target folder option is enabled, a
corresponding metadata file is created using the same naming format, but with a
.dfm extension.
For each source table, a folder is created under the specified target folder. All files - i.e.
Full Load, Apply Changes, and Metadata (if enabled) - are written to the relevant folder,
according to the settings defined in the File target’s General tab.
After a task completes, you can define another task with a File source endpoint that uses
the generated CSV files.
DDL Handling
When a DDL change is captured, Replicate will close the data file and also create a DFM file
if the Create metadata files in the target folder option is enabled. When the next
batch of changes arrives, Replicate will create a new data file containing the changes. Note
that the DFM file created for the new data file will match the new table structure.
Limitations
The following limitations apply to the File target endpoint:
Only the following DDLs are supported: Truncate table, Drop table, Create table, Add
Column, Rename Column, Drop Column, and Convert Data Type.
Full LOB Mode is not supported
UPDATE and DELETE statements are not supported in Apply Changes replication mode
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 412
Batch Optimized Apply mode is not supported
Target lookup is not supported
The <target folder> parameter cannot include special characters
When the When source table is altered Apply Changes setting is set to Ignore
ALTER, data files will be updated, but metadata files and metadata headers (if defined)
will not.
{Target Directory}
{Table_1}
{Partition_1}
Data files
DFM files
{Partition_2}
Data files
DFM files
{Partition_3}
Data files
DFM files
{Table_2}
{Partition_1}
Data files
DFM files
{Partition_2}
Data files
DFM files
{Partition_3}
Data files
DFM files
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 413
File Target Data Types
The following table shows the default mapping from Attunity Replicate data types to File
target data types. Note that the data type mapping is only relevant if the Create metadata
files in the target folder option is enabled.
For information on source data type mappings, see the section for the source endpoint you
are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 9.15 | Supported File Target Data Types with Mapping from Attunity Replicate
Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 414
Setting General Properties
This section describes how to configure general properties. For an explanation of how to
configure advanced properties, see Setting Advanced Properties below.
Option Description
File Format
Delimiters can be standard characters or a hexadecimal (hex) value. Note that the "0x"
prefix must be used to denote a hexadecimal delimiter (e.g. 0x01 = SOH). In the Field
delimiter, Record delimiter and Null value fields, the delimiter can consist of
concatenated hex values (e.g. 0x0102 = SOHSTX), whereas in the Quote character and
Escape character fields, it can only be a single hex value.
Note The hexadecimal number 0x00 is not supported (i.e. only 0x01-0xFF are
supported).
Format You can choose to create the target files in CSV or JSON format.
In a JSON file, each record is represented by a single line, as in the
following example:
{ "book_id": 123, "title": "Alice in Wonderland", "price": 6.99, "is_hardcover": false }
{ "book_id": 456, "title": "Winnie the Pooh", "price": 6.49, "is_hardcover": true }
{ "book_id": 789, "title": "The Cat in the Hat", "price": 7.23, "is_hardcover": true }
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 415
Table 9.16 | File Target Endpoint - General Tab Options (Cont.)
Option Description
Field delimiter The delimiter that will be used to separate fields (columns) in the
target files. The default is a comma.
Example using a comma as a delimiter:
"mike","male"
Record delimiter The delimiter that will be used to separate records (rows) in the target
files. The default is a newline (\n).
Example:
"mike","male"\n
"sara","female"\n
Null value The string that will be used to indicate a null value in the target files.
Example (where \n is the record delimiter and @ is the null
value):
"mike","male",295678\n
"sara","female",@\n
Quote character The character that will be used at the beginning and end of a text
column. The default is the double-quote character ("). When a column
that contains column delimiters is enclosed in double-quotes, the
column delimiter characters are interpreted as actual data, and not as
column delimiters.
Example (where a @ is the quote character):
@mike@,@male@
Escape character The character used to escape a quote character in the actual data.
Example (where" is the quote character and \ is the escape
character):
1955,"old, \"rare\", Chevrolet","$1000"
Code page Specify the code page of your target files if it is different from the
default (65001).
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 416
Table 9.16 | File Target Endpoint - General Tab Options (Cont.)
Option Description
conventions. The specified code page must comply with the code
page convention of the source file system.
Add metadata You can optionally add a header row to the data files. The header row
header can contain the source column names and/or the intermediate (i.e.
Replicate) data types.
Example of a target file with a header row when both With column
names and With data types are selected:
Position:DECIMAL(38,0),Color:VARCHAR(10)
1,"BLUE"
2,"BROWN"
3,"RED"
...
File Attributes
Maximum file The maximum size a file can reach before it is closed (and optionally
size compressed). This value applies both to data files and to Reference
Files.
For information on generating reference files, see Generating
Reference Files.
Compress files Choose GZIP to compress the target files or NONE (the default) to
using leave them uncompressed.
Change Processing
Consider state Specify how long to wait before considering the state to be idle. In idle
idle when no state, you can apply changes to files using data that has already been
changes have processed if the specified size and time conditions are met (see
been processed below).
for
File size reaches Specify the maximum size of the data required in order to apply
changes to the target file in idle state.
Elapsed time Specify the maximum time to wait before applying the changes in idle
reaches state.
Allow a single By default, a single transaction will not be split across multiple files,
transaction to be regardless of the values specified in the File size reaches and
split into Elapsed time reaches fields. This is important for organizations who
multiple files require files to contain transactions in their entirety. However, this
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 417
Table 9.16 | File Target Endpoint - General Tab Options (Cont.)
Option Description
may also result in very large file sizes. For example, if the File size
reaches value is 32 MB and Replicate starts to apply changes for a
new 2 GB transaction at 31 MB, the target file will only be closed at
2.031 GB.
You should therefore select this option if it is critical that the values in
the File size reaches and Elapsed time reaches fields are adhered
to (even if it means splitting a transaction across multiple files).
Metadata Files
Create metadata When this option is selected, for each data file, a matching metadata
files in the target file with a .dfm extension will be created under the specified target
folder folder. The metadata files (which are in standard JSON format) provide
additional information about the task/data such as the source endpoint
type, the source table name, the number of records in the data file,
and so on.
For a full description of the metadata file as well as possible uses, see
Metadata File Description .
Note To determine if you are connected to the endpoint you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the connection fails,
an error message is displayed at the bottom of the dialog box.
To view the log entry if the connection fails, click View Log. The server log is displayed
with the information for the connection failure. Note that this button is not available
unless the test connection fails.
Option Description
Generate Select this option to generate a Reference File containing the full path to the
reference Apply Changes data files.
files
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 418
Table 9.17 | File Target Endpoint - Advanced Tab Options (Cont.)
Option Description
Note The reference file only points to the location of the Apply Changes
files, and not the Full Load files.
Note Multiple tasks with file target endpoints that have the same target
directory are not supported (as each task will attempt to write to the same
reference file).
Example:
c:\temp\
Post- You can process the final target files using a custom command. The
process command will be run whenever a data file is created.
files
Note If the Generate a reference file option is selected, a row
(specifying the file's location) will be added to the Reference File only
after the command completes successfully.
Note If the CSV/DFM file paths contain spaces, you must enclose
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 419
Table 9.17 | File Target Endpoint - Advanced Tab Options (Cont.)
Option Description
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 420
Internal Parameters
Internal parameters are parameters that are not exposed in the UI and should only be used
if instructed by Attunity Support.
Settings Summary
You can view a summary of your setting by clicking the View Setting Summary link. This is
useful if you need to send a summary of your setting to Attunity Support.
Example:
FileTarget00000001.csv
Note The counter suffix increases incrementally each time a new Reference File is
generated (i.e. when the file reaches the maximum size defined in the General tab).
Once a new Reference File has been generated, you can delete the old reference file(s)
if required.
Whenever an Apply Changes data file is created, a new row is added to the Reference File
in the following format:
<Source_Table_Name>,<full_path_to_data_file>
Example:
MyTable,c:\temp\filetarget\dbo.MyTable\20170102-091759447.csv
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 421
Note that if the Post-process files option in the Advanced tab is also enabled, the
Reference File will be generated after the post-processing completes.
Note
When both the Post-process files and the Delete files (after post-processing
completes) options are enabled, the reference file will not be generated.
If the Archive files to folder (after post-processing completes) option is
selected, the reference file will be updated to reflect the archive location of the
data files.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 422
Using SAP Sybase IQ as a Target
This section describes how to set up and use a SAP Sybase IQ database as a target
database in a replication task.
In this section:
Prerequisites
Limitations
Security Requirements
SAP Sybase IQ Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Make sure the following prerequisites have been met:
Attunity Replicate is installed on any Windows computer in your network.
A Sybase account with the required access privileges exists.
SAP Sybase IQ 64-bit ODBC client installed on the computer where Attunity Replicate
is located.
Limitations
The following limitations apply:
Full LOB mode is not supported.
Replication of LOBs during Change Processing is not supported in Bulk Apply mode
(LOB values are replicated to NULL).
Security Requirements
You must provide SAP Sybase IQ account access to the Attunity Replicate user. This user
must have read/write privileges in the SAP Sybase IQ database.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 423
Note SAP Sybase IQ does not support applying changes to binary data types in Batch
optimized apply mode. For more information on Batch optimized apply mode, see
Change Processing Tuning.
For information on how to view the data type that is mapped from the source, see the
section for the source database you are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 9.18 | Supported SAP Sybase IQ Data Types with Mapping from Attunity Replicate
Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 424
Table 9.18 | Supported SAP Sybase IQ Data Types with Mapping from Attunity Replicate
Data Types (Cont.)
Note The SAP Sybase IQ database requires a special license to support LOBs.
BLOB BLOB
CLOB CLOB
NCLOB CLOB
Note
Sybase can also be used as a source database. For information on using Sybase as
a source, see Using SAP Sybase ASE as a Target.
You can also use Sybase files as a source or target. For more information, see
Using the Attunity Replicate File Channel.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 425
Note
This information is required. If you are using the Advanced tab to create a
custom string, make sure to include the User Name and Password
properties. See Setting Advanced Connection Properties for more information.
This information is case sensitive.
If you want to set custom properties for this database, see Setting Advanced
Connection Properties.
Important: Make sure that the Sybase user entered in the Sybase Authentication
section has the correct access privileges. For information on how to provide the
required privileges, see Security Requirements.
10. In the database field, enter the name of the SAP Sybase IQ database.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 426
5. To reset the parameter value to its default, click the "Restore default value" icon at the
end of the row.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 427
Using SAP HANA as a Target
This section describes how to set up and use a SAP HANA database as a target database in
a replication task.
In this section:
Prerequisites
Permissions
Supported Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Windows: Install the SAP HANA ODBC 64-bit Driver 2.x for Windows on the Replicate
Server machine. The driver name is HDBODBC.
Linux: Install the SAP HANA ODBC 64-bit Driver 2.x for Linux on the Replicate Server
machine. The driver name is HDBODBC.
Add the following section to the odbcinst.ini file located in directory /etc:
[HDBODBC]
Description=64-bit HANA ODBC Driver
Driver=/opt/sap/hdbclient/libodbcHDB.so
fileUsage=1
Permissions
The user specified in the SAP HANA endpoint settings must be granted the following
permissions:
CREATE TABLES
ALTER
SELECT
INSERT
DELETE
DROP
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 428
For information on how to view the data type that is mapped from the source, see the
section for the source database you are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 9.19 | Supported SAP HANA Data Types with Mapping from Attunity Replicate Data
Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 429
To add a SAP HANA target endpoint to Attunity Replicate:
1. In the Attunity Replicate console, click Manage Endpoint Connections to open the
Manage Endpoints Connections dialog box.
2. In the Name field, type a name for your database. This can be any name that will help
to identify the database being used.
3. In the Description field, optionally enter a description that helps to identify the SAP
HANA database.
4. Select Target as the database role.
You can do this step before any of the other steps if you want, however before you can
continue with the next step in this process, you must select the database role.
5. Select SAP HANA as the database Type.
6. In the Instance field, enter the instance number of the target SAP HANA database.
7. Enter the Username and Password required to access the SAP HANA database. If
you do not know this information, see your SAP HANA database administrator (DBA).
8. Click Test Connection to verify that the specified settings are correct.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 430
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 431
Using Pivotal Greenplum as a Target
This section describes how to set up and use a Pivotal Greenplum database as a target in a
replication task.
In this section:
An Overview of the Pivotal Greenplum Target
Attunity Replicate Pivotal Greenplum Endpoint Architecture Overview
Full Load
Applying Changes to the Pivotal Greenplum Target
Required Pivotal Greenplum Software, Environments
Provide Pivotal Greenplum Account Access
Security Requirements
Limitations
Pivotal Greenplum Data Types
Setting up the gpfdist Program as a Service
Using Multiple gpfdist Programs
Setting General Connection Properties
Setting Advanced Connection Properties
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 432
Pivotal Greenplum ODBC API. This is used for metadata management. The Pivotal
Greenplum ODBC API lets Attunity Replicate test the database connection, get the
table list and the table schema, build procedures that create external tables to process
a file, and invoke the procedures that load the destination table or apply changes from
the external table. During the schema generation, data types can be mapped, such as
Pivotal Greenplum to Postgres. Primary keys and distribution clauses are generated
based on the primary key.
Pivotal Greenplum Parallel File Distribution Server (gpfdist). This utility is
used with read-only external tables for fast, parallel data loading into a Pivotal
Greenplum data warehouse. gpfdist uses maximum parallelism while reading from
external tables.
Attunity Replicate works closely with gpfdist to take advantage of its optimized fast,
parallel loading facilities. Attunity Replicate uses the Pivotal Greenplum Parallel File
Distribution Server to support both full load and incremental load activities.
See Attunity Replicate Pivotal Greenplum Endpoint Architecture Overview for a description
of the system architecture used with the Pivotal Greenplum database.
Full Load
Full load is used to setup or refresh a data warehouse on a target, by concurrently loading
large amounts of data from source tables. High-speed data extraction is initiated from
endpoints like Oracle or Microsoft SQL Server, then gpfdist and buffered load files are used
for high-speed data loading into Pivotal Greenplum. The following shows the Pivotal
Greenplum database architecture for full load.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 433
Figure 9.1 | Pivotal Greenplum database Full Load
CDC
For incremental load, Attunity Replicate uses log-based change data capture (CDC). During
CDC replication, Attunity Replicate creates external Web tables or external tables to load
SQL statements into the target Pivotal Greenplum database. The statements are then
applied to the target tables. The following shows the Pivotal Greenplum database
architecture for CDC.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 434
Full Load
On the first run of a task the Pivotal Greenplum target writes the data being replicated to
CSV files into a folder that is defined for the task. The CSV files are named sequentially, for
example, loadNNNN, where NNNN is an incremental number starting from 0. The
maximum file size of the CSV file is set by the user when configuring the Pivotal
Greenplum database.
When the CSV file reaches its maximum size it is renamed and moved into a load folder. It
is then read by the gpfdist utility, which executes an SQL statement that loads the data into
the target table. Once the file loading is complete, the file is deleted.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 435
Windows Pivotal Greenplum Required Software
You must install the following on the same computer where the Attunity Replicate Server is
installed:
Pivotal Greenplum Client Tools 4.2.x
Pivotal Greenplum Connectivity Tools 4.2.x
Pivotal Greenplum Loaders 4.2.x (This will install the gpfdist program)
Pivotal Greenplum DataDirect ODBC Drivers Version 7.x (only).
You can download the ODBC drivers from emc.subscribenet.com.
Important: To prevent errors during replication tasks, make sure that the Pivotal
Greenplum ODBC driver has a valid license.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 436
Greenplum account access to this user before configuring the database in Attunity
Replicate.
Note One of the Attunity Replicate computer network cards must be part of the Pivotal
Greenplum database segments network to allow communication with the gpfdist
program.
See Required Pivotal Greenplum Configuration and Environment for additional information
about connecting to and configuring a Pivotal Greenplum database to work with Attunity
Replicate.
Security Requirements
A user must have the following privileges granted in the Pivotal Greenplum database to use
a Pivotal Greenplum target in an Attunity Replicate task:
CREATE table/external table/Web external table
TRUNCATE table
ALTER table
INSERT/UPDATE/DELETE
Limitations
Attunity Replicate cannot update columns that are part of the distribution key.
The Pivotal Greenplum target database has limited LOB support. You cannot use an
unlimited LOB size for this database. For more information, see Pivotal Greenplum Data
Types.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 437
Table 9.20 | Supported Pivotal Greenplum Data Types with Mapping from Attunity
Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 438
Table 9.20 | Supported Pivotal Greenplum Data Types with Mapping from Attunity Rep-
licate Data Types (Cont.)
Note If you want to use multiple gpfdist programs, then you should set them up on
different ports. See Using Multiple gpfdist Programs.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 439
Note The Pivotal Greenplum database that you use in this command must be
configured in Attunity Replicate. If you have defined more than one Pivotal
Greenplum database, you can use any of the database names. All of the defined
endpoints on the same Attunity Replicate instance are included in the defined
service.
3. Start the service before you run any Pivotal Greenplum tasks by typing the following
at the command line prompt:
sc start AttunityReplicateServer_<name of database you defined the
service with>
Note If you chose to create a data folder in a separate location from where you
installed Attunity Replicate, you must add the prefix -d <path to data
folder> before any command line task described in this section. For example, to
start the service you must type:
-d < path to data folder> sc start AttunityReplicateServer_<name of
database>
Working with a data folder in a different location is recommended when working
with large Pivotal Greenplum endpoints. For more information, see Attunity
Replicate on Windows: Installing, Upgrading and Uninstalling.
Note A log file is available in the Attunity Replicate data folder and in the Pivotal
Greenplum debug files, which is accessed through the Pivotal Greenplum database
console.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 440
program as a service. For more information, see Setting up the gpfdist Program as a
Service.
Note Although the gpfdist program acts as a Webserver, it does not carry out
security checks on any requests made to it. Therefore, when you define the path to
the gpfdist program, it must be to a specific location so that no other data on the
computer is accessed.
You can use the Advanced tab to add specific properties and create a custom
connect string. In this case, you do not need to enter information in this tab. For
more information on using the Advanced tab, see Setting Advanced Connection
Properties.
8. Type the Pivotal Greenplum database Port, where the Pivotal Greenplum instance you
are working with is located. The default value is 5432.
9. Type the Pivotal Greenplum authentication information (User Name, Password) for
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 441
the authorized user for this Pivotal Greenplum database. If you do not know this
information, see your Pivotal Greenplum system manager.
Note
If you are using the Advanced tab to create a custom string, make sure to
include the User Name property. A Password can also be included but is not
required. See Setting Advanced Connection Properties for more information.
This information is case sensitive.
If you want to set custom properties for this database, see Setting Advanced
Connection Properties.
To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
Important: Make sure that the Pivotal Greenplum user entered in the Pivotal
Greenplum Authentication section has the correct access privileges. For
information on how to provide the required privileges, see Security Requirements.
10. Type the Database name or select one from the list of available databases. This is
the name of the Pivotal Greenplum database where you are replicating the data to.
11. Type the gpfdist hostname for the server where the gpfdist program is installed.
12. Type the gpfdist port number where the gpfdist program is listening. The default
value is 8080.
13. In the Security section:
a. To enable SSL, select the Use SSL check box.
b. In the CA Path, specify the folder containing the certificate required to execute
gpfdist.
c. In the Public key file field, specify the full path of the public key file (i.e.
including the file name). The file can reside in the same folder as the CA
certificate.
d. In the Private key file field, specify the full path of the private key file (i.e.
including the file name). The file can reside in the same folder as the CA
certificate.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 442
Setting Advanced Connection Properties
In the Advanced tab, you can set the following parameters:
gpfdist max row length: Select or type the maximum length of a row (number of
characters) in the CSV file that is sent to the gpfdist program. This is the maximum
row length read by gpfdist. The default value is 32,768. The larger the size of the rows
the more resources the gpfdist program uses.
Create tables in tablespace: Type the name of the tablespace where you want
create the target tables. This is optional. Note that the tablespace that you enter must
exist in the Pivotal Greenplum database.
Max file size (KB): Select or type the maximum size (in KB) of a CSV file before the
file is moved into the load folder. The default value is 32000 KB.
Write buffer size: (KB): Select or type the maximum amount of memory (in
Kilobytes) used to store the data before moving it to the load folder. The default value
is 1001.
ODBC driver: Type the name of the ODBC driver you are using to connect to the
Pivotal Greenplum database you are working with. The default value is DataDirect
7.0 Pivotal Greenplum Wire Protocol.
Additional ODBC connection properties: Type any additional ODBC connection
properties if required
Use externally managed gpfdist: Select this check box to use an external gpfdist
with this Pivotal Greenplum database.
Storage folder: Type the name and location (enter full path) of the folder that holds
the CSV files for loading. This is available only if you are using an externally managed
gpfdist.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 443
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 444
Using Actian Vector as a Target
This section describes how to set up and use an Actian Vector database as a target in a
replication task.
In this section:
Prerequisites
Limitations
Permissions
Actian Vector Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
An Actian Vector database with the tables that are being used for replication must be
available to the system. Attunity Replicate supports using an Actian Vector database on
both Windows and Linux.
Actian Vector 3.0 must be installed on the same machine as Attunity Replicate Server.
From Actian Vector 3.5, with the addition of remote load support, Replicate and Actian
Vector do not need to be installed on the same machine. When Actian Vector is installed on
a remote machine (i.e. not on the Replicate machine), Client Runtime 3.5.1 or above for
Linux/Windows needs to be installed on the Replicate machine.
For more information about the requirements for working with Attunity Replicate, see
Installation Prerequisites.
The following sections describe the prerequisites necessary to prepare your environment
to work with Attunity Replicate and an Actian Vector database:
Actian Vector Windows Environment Prerequisites
Actian Vector Linux Environment Prerequisites
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 445
Actian Vector Linux Environment Prerequisites
You must install the following:
Be sure to configure the Ingres ODBC driver. This driver supports unixODBC and is
included in the Actian Vector database installation. unixODBC is built in to most Linux
distributions.
Linux releases of Ingres include the ODBC CLI. The CLI is an ODBC manager/library
that is built specifically for Ingres. The CLI is installed on Linux platforms at the same
time as the ODBC driver. The CLI allows ODBC applications to be developed and
deployed without the need to manage or use unixODBC. Use the iiodbcadmin tool to
manage DSN definitions (or use a connection string that specifies the database name).
IIodbcadmin can be used with either unixODBC or CLI applications. For information on
configuring the ODBC driver, go to the following page on the Actian Web site:
http://community.actian.com/wiki/Ingres_UNIX_ODBC.
Limitations
The following DDL operations cannot be made to the Actian Vector database using Attunity
Replicate:
Change schema name
Change column type
The replication task fails when applying DDL changes that were initiated in source but not
supported on target.
Permissions
The Attunity Replicate user who is working with the Actian Vector database must be
registered as a user in the Actian Vector database. This is the user that is entered in the
dialog box when Setting General Connection Properties. You must grant Actian Vector
account access to this user before confiding the database in Attunity Replicate.
Note Actian Vector does not support applying changes to binary data types in Batch
optimized apply mode. For more information on Batch optimized apply mode, see
Change Processing Tuning.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 446
For information on how to view the data type that is mapped from the source, see the
section for the source database you are using. For additional information about Attunity
Replicate data types, see Replicate Data Types.
Table 9.21 | Supported Actian Vector Data Types with Mapping from Attunity Replicate
Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 447
Table 9.21 | Supported Actian Vector Data Types with Mapping from Attunity Replicate
Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 448
To add an Actian Vector target endpoint to Attunity Replicate:
1. In Tasks view, click Manage Endpoint Connections to open the Manage
Endpoints Connections dialog box. Then click the New Endpoint Connection
button.
2. In the Name field, type a name for your database. This can be any name that will help
to identify the database being used.
3. In the Description field, type a description that helps to identify the Greenplum
database. This is optional.
4. Select TARGET as the database role.
5. Select Actian Vector Target as the database Type.
6. In the Server field, enter the hostname or IP address of the machine on which the
Actian Vector database is installed.
Note You can use the Advanced tab to add specific properties and create a
custom connect string. In this case, you do not need to enter information in this
tab. For more information on using the Advanced tab, see Setting Advanced
Connection Properties.
7. Type the Actian Vector authentication information (User name, Password) for the
authorized user for this Actian Vector database. If you do not know this information,
see your Actian Vector system manager.
Note
If you are using the Advanced tab to create a custom string, make sure to
include the User Name property. A Password can also be included but is not
required. See Setting Advanced Connection Properties for more information.
This information is case sensitive.
If you want to set custom properties for this database, see Setting Advanced
Connection Properties.
To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 449
Setting Advanced Connection Properties
In the Advanced tab, you can set the following parameters:
Max file size (KB): Select or type the maximum file size. When the Actian Vector file
reaches this value, the data is loaded by the vmload utility. The default value is
300000 KB.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 450
Using Amazon Redshift as a Target
This section describes how to set up and use Amazon Redshift as a target in a replication
task. Amazon Redshift is located in the cloud and is accessed through an Amazon Web
Services (AWS) account.
In this section:
Introducing the Amazon Redshift Target Endpoint for Attunity Replicate
Limitations
Amazon Redshift Database Prerequisites
Amazon Redshift Data Types
Setting General Connection Parameters
Setting Advanced Connection Properties
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 451
Limitations
The following limitations apply to the Amazon Target endpoint:
The ALTER TABLE <NAME> MODIFY COLUMN <NAME> <DATA_TYPE> DDL is not
supported.
Applying a DELETE statement to a table with a multi-column primary key is not
supported if any of the primary key column names is a reserved word (e.g. "tag").
For a list of reserved Amazon Redshift words, see
http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 452
Note To avoid conflicts when installing the driver on a Linux machine, Attunity
Replicate must be installed before you install the driver. Install the Amazon
Redshift ODBC driver with --force in the command, as in the following example:
rpm -ivh AmazonRedshiftODBC-64bit-1.2.6.1006-1.x86_64.rpm --force
Once the driver is installed, edit the amazon.redshiftodbc.ini file as follows:
DriverManagerEncoding=UTF-16
ODBCInstLib=libodbcinst.so
For information on signing up for an Amazon Web Services account, launching an Amazon
Redshift cluster, and installing the client tools, see the Amazon Redshift Getting Started
page at http://docs.aws.amazon.com.
For information on how to view the data type that is mapped from the source, see the
section for the source database you are using. For additional information about Attunity
Replicate data types, see Replicate Data Types.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 453
Table 9.22 | Supported Amazon Redshift Data Types with Mapping from Attunity
Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 454
Table 9.22 | Supported Amazon Redshift Data Types with Mapping from Attunity Rep-
licate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 455
Redshift cluster: Type the name of the Amazon Redshift cluster you are using.
Port: Type the port number for Amazon Redshift.
User name: Type an Amazon Redshift user name for a registered user.
Password: Type the password for the user entered in the User name field.
Database name: Type the database name or select one from the list of
available Amazon Redshift data warehouse [services].
The information for these properties is available from the account page for Amazon
Web Services (AWS) with the Amazon Redshift cluster. If you do not have these
values, refer to your AWS account or the Amazon Redshift System Administrator for
your enterprise.
8. Enter the following Amazon S3 staging information. You may need to click the
Amazon S3 staging header to see the information.
Bucket name: Type the name of the Amazon S3 bucket where you are copying
files to.
Bucket region: Select the Amazon S3 region where the S3 buckets and folders
you are using are hosted. The default value is US East (N. Virginia).
Note: The bucket region specified must be the same region where your Amazon
Redshift database is located.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 456
against ADFS.
The format should be: user.name@domain
AD principal password: The principal password to use when
identifying against ADFS
IdP ARN: The Amazon Resource Name (ARN) of the Active Directory
issuing the SAML claims document. This is required as it enables AWS
to identify the signer of the SAML document and verify its signature.
Role ARN: The Amazon Resource Name (ARN) of the specific role the
returned credentials should be assigned.
For more information about this access option, see:
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_
saml.html
Folder: The name of the Amazon S3 folder to where you want your files to be
copied.
The information for these properties is available from your Amazon Web Services
(AWS) account. If you do not have these values, refer to your AWS account or the
Amazon Redshift System Administrator for your enterprise
Note
This information is case sensitive.
To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the connection
fails, an error message is displayed at the bottom of the dialog box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button is
not available unless the test connection fails.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 457
Use proxy server: Select this option to access Amazon Redshift via a proxy server.
Host name: The host name of the proxy server.
Port: The port via which to access the proxy server.
User name: The user name for accessing the proxy server.
Password: The password for accessing the proxy server.
Scheme:
Select which protocol to use to access the server (HTTP or HTTPS). In order to
use HTTPS, you must first install the CA certificate that signed the proxy’s
certificate on the Replicate Server machine, as follows:
On Windows: Add the CA certificate to the Trusted Root Certification
Authorities store of Local Computer
On Linux: Add the CA certificate to /etc/pki/tls/certs/ca-bundle.crt
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 458
Using Amazon S3 as a Target
This chapter describes how to set up and use Amazon S3 as a target in a replication task.
In this section:
Prerequisites
Amazon S3 Target Overview
Limitations
Change Data Partitioning
Amazon S3 Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Generating Reference Files
Content-Type and Content-Encoding Properties
Prerequisites
Before you can use Amazon S3 as a target endpoint in a Replicate task, the following
prerequisites must be met:
The Attunity Replicate Server machine must be set to the correct time (UTC).
You must have an Amazon S3 bucket that is accessible from the Replicate Server
machine.
For information on signing up for Amazon S3, see http://aws.amazon.com/s3/.
Bucket access credentials: Make a note of the bucket name, region, access key
and secret access key - you will need to provide them in the Attunity Replicate Amazon
S3 target settings.
Bucket access permissions: Attunity Replicate requires the following bucket access
permissions:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1497347821000",
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 459
"arn:aws:s3:::YOUR_BUCKET_NAME"
]
},
{
"Sid": "Stmt1497344984000",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::YOUR_BUCKET_NAME/target_path",
"arn:aws:s3:::YOUR_BUCKET_NAME/target_path/*"
]
}
]
}
Where YOUR_BUCKET_NAME is the name of your bucket and target_path is the intended
location of the target files in your bucket.
Note If the target path is the bucket root, just specify “/target_path” with an empty
string.
Note When Parallel Load is used, the naming convention for Full Load files is slightly
different:
LOAD_$(SegmenteID)_$(IncreasingCounter)
Example:
LOAD_1_00000001 | LOAD_1_00000002 | LOAD_1_00000003 | LOAD_2_00000001 |
LOAD_2_00000002
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 460
Note When the Create metadata files in the target folder option is enabled, a
corresponding metadata file is created using the same naming format, but with a .dfm
extension.
For each source table, a folder is created in the specified Amazon S3 bucket. The data files
are created on the Replicate Server machine and are then uploaded to the specified
Amazon S3 bucket once the File Attributes (Full Load) and Change Processing upload
conditions have been met.
DDL Handling
When a DDL change is captured, Replicate will close the data file and also create a DFM file
if the Create metadata files in the target folder option is enabled. When the next
batch of changes arrives, Replicate will create a new data file containing the changes. Note
that the DFM file created for the new data file will match the new table structure.
Limitations
The following limitations apply to the Amazon S3 target endpoint:
Only the following DDLs are supported: Truncate table, Drop table, Create table, Add
Column, Rename Column, Drop Column, and Convert Data Type.
Full LOB Mode is not supported
UPDATE and DELETE statements are not supported in Apply Changes replication mode
Batch Optimized Apply mode is not supported
Target lookup is not supported
The <target folder> parameter cannot include special characters
{Target Directory}
{Table_1}
{Partition_1}
Data files
DFM files
{Partition_2}
Data files
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 461
DFM files
{Partition_3}
Data files
DFM files
{Table_2}
{Partition_1}
Data files
DFM files
{Partition_2}
Data files
DFM files
{Partition_3}
Data files
DFM files
For information on source data type mappings, see the section for the source endpoint you
are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 9.23 | Supported Amazon S3 Target Data Types with Mapping from Attunity
Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 462
Table 9.23 | Supported Amazon S3 Target Data Types with Mapping from Attunity Rep-
licate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 463
Table 9.24 | Amazon S3 Target Endpoint - General Tab Options
Option Description
Amazon S3 Storage
Bucket name Enter the name of your Amazon S3 bucket.
Bucket region Select the Amazon S3 region where your bucket is located.
Access options Choose one of the following:
Key pair
Choose this method to authenticate with your Access Key and Secret
Key.
IAM Roles for EC2.
Choose this method if the machine on which Attunity Replicate is
installed is configured to authenticate itself using an IAM role.
For more information about this access option, see:
http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
Security Token Service (STS)
Choose this method to authenticate using SAML 2.0 with Active
Directory Federation Services.
For more information about this access option, see:
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_
providers_saml.html
When Key pair is the access option:
Access key Enter the access key information for Amazon S3.
Secret key Enter the secret key information for Amazon S3.
When Security Token Service (STS) is the access option:
ADFS URL The URL to an Active Directory Federation Services page, responsible for
returning a SAML claims document to be sent over to AWS.
AD principal The principal (user) name to use when identifying against ADFS
name The format should be: user.name@domain
AD principal The principal password to use when identifying against ADFS
password
IdP ARN The Amazon Resource Name (ARN) of the Active Directory issuing the
SAML claims document. This is required as it enables AWS to identify the
signer of the SAML document and verify its signature.
Role ARN The Amazon Resource Name (ARN) of the specific role the returned cre-
dentials should be assigned.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 464
Table 9.24 | Amazon S3 Target Endpoint - General Tab Options (Cont.)
Option Description
For all access options:
Target folder Enter the target folder in your Amazon S3 bucket.
File Attributes
Delimiters can be standard characters or a hexadecimal (hex) value. Note that the "0x"
prefix must be used to denote a hexadecimal delimiter (e.g. 0x01 = SOH). In the Field
delimiter, Record delimiter and Null value fields, the delimiter can consist of
concatenated hex values (e.g. 0x0102 = SOHSTX), whereas in the Quote character and
Escape character fields, it can only be a single hex value.
Note The hexadecimal number 0x00 is not supported (i.e. only 0x01-0xFF are
supported).
Format You can choose to create the target files in CSV or JSON format.
In a JSON file, each record is represented by a single line, as in the
following example:
{ "book_id": 123, "title": "Alice in Wonderland", "price": 6.99, "is_hardcover": false }
{ "book_id": 456, "title": "Winnie the Pooh", "price": 6.49, "is_hardcover": true }
{ "book_id": 789, "title": "The Cat in the Hat", "price": 7.23, "is_hardcover": true }
See also: Content-Type and Content-Encoding Properties.
Note Changing the format (i.e. from CSV to JSON or from JSON to
CSV) while the task is in a stopped state and then resuming the task,
is not supported.
Note If you choose JSON format , the following fields will be hidden
as they are only relevant to CSV format: Field delimiter, Record
delimiter, Null value, Quote character, Escape character, and
Add metadata header.
Field delimiter The delimiter that will be used to separate fields (columns) in the target
files. The default is a comma.
Example using a comma as a delimiter:
"mike","male"
Record The delimiter that will be used to separate records (rows) in the target
delimiter files. The default is a newline (\n).
Example:
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 465
Table 9.24 | Amazon S3 Target Endpoint - General Tab Options (Cont.)
Option Description
"mike","male"\n
"sara","female"\n
Null value The string that will be used to indicate a null value in the target files.
Example (where \n is the record delimiter and @ is the null
value):
"mike","male",295678\n
"sara","female",@\n
Quote The character that will be used at the beginning and end of a text column.
character The default is the double-quote character ("). When a column that
contains column delimiters is enclosed in double-quotes, the column
delimiter characters are interpreted as actual data, and not as column
delimiters.
Example (where a @ is the quote character):
@mike@,@male@
Escape The character used to escape a quote character in the actual data.
character Example (where" is the quote character and \ is the escape
character):
1955,"old, \"rare\", Chevrolet","$1000"
Add metadata You can optionally add a header row to the data files. The header row can
header contain the source column names and/or the intermediate (i.e. Replicate)
data types.
Example of a target file with a header row when both With column
names and With data types are selected:
Position:DECIMAL(38,0),Color:VARCHAR(10)
1,"BLUE"
2,"BROWN"
3,"RED"
...
Maximum file The maximum size a file can reach before it is closed (and optionally
size compressed). This value applies both to data files and to Reference Files.
For information on generating reference files, see .
Compress files Choose GZIP to compress the target files or NONE (the default) to leave
using them uncompressed.
Change Processing
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 466
Table 9.24 | Amazon S3 Target Endpoint - General Tab Options (Cont.)
Option Description
Apply/Store changes when:
File size Specify the maximum size of Change Data to accumulate before
reaches uploading the file to Amazon S3.
Elapsed time Specify the maximum time to wait before applying the changes.
reaches
Metadata Files
Create When this option is selected, for each data file, a matching metadata file
metadata files with a .dfm extension will be created under the specified target folder.
in the target The metadata files (which are in standard JSON format) provide
folder additional information about the task/data such as the source endpoint
type, the source table name, the number of records in the data file, and
so on.
For a full description of the metadata file as well as possible uses, see
Metadata File Description .
Data Encryption
Encryption Choose one of the following:
options Server-Side Encryption with Amazon S3-Managed Keys (SSE-S3).
This is the default.
Server-Side Encryption with AWS KMS-Managed Keys (SSE-KMS)
This option also requires you to specify your KMS Key ID.
For more information on the available sever-side encryption
methods, see:
http://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-
encryption.html
None
Note As part of connection testing process, Replicate uploads a test file to the specified
Amazon S3 Target folder and then deletes it once a connection has been established.
If the connection is successful a message in green is displayed. If the connection fails,
an error message is displayed at the bottom of the dialog box.
To view the log entry if the connection fails, click View Log. The server log is displayed
with the information for the connection failure. Note that this button is not available
unless the test connection fails.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 467
Setting Advanced Connection Properties
In the Advanced tab, you can enable the creation of reference files and set post-
processing actions. These options are described in detail below.
Note If the Generate a reference file option is selected, a row (specifying the
file's location) will be added to the Reference File only after the command completes
successfully.
Note If the CSV/DFM file paths contain spaces, you must enclose these
parameters with quotation marks (e.g "${FILENAME}").
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 468
Table 9.25 | Amazon S3 Target Endpoint - Advanced Tab Options (Cont.)
Option Description
Setting Post Command Exit Codes with an Internal Parameter
You can use internal parameters to set exit codes with custom values. This is especially
useful if your application already uses the standard exit code values.
See Standard Post Command Exit Codes above for a description of the exit codes.
successExitCode
recoverableErrorExitCode
tableErrorExitCode
fatalErrorExitCode
For instructions on setting internal parameters, see Internal Parameters.
Post Upload Processing - Generate Reference Files
Select this option to generate a Reference File (on Replicate Server) containing the full
path to the Apply Changes data files.
Note The reference file only points to the location of the Apply Changes files, and not
the Full Load files.
Reference File(s) folder - The folder on the Replicate machine in which the Reference
File will be created.
Example:
c:\temp\
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 469
Table 9.25 | Amazon S3 Target Endpoint - Advanced Tab Options (Cont.)
Option Description
of Local Computer
On Linux: Add the CA certificate to
/etc/pki/tls/certs/ca-bundle.crt
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 470
Internal Parameters
Internal parameters are parameters that are not exposed in the UI and should only be used
if instructed by Attunity Support.
Settings Summary
You can view a summary of your setting by clicking the View Setting Summary link. This is
useful if you need to send a summary of your setting to Attunity Support.
Example:
AmazonS300000001.csv
Note The counter suffix increases incrementally each time a new Reference File is
generated (i.e. when the file reaches the maximum size defined in the General tab).
Once a new Reference File has been generated, you can delete the old reference file(s)
if required.
Whenever an Apply Changes data file is created, a new row is added to the Reference File
in the following format:
<Source_Table_Name>,<bucket_name>/<path>/<file_name>
Example:
employees,bigdata/new/files/my.company/20170611-120144192.csv
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 471
Note that if the Post-process files option in the Advanced tab is also enabled, the
Reference File will be generated after the post-processing completes.
Content-
Replicate Artifact File Format Compression Content-Type
Encoding
Data file CSV None text/csv; char- N/A
set=utf-8
Data file CSV gzip text/csv; gzip
charset=utf-8
Data file JSON (lines) None application/x- N/A
ndjson
Data file JSON (lines) gzip application/x- gzip
ndjson
Metadata file (DFM) JSON None application/json N/A
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 472
Using Microsoft Azure ADLS as a Target
This chapter describes how to set up and use Microsoft Azure ADLS as a target in a
replication task.
In this section:
Prerequisites
Microsoft Azure ADLS Target Overview
Limitations
Change Data Partitioning
Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Generating Reference Files
Content-Type and Content-Encoding Properties
Prerequisites
Before you can use Microsoft Azure ADLS as a target endpoint in a Replicate task, the
following prerequisites must be met:
Permissions: The "Azure Active Directory application ID" specified in the Microsoft
Azure HDInsight endpoint's Storage settings must have write access to the specified
ADLS storage target folder.
Supported Platforms: Attunity Replicate on Windows or Linux.
Note You do not need to install any drivers on the Attunity Replicate Server machine.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 473
Note When Parallel Load is used, the naming convention for Full Load files is slightly
different:
LOAD_$(SegmenteID)_$(IncreasingCounter)
Example:
LOAD_1_00000001 | LOAD_1_00000002 | LOAD_1_00000003 | LOAD_2_00000001 |
LOAD_2_00000002
Note When the Create metadata files in the target folder option is enabled, a
corresponding metadata file is created using the same naming format, but with a .dfm
extension.
For each source table, a folder is created in the specified Microsoft Azure ADLS target
folder. The data files are created on the Replicate Server machine and are then uploaded to
the specified Microsoft Azure ADLS target folder once the File Attributes (Full Load) and
Change Processing upload conditions have been met.
DDL Handling
When a DDL change is captured, Replicate will close the data file and also create a DFM file
if the Create metadata files in the target folder option is enabled. When the next
batch of changes arrives, Replicate will create a new data file containing the changes. Note
that the DFM file created for the new data file will match the new table structure.
Limitations
The following limitations apply to the Microsoft Azure ADLS target endpoint:
Only the following DDLs are supported: Truncate table, Drop table, Create table, Add
Column, Rename Column, Drop Column, and Convert Data Type.
Full LOB Mode is not supported
UPDATE and DELETE statements are not supported in Apply Changes replication mode
Batch Optimized Apply mode is not supported
Target lookup is not supported
The <target folder> parameter cannot include special characters
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 474
{Target Directory}
{Table_1}
{Partition_1}
Data files
DFM files
{Partition_2}
Data files
DFM files
{Partition_3}
Data files
DFM files
{Table_2}
{Partition_1}
Data files
DFM files
{Partition_2}
Data files
DFM files
{Partition_3}
Data files
DFM files
Data Types
The following table shows the default mapping from Attunity Replicate data types to
Microsoft Azure ADLS target data types. Note that the data type mapping is only relevant if
the Create metadata files in the target folder option is enabled.
For information on source data type mappings, see the section for the source endpoint you
are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 9.26 | Supported Microsoft Azure ADLS Target Data Types with Mapping from
Attunity Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 475
Table 9.26 | Supported Microsoft Azure ADLS Target Data Types with Mapping from
Attunity Replicate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 476
3. Optionally, in the Description field, type a description that helps to identify the
endpoint.
4. Select TARGET as the endpoint role.
5. Select Microsoft Azure ADLS as the endpoint Type.
6. Configure the remaining settings in the General tab as described in the table below.
Table 9.27 | Microsoft Azure ADLS Target Endpoint - General Tab Options
Option Description
Microsoft Azure ADLS Storage
Data Lake Store The full name of the ADLS storage.
name
Azure Active The Azure Active Directory ID.
Directory ID
Azure Active The Azure Active Directory application ID.
Directory
application ID
Azure Active The Azure Active Directory application key.
Directory
application key
Target folder Specify where to create the data files on ADLS.
SSL CA Path: The location of the CA file on the Replicate Server machine.
File Attributes
Delimiters can be standard characters or a hexadecimal (hex) value. Note that the "0x"
prefix must be used to denote a hexadecimal delimiter (e.g. 0x01 = SOH). In the Field
delimiter, Record delimiter and Null value fields, the delimiter can consist of
concatenated hex values (e.g. 0x0102 = SOHSTX), whereas in the Quote character and
Escape character fields, it can only be a single hex value.
Note The hexadecimal number 0x00 is not supported (i.e. only 0x01-0xFF are
supported).
Format You can choose to create the target files in CSV or JSON format.
In a JSON file, each record is represented by a single line, as in the
following example:
{ "book_id": 123, "title": "Alice in Wonderland", "price": 6.99, "is_hardcover": false }
{ "book_id": 456, "title": "Winnie the Pooh", "price": 6.49, "is_hardcover": true }
{ "book_id": 789, "title": "The Cat in the Hat", "price": 7.23, "is_hardcover": true }
See also: Content-Type and Content-Encoding Properties.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 477
Table 9.27 | Microsoft Azure ADLS Target Endpoint - General Tab Options (Cont.)
Option Description
Note Changing the format (i.e. from CSV to JSON or from JSON to
CSV) while the task is in a stopped state and then resuming the
task, is not supported.
Field delimiter The delimiter that will be used to separate fields (columns) in the
target files. The default is a comma.
Example using a comma as a delimiter:
"mike","male"
Record delimiter The delimiter that will be used to separate records (rows) in the target
files. The default is a newline (\n).
Example:
"mike","male"\n
"sara","female"\n
Null value The string that will be used to indicate a null value in the target files.
Example (where \n is the record delimiter and @ is the null
value):
"mike","male",295678\n
"sara","female",@\n
Quote character The character that will be used at the beginning and end of a text
column. The default is the double-quote character ("). When a column
that contains column delimiters is enclosed in double-quotes, the
column delimiter characters are interpreted as actual data, and not as
column delimiters.
Example (where a @ is the quote character):
@mike@,@male@
Escape character The character used to escape a quote character in the actual data.
Example (where" is the quote character and \ is the escape
character):
1955,"old, \"rare\", Chevrolet","$1000"
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 478
Table 9.27 | Microsoft Azure ADLS Target Endpoint - General Tab Options (Cont.)
Option Description
Add metadata You can optionally add a header row to the data files. The header row
header can contain the source column names and/or the intermediate (i.e.
Replicate) data types.
Example of a target file with a header row when both With column
names and With data types are selected:
Position:DECIMAL(38,0),Color:VARCHAR(10)
1,"BLUE"
2,"BROWN"
3,"RED"
...
Maximum file The maximum size a file can reach before it is closed (and optionally
size compressed). This value applies both to data files and to Reference
Files.
For information on generating reference files, see .
Compress files Choose GZIP to compress the target files or NONE (the default) to
using leave them uncompressed.
Change Processing
Apply/Store changes when:
File size reaches Specify the maximum size of Change Data to accumulate before
uploading the file to Microsoft Azure ADLS .
Elapsed time Specify the maximum time to wait before applying the changes.
reaches
Metadata Files
Create metadata When this option is selected, for each data file, a matching metadata
files in the target file with a .dfm extension will be created under the specified target
folder folder. The metadata files (which are in standard JSON format) provide
additional information about the task/data such as the source endpoint
type, the source table name, the number of records in the data file,
and so on.
For a full description of the metadata file as well as possible uses, see
Metadata File Description .
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 479
Note As part of connection testing process, Replicate uploads a test file to the specified
Microsoft Azure ADLS Target folder and then deletes it once a connection has been
established.
If the connection is successful a message in green is displayed. If the connection fails,
an error message is displayed at the bottom of the dialog box.
To view the log entry if the connection fails, click View Log. The server log is displayed
with the information for the connection failure. Note that this button is not available
unless the test connection fails.
Table 9.28 | Microsoft Azure ADLS Target Endpoint - Advanced Tab Options
Option Description
Post Upload Processing - Run command after upload
You can process the final target files using a custom command. The command will be run
whenever a data file is created.
Note If the Generate a reference file option is selected, a row (specifying the
file's location) will be added to the Reference File only after the command completes
successfully.
Note If the CSV/DFM file paths contain spaces, you must enclose these
parameters with quotation marks (e.g "${FILENAME}").
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 480
Table 9.28 | Microsoft Azure ADLS Target Endpoint - Advanced Tab Options (Cont.)
Option Description
The post-processing command must return a proper exit code. You can either use the
standard exit code values described below or set a custom exit code value as described in
Setting Post Command Exit Codes with an Internal Parameter below.
0 - Success
1 - Recoverable error. The task will recover from the point of failure according to the
settings in the Environmental Errors tab.
2 - Table error. If a table error occurs, Replicate will handle the error according to
the settings in the Table Errors tab.
3 (or any other value e.g. -100) - Fatal error. The task will fail and not attempt
recovery.
Select this option to generate a Reference File (on Replicate Server) containing the full
path to the Apply Changes data files.
Note The reference file only points to the location of the Apply Changes files, and not
the Full Load files.
Reference File(s) folder - The folder on the Replicate machine in which the Reference
File will be created.
Example:
c:\temp\
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 481
Table 9.28 | Microsoft Azure ADLS Target Endpoint - Advanced Tab Options (Cont.)
Option Description
Port The port via which to access the proxy server.
User name The user name for accessing the proxy server.
Password The password for accessing the proxy server.
Scheme Select which protocol to use to access the
server (HTTP or HTTPS).
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 482
Internal Parameters
Internal parameters are parameters that are not exposed in the UI and should only be used
if instructed by Attunity Support.
Settings Summary
You can view a summary of your setting by clicking the View Setting Summary link. This is
useful if you need to send a summary of your setting to Attunity Support.
Example:
MyAzureADLS00000001.csv
Note The counter suffix increases incrementally each time a new Reference File is
generated (i.e. which occurs when the file reaches the maximum size defined in the
General tab). Once a new Reference File has been generated, you can delete the old
reference file(s) if required.
Whenever an Apply Changes data file is created, a new row is added to the Reference File
in the following format:
<Source_Table_Name>,<Data_Lake_Store_name>/<path>/<file_name>
Example:
employees,mydatalakestore/new/files/my.company/20170611-120144192.csv
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 483
Note that if the Run command after upload option in the Advanced tab is also enabled,
the Reference File will be generated after the post-processing completes.
Content-
Replicate Artifact File Format Compression Content-Type
Encoding
Data file CSV None text/csv; char- N/A
set=utf-8
Data file CSV gzip text/csv; gzip
charset=utf-8
Data file JSON (lines) None application/x- N/A
ndjson
Data file JSON (lines) gzip application/x- gzip
ndjson
Metadata file (DFM) JSON None application/json N/A
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 484
Using HP Vertica as a Target
This section describes how to set up and use an HP Vertica database as a target database in
a replication task.
In this section:
Prerequisites
Limitations
Security Requirements
HP Vertica Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
The following section describes the prerequisites for working with Attunity Replicate on
Windows or Linux and the HP Vertica target database.
Note HP Vertica 7.1 client is not compatible with database versions earlier than
HP Vertica 7.1.
2. Makes sure that the /etc/odbcinst.ini file contains the following entry for HP
Vertica, as in the following example:
[Vertica]
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 485
Driver = /opt/vertica/lib64/libverticaodbc.so
DriverODBCVer = 3.0
UsageCount = 1
Limitations
The following limitations apply to the Vertica target endpoint:
In "Batch optimized apply" Change Processing mode, binary data types (e.g.
VARBINARY) are limited to 32500 bytes on the target.
Security Requirements
You must provide HP Vertica account access to the Attunity Replicate user. The Replicate
user must also have the following privileges in the HP Vertica database:
CREATE TABLE Privileges:
CREATE privilege on schema
DROP TABLE Privileges:
USAGE privilege on the schema that contains the table or schema owner
TRUNCATE Privileges (If the task is configured to truncate existing tables):
USAGE privilege on the schema that contains the table or schema owner
ALTER TABLE (ADD/DROP/ RENAME/ALTER-TYPE COLUMN) Privileges:
USAGE privilege on the schema that contains the table or schema owner
INSERT Privileges:
INSERT privilege on table
USAGE privilege on the schema that contains the table
UPDATE Privileges:
UPDATE privilege on table
USAGE privilege on the schema that contains the table
SELECT privilege on the table when executing an UPDATE statement that
references table column values in a WHERE or SET clause
DELETE Privileges:
DELETE privilege on table
USAGE privilege on schema that contains the table
SELECT privilege on the table when executing a DELETE statement that references
table column values in a WHERE or SET clause
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 486
Attunity Replicate and the default mapping from Attunity Replicate data types.
Note HP Vertica does not support applying changes to binary data types in Batch
optimized apply mode. For more information on Batch optimized apply mode, see
Change Processing Tuning.
For information on how to view the data type that is mapped from the source, see the
section for the source database you are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 9.29 | Supported HP Vertica Data Types with Mapping from Attunity Replicate Data
Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 487
Setting General Connection Properties
This section describes how to configure general connection properties. For an explanation
of how to configure advanced connection properties, see Setting Advanced Connection
Properties below.
Note
This information is required. If you are using the Advanced tab to create a
custom string, make sure to include the User Name and Password
properties. See Setting Advanced Connection Properties for more information.
This information is case sensitive.
If you want to set custom properties for this database, see Setting Advanced
Connection Properties.
Important: Make sure that the HP Vertica user entered in the HP Vertica
Authentication section has the correct access privileges. For information on how to
provide the required privileges, see Security Requirements.]
9. In the Database name field, enter the name of the HP Vertica database.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 488
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 489
Using Microsoft APS PDW as a Target
This section describes how to set up and use Microsoft APS PDW as a target database in a
replication task.
In this section:
Prerequisites
Limitations
Security Requirements
Microsoft APS PDW Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Note
Attunity Replicate must be installed on any Windows computer in your network.
A Microsoft APS PDW account with the required access privileges is required.
The following client components must be installed on the Attunity Replicate machine:
SQL Server Native Client 11.0
Microsoft SQL Server 2012 Parallel Data Warehouse Tools x64
Limitations
The following section describes the limitations of using Microsoft APS PDW as a Replicate
target.
Source columns with CHAR/VARCHAR data types and a non-Latin collation (e.g.
"Chinese_PRC_CI_AS") need to be mapped to NVARCHAR. This can be done by defining
a global transformation for all tables in the replication task or by defining a single
transformation for a specific table.
For more information on defining transformations, see Defining Global
Transformations and Defining Transformations for a Single Table/View.
Microsoft APS PDW does not support empty (NULL) columns. Consequently, when
replicating a source column with an empty value, Replicate inserts a space into the
corresponding target column.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 490
Security Requirements
You must provide Microsoft APS PDW account access to the Attunity Replicate user. This
user must have LOAD permission and applicable permissions (INSERT, UPDATE, DELETE)
on the destination table.
Table 9.30 | Supported Microsoft APS PDW Data Types with Mapping from Attunity
Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 491
Table 9.30 | Supported Microsoft APS PDW Data Types with Mapping from Attunity Rep-
licate Data Types (Cont.)
Note
This information is required. If you are using the Advanced tab to create a
custom string, make sure to include the User Name and Password
properties. See Setting Advanced Connection Properties for more information.
This information is case sensitive.
If you want to set custom properties for this database, see Setting Advanced
Connection Properties.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 492
Important: Make sure that the Microsoft APS PDW user entered in the Microsoft
APS PDW Authentication section has the correct access privileges. For information
on how to provide the required privileges, see Security Requirements.
9. In the Database name field, enter the name of the Microsoft APS PDW database.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 493
Using ODBC to Connect to a Target
This section describes how to use ODBC connectivity to connect to a target endpoint.
Note When using HP NonStop SQL/MP (ARC) as an ODBC target, several additional
procedures must be performed. For a detailed explanation, see Using HP NonStop
SQL/MP as an ODBC Target.
In this section:
Using ODBC to Connect to a Target
ODBC Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Note When using HP NonStop SQL/MP (ARC) as an ODBC target, several additional
procedures must be performed. For a detailed explanation, see Using HP NonStop
SQL/MP as an ODBC Target.
Note ODBC does not support applying changes to binary data types in Batch
optimized apply mode. For more information on Batch optimized apply mode, see
Change Processing Tuning.
For information on how to view the data type that is mapped from the source, see the
section for the source endpoint you are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 494
Table 9.31 | Supported ODBC Target Data Types with Mapping from Attunity Replicate
Data Types
Note If the target endpoint does not support ODBC data types, data types are mapped
to SQL_VARCHAR.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 495
To add an ODBC endpoint to Attunity Replicate:
1. In Tasks view, click Manage Endpoint Connections to open the Manage
Endpoints Connections dialog box. Then click the New Endpoint Connection
button.
2. In the Name field, type a name for your ODBC endpoint. This can be any name that
will help to identify the endpoint being used.
3. In the Description field, type a description that helps to identify the ODBC endpoint.
This is optional.
4. Select TARGET as the endpoint role.
5. Select ODBC as the endpoint Type.
6. Select one of the following:
DSN: Select this to connect to an ODBC-supported endpoint using a DSN. When
you select DSN you must select the DSN you are using from the list.
Note When connecting to SQL/MP, you must use a connection string, which
should include the name of the Replicate ARC Unicode ODBC driver. See
Connection String for an example.
If the DSN you want to use is not included in the list, make sure that the endpoint
client is installed on the computer with Attunity Replicate and that the DSN is
defined. Note that the ODBC provider client must be 64-bit. For more
information, see Prerequisites .
Note If you are using an ARC CDC Agent as the source in a Replicate task,
you cannot select the DSN for the Attunity ODBC driver as the target. In this
case, to use Attunity ODBC as a target, you must enter the connection string
manually by selecting Connection String and following the directions for that
option in this procedure.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 496
Note
You can use the Advanced tab to add specific properties and create a
custom connect string. In this case, you do not need to enter information
in this tab. For more information on using the Advanced tab, see Setting
Advanced Connection Properties.
To determine if you are connected to the endpoint you want to use or if
the connection information you entered is correct, click Test
Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the
dialog box.
To view the log entry if the connection fails, click View Log. The server
log is displayed with the information for the connection failure. Note that
this button is not available unless the test connection fails.
7. Type the authentication information (User Name, Password) for the authorized user
for the ODBC endpoint being used. For example, the IBM DB2 system administrator if
you are using a IBM DB2 provider. If you do not know this information, see your ODBC
Endpoint System Administrator.
Note
When you select Connection String be sure to include User
name/password information in the connection string that you type in the
box.
If you are using the Advanced tab to create a custom string, make sure to
include the User Name and Password properties. For more information, see
Setting Advanced Connection Properties.
This information is case sensitive.
You can set custom properties in the Advanced tab. For more information,
see Setting Advanced Connection Properties.
Important: Make sure that the ODBC endpoint user has the correct access
privileges for the ODBC provider being used.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 497
Max file size (KB): Select or type the maximum size (in KB) of a CSV file before the
file is moved into the load folder. The default value is 32000 KB.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 498
Using Microsoft Azure SQL Data Warehouse as a
Target
This section describes how to set up and use Microsoft Azure SQL Data Warehouse as a
target in a replication task. Microsoft Azure SQL Data Warehouse is located in the cloud and
is accessed through your Microsoft Azure account.
In this section:
Overview
Limitations
Microsoft Azure SQL Data Warehouse Endpoint Prerequisites
Microsoft Azure SQL Data Warehouse Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Overview
In the first stage of the replication process, Attunity Replicate moves the data files created
by the source database into Microsoft Azure Blob Storage where thy are stored as CSV
files. The files are then loaded into the proper tables in the Microsoft Azure SQL Data
Warehouse data warehouse (using PolyBase).
The Replicate Microsoft Azure SQL Data Warehouse database provides full automation for:
Schema generation and data type mapping
Full load of source database tables
Incremental load of changes made to source tables
Application of schema changes (DDL) made to the source tables.
Synchronization between full load and CDC processes.
Manual control is also available if needed.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 499
Limitations
The following section describes the limitations of using Microsoft Azure SQL Data
Warehouse as a Replicate target.
Source columns with CHAR/VARCHAR data types and a non-Latin collation (e.g.
"Chinese_PRC_CI_AS") need to be mapped to NVARCHAR. This can be done by defining
a global transformation for all tables in the replication task or by defining a single
transformation for a specific table.
For more information on defining transformations, see Defining Global
Transformations and Defining Transformations for a Single Table/View.
Microsoft Azure SQL Data Warehouse does not support empty (NULL) columns.
Consequently, when replicating a source column with an empty value, Replicate
inserts a space into the corresponding target column.
The rename column DDL is not supported.
Note For best performance, the Azure Blob Storage container should be in the same
region as your Microsoft Azure SQL Data Warehouse.
Required Permissions
Attunity Replicate performs the following operations on the Azure Blob Storage
container/folder:
On the Azure Blob Storage container: LIST
On the Azure Blob Storage folder: READ, WRITE and DELETE
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 500
The user specified in the Microsoft Azure SQL Data Warehouse endpoint settings must be
granted the above permissions.
Required Permissions
Attunity Replicate performs the following operations on the replicated tables within
Microsoft Azure SQL Data Warehouse:
SELECT, INSERT, UPDATE and DELETE
Bulk Load
CREATE, ALTER, DROP (if required by the task's definition)
Unless the user is the DB Owner, the user specified in the Microsoft Azure SQL Data
Warehouse endpoint settings must be granted the above permissions.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 501
Table 9.32 | Supported Microsoft Azure SQL Data Warehouse Data Types with Mapping
from Attunity Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 502
Table 9.32 | Supported Microsoft Azure SQL Data Warehouse Data Types with Mapping
from Attunity Replicate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 503
7. Enter the following Microsoft Azure SQL Data Warehouse information:
Server name: Specify the name of the Microsoft Azure SQL Data Warehouse
server you are using.
Port: Specify the port number for Microsoft Azure SQL Data Warehouse.
User name: Specify the user name of a registered Microsoft Azure SQL Data
Warehouse user.
Password: Specify the password for the user entered in the User name field.
Database name: Specify the target database name.
If you do not have these values, contact the Microsoft Azure account owner or
your company’s Microsoft Azure SQL Data Warehouse System Administrator.
Azure Blob Storage Access: During a replication task, Microsoft Azure SQL
Data Warehouse authenticates itself to Azure Blob Storage using an SQL Server
Credential. You can either configure Replicate to create the Credential
automatically during runtime (the default) or use an existing Credential.
Automatically create SQL Server Credential
Use existing SQL Server Credential
8. Enter the following Microsoft Azure Blob Storage information. You may need to click
the Microsoft Azure Blob Storage header to see the information.
Account name: Specify the name of the Azure Blob Storage account to which
you want the files copied.
Container name: Specify the name of the Azure Blob Storage container to
which you want the files copied.
Account key: Specify the key for your Azure Blob Storage account.
Folder: Specify the name of the Azure Blob Storage folder to which you want the
files copied.
If you do not have these values, contact the Microsoft Azure Blob Storage account
owner or your company’s IT department.
Note
This information is case sensitive.
To determine if you are connected to the database you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 504
Setting Advanced Connection Properties
In the Advanced tab, you can set the following properties:
Max file size (MB): Select or type the maximum size of any CSV file used to
transfer data to Microsoft Azure SQL Data Warehouse. The default value is 1024.
Number of threads used to upload a file: Select the number of threads used to
upload a single file. The minimum number of threads is 1. The maximum value is 64.
The default value is 10.
ODBC driver: The name of the default ODBC driver you are using to connect to
Microsoft Azure SQL Data Warehouse. The default driver is SQL Server Native
Client 11.0.
Additional ODBC connection properties: Enter additional ODBC connection
properties if required.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 505
Using IBM Netezza as a Target
This section describes how to set up and use an IBM Netezza database as a target database
in a replication task.
In this section:
Prerequisites
Limitations
Security Requirements
IBM Netezza Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
Prerequisites
Note
Attunity Replicate must be installed on any Windows computer in your network.
An IBM Netezza account with the required access privileges is required.
Limitations
Using IBM Netezza as a target database in an Attunity Replicate task is subject to the
following limitations:
The IBM Netezza target database uses the IBM Netezza NZLOAD utility, which does not
support loading tables with non-Latin names (e.g. Chinese). If any of your source
tables has a non-Latin name, you can map it to a table with a Latin name.
For more information on mapping table names, see Performing General Tasks for a
Single Table/View and Defining Global Transformations.
For IBM Netezza versions before 7.0.3, you need to define a default target schema.
For information about defining a target schema, see Target Metadata.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 506
Security Requirements
The Attunity Replicate user must be granted access to the IBM Netezza account as well as
the following privileges:
Database Privileges
LIST on <database> to <ATTUNITY USER>
SELECT on <database> to <ATTUNITY USER>
Table Privileges
CREATE TABLE to <ATTUNITY USER>
LIST on TABLE to <ATTUNITY USER>
Schema Privileges
CREATE SCHEMA to <ATTUNITY USER>
LIST on SCHEMA to <ATTUNITY USER>
View Privileges
SELECT on _T_DATABASE to <ATTUNITY USER>
SELECT on _V_SCHEMA to <ATTUNITY USER>
SELECT on _V_USER to <ATTUNITY USER>
SELECT on _V_TABLE to <ATTUNITY USER>
SELECT on _V_TABLE_DIST to <ATTUNITY USER>
SELECT on _V_RELATION_KEYDATA to <ATTUNITY USER>
LIST on _T_DATABASE to <ATTUNITY USER>
LIST on _V_SCHEMA to <ATTUNITY USER>
LIST on _V_USER to <ATTUNITY USER>
LIST on _V_TABLE to <ATTUNITY USER>
LIST on _V_TABLE_DIST to <ATTUNITY USER>
LIST on _V_RELATION_KEYDATA to <ATTUNITY USER>
Note IBM Netezza does not support applying changes to binary data types in Batch
optimized apply mode. For more information on Batch optimized apply mode, see
Change Processing Tuning.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 507
For information on how to view the data type that is mapped from the source, see the
section for the source database you are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Table 9.33 | Supported IBM Netezza Data Types with Mapping from Attunity Replicate
Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 508
Table 9.33 | Supported IBM Netezza Data Types with Mapping from Attunity Replicate
Data Types (Cont.)
Note
This information is required. If you are using the Advanced tab to create a
custom string, make sure to include the User Name and Password
properties. See Setting Advanced Connection Properties for more information.
This information is case sensitive.
If you want to set custom properties for this database, see Setting Advanced
Connection Properties.
Important: Make sure that the IBM Netezza user entered in the IBM Netezza
Authentication section has the correct access privileges. For information on how to
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 509
provide the required privileges, see Security Requirements.
9. In the Database name field, enter the name of the IBM Netezza database.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 510
Using Kafka as a Target
This section describes how to set up and use Kafka as a target endpoint in a replication
task. In a task with a Kafka target endpoint, each source record is transformed into a
message which is then written (with an optional message key) to a partition in the
specified topic.
In this section:
Transaction Processing by the Consumer
Prerequisites
Limitations
Kafka Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
The Attunity Envelope
Metadata and Data Messages
How it Works
Each change in the source system is translated to a data message containing the details of
the change including the transaction ID and change sequence in the source. The data
message also includes the changed columns before and after the change. As explained
above, the order in which the Kafka target writes the messages is the same as order of
changes within each transaction.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 511
Once a data message is ready to be sent to Kafka, the topic and partition it should go to are
determined by analyzing the endpoint settings as well as potentially transformation
settings. For example, the user might decide to configure the endpoint in such a way that
every table is sent to a different topic and set the partition strategy to "Random", meaning
that each message (within the same table) will be sent to a different partition.
Prerequisites
Before you can use Kafka as a target endpoint in a Replicate task, the following
prerequisites must be met:
Open TCP ports to all the brokers from the Replicate Server machine
Set permissions that will allow Attunity Replicate to write to the target topics. One way
to do this is to use the Kafka ACLs script (kafka-acls).
Either create a topic named attrep_apply_exceptions before starting the replication
task or configure the brokers with auto.create.topics.enable=true.
Note that if this topic does not exist, the task will always fail when it encounters a data
error, regardless of the error handling policy.
For a description of the attrep_apply_exceptions table, see Apply Exceptions
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 512
Limitations
When defining a task with Kafka as the target endpoint, the following limitations apply:
The Kafka target endpoint does not support unlimited LOB size. Therefore, when
replicating from source tables with LOB columns, do not select the Allow unlimited
LOB size option.
For more information on defining LOB settings, see Target Metadata.
Batch optimized apply mode is not supported. If this mode is set, the task will
automatically switch to Transactional apply mode and issue an appropriate
warning.
For more information on these modes, see Change Processing Tuning.
Store Changes mode is not supported.
For more information on Store Changes mode, see Adding Tasks.
Kafka topic names cannot exceed 255 characters (249 from Kafka 0.10) and can only
contain the following characters:
a-z|A-Z|0-9|. (dot)|_(underscore)|-(minus)
If the source table names exceed the maximum permitted length or contain
unsupported characters, you need to either modify the names before starting the task
or define a global transformation. For information on defining global transformations,
see Defining Global Transformations.
The Ignore ALTER Apply Changes setting is not supported for changes to source data
types and table renaming.
Column names must begin with [A-Za-z_] (letters or an underscore) followed by [A-
Za-z0-9_] (letters, digits, or an underscore). For example, _Test_ is a valid column
name whereas &Test is not.
If a source column name does not adhere to this rule, then a transformation should be
used to rename the column.
For information on source data type mappings, see the section for the source endpoint you
are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Note When using the JSON message format, binary values are represented as
hexadecimal digits.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 513
Table 9.34 | Supported Kafka Target Data Types with Mapping from Attunity Replicate
Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 514
Note Replicate data types will only be mapped to supported Avro logical data types if
the Use logical data types for specific data types check box is selected.
Table 9.35 | Supported Avro Data Types with Mapping from Attunity Replicate Data
Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 515
Setting General Connection Properties
This section describes how to configure general connection properties. For an explanation
of how to configure advanced connection properties, see Setting Advanced Connection
Properties below.
Note When using SSL or Kerberos authentication, you must specify the broker
FQDN (i.e. not the IP address).
Note All of the broker servers in your cluster need to be accessible to Replicate.
However, you do not need to specify all of the servers in the Broker servers field.
This is because Replicate only need to connect to one of the servers in order to
retrieve the connection details for the other servers in the cluster. It is therefore
best practice to specify the servers that are most likely to be available when the
task is run. The servers to which Replicate produces messages is determined by the
topic and partitioning topic and partitioning settings described below.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 516
Note
The Use SSL and Certificate authentication options are only supported from
Kafka 0.9 and above.
The CA file, public key file and private key file must all be in PEM format.
The Kerberos and User name and password authentication methods are
only supported from Kafka 0.10 and above.
All of the broker servers in the cluster must be configured to accept connection
requests using the selected Authentication method.
Use SSL (supports TLS 1.0, 1.1 and 1.2): Select this option to encrypt the
communication between the Replicate machine and the broker server(s). If the
brokers are configured to require SSL, then you must select this option.
CA path: Specify the directory containing the CA (Certificate Authority)
certificate or the full path to a specific CA certificate.
Authentication: Select one of the following:
None - To send messages without authentication.
Certificate - If you select this option, you also need to provide the
following information:
Public key file - The full path to the public key file on the Replicate
Server machine.
Private key file - The full path to the private key file on the Replicate
Server machine.
Private key password - The password for the private key file.
Kerberos - Select to authenticate against the Kafka cluster using Kerberos.
Replicate automatically detects whether Attunity Replicate Server is running
on Linux or on Windows and displays the appropriate settings.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 517
Active Directory KDC.
Realm - The name of the domain in which the broker servers reside.
Principal - The user name to use for authentication. The principal
must be a member of the domain entered above.
Password - The password for the principal entered above.
For additional steps required to complete setup for Kerberos authentication,
see Using Kerberos Authentication on Windows below.
User name and password - Currently this option is only supported when
Replicate Server is installed on a Linux machine. You can select this option
to authenticate yourself using a user name and password (SASL/PLAIN). To
prevent the password from being sent in clear text, it is strongly
recommended to enable the Use SSL option as well.
9. In the Message Properties section, set the following properties:
a. Choose JSON or Avro as the message format.
Note Attunity provides an Avro Message Decoder SDK for consuming Avro
messages produced by Attunity Replicate. You can download the SDK together
with the Avro Message Decoder Developer's Guide as a ZIP file from the
Customer Zone.
An understanding of the Attunity envelope schema is a prerequisite for
consuming Avro messages produced by Attunity Replicate. If you do not wish
to use the SDK, see The Attunity Envelope for a description of the Attunity
envelope schema.
b. From the Compression drop-down list, optionally select one of the available
compression methods (Snappy or gzip). The default is None.
c. When the Include Before-image in UPDATE messages check box is selected
(the default), both pre- and post-UPDATE data will be included in UPDATE
messages. To include only the post-UPDATE data in messages, clear the check
box.
d. Select the Include external Schema ID header check box to include the
Schema ID in the data message. As the Schema ID changes whenever a DDL is
performed on the source table, consumer applications can use this information to
determine if the message schema has changed.
e. If you selected Avro, optionally select the Use logical data types for specific
data types check box to map some of the number-based Attunity Replicate data
types to Avro logical data types. When this option is not selected (the default), all
Attunity Replicate data types will be mapped to Avro primitive data types.
For more information on Attunity Replicate to Avro data type mapping, see
Mapping from Attunity Replicate Data Types to Avro.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 518
10. In the Data Message Publishing section, set the following properties:
a. In the Publish the data to field, choose one of the following:
Specific topic - to publish the data to a single topic. Either type a topic
name or use the browse button to select the desired topic.
Specific topic for each table - to publish the data to multiple topics
corresponding to the source table names.
The target topic name consists of the source schema name and the source
table name, separated by a period (e.g. "dbo.Employees"). The format of
the target topic name is important as you will need to prepare these topics in
advance.
b. From the Partition strategy drop-down list, field, select either Random or By
message key. If you select Random, each message will be written to a
randomly selected partition. If you select By message key, messages will be
written to partitions based on the selected By message key (described below).
c. From the Message key drop-down list, field, select one of the following:
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 519
(enabled by default) will be displayed. This option is useful for organizations that
wish to leverage the Attunity Envelope structure to process the data messages. If
you do not require the additional information provided by the Attunity Envelope
(e.g. due to existing message consumption processes), then disable this option.
Publish metadata messages to a dedicated metadata topic
If you select this option, either type the Topic name or use the Browse button to
select the desired topic. This option is required if the message format is set to
Avro since Avro-formatted messages can only be opened using the Avro schema.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 520
None - To send messages without authentication.
Certificate - If you select this option, you also need to provide
the following information:
Public key file - The full path to the public key file on the
Replicate Server machine.
Private key file - The full path to the private key file on
the Replicate Server machine.
Private key password - The password for the private
key file.
Schema Registry Subjects:
Select a compatibility mode from the Subject Compatibility Mode
drop-down list. A description of the selected mode will appear below
the drop-down list.
2. In the console tree, expand Local Policies and select User Rights Assignments.
3. In the details pane, double-click Log on as a batch job.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 521
4. In the Log on as a batch job Properties dialog box, on the Local Security
Settings tab, verify that the respective user is listed. If it is not listed, click Add User
or Group, then add the user and click OK.
Note Before you can define such a transformation, you first need to add a source
endpoint to the task and select the tables you want to replicate.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 522
To define a transformation:
1. Open the task you defined.
2. If you are defining a transformation for a single table, select one of the source tables.
Otherwise, skip to Step 3.
3. Define a transformation that adds one of the following columns:
Note The columns listed below (prefixed with a $) instruct Replicate to route the
message to the desired topic and/or partition, and will not be included in the actual
message itself.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 523
2. In the edit box, type the name of the parameter you need to add and then click it.
3. The parameter is added to the table below the search box with its default value.
4. Change the default value as required.
5. To reset the parameter value to its default, click the "Restore default value" icon at the
end of the row.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 524
looking up the actual schema - it is an application level detail. This field is used
exclusively with the messageSchema field.
messageSchema (null or string)
An embedded UTF-8 encoded Avro JSON schema with which the message field can be
serialized. This field is used exclusively with the messageSchemaId field.
message (bytes)
An Avro encoded message, which is the payload of the message envelope.
Given the envelope schema, it is possible for anyone using this schema to properly decode
the envelope messages from Kafka.
Once the envelope message has been decoded, there are two possible scenarios:
Scenario 1: Decoding a self-describing message such as the metadata message
Scenario 2: Decoding a message by referenced schema ID such as data messages
The method for logically decoding messages in both scenarios is described below.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 525
The customer's consumer code should read metadata messages from the schema topic and
then save the data schemas and any other information the consumer wishes to access later
in a customer defined zone. Another set of customer consumers should read data
messages from the various data topics, and access the data schemas zone as required to
retrieve the data schemas required for decoding the data messages.
When consuming data messages and metadata messages from several topics and
partitions in a multi-thread/process manner, a situation may arise where a given consumer
may attempt to read a data message before the corresponding metadata message has
been read. As it is not possible to read a data message before its corresponding metadata
message, the consumer's logic should wait a reasonable amount of time until the
corresponding metadata message has been read. If the metadata message is still not
available after waiting for a reasonable amount of time, the consumer should handle this
as an unexpected error and activate the planned error policy. An example of such a policy
could be saving the message in a dedicated “delayed” topic for later processing.
As a rule of thumb, the number of metadata messages will be much lower (in the
magnitude of 1:10000 or more) than the number of data messages. So, assuming a
metadata consumer is active, the gap between metadata message and data message
should be no more than a few seconds (usually, milliseconds).
Metadata Message
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 526
Field Type Description
tableStructure Structure Describes the structure of the table.
tableColumns Structure Contains the list of columns and their properties.
{columns} Structure For each column, a record with the below prop-
erties.
ordinal Integer The position of the column in the record.
type String The column data type.
length Integer The maximum size of the data (in bytes) permitted
for the column.
precision Integer For NUMERIC data type, the maximum number of
digits required to represent the value.
scale Integer For NUMERIC data type, the maximum number of
digits to the right of the decimal point permitted for
a number.
primaryKeyPosition Integer The position of the column in the table’s Primary
Key. or Unique Index. The value is zero if the
column is not part of the table’s Primary Key.
dataSchema String The Avro schema for deserializing the Data mes-
sages.
Data Message
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 527
Field Type Description
Applicable to CDC operations.
timestamp String The original change UTC timestamp.
Applicable to CDC operations.
streamPosition String The source CDC stream position.
Applicable to CDC operations.
transactionId String The ID of the transaction that the change record belongs to.
Use this field to gather all changes of a specific transaction.
Applicable to CDC operations.
changeMask String Indicates which data columns were changed in the source
table.
The change mask is a string of hexadecimal digits,
representing a bitmask of data columns in little-endian
order. The bit position in the change mask is based on the
ordinal of the column in the metadata message of that table.
This means that if there are 10 data columns, they occupy
bits 0 to 9 in the bitmask.
If UPDATE mask is 0B hexadecimal, which is 1011 binary – it
means that the columns at ordinals 1, 2 and 4 were
changed.
The following describes the bit semantics:
For INSERT records, all non-null columns have the
associated bits set.
For DELETE records, only primary-key (or unique index)
columns have the associated bits set. This allows an
applier to construct a DELETE statement without having
to find the primary key fields from another source.
For UPDATE records, each column with a changed value
will have the associated bit set.
columnMask String Indicates which data columns are present in the message.
Usually, this will include all of the table columns.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 528
Field Type Description
order. The bit position in the column mask is based on the
ordinal of the column in the metadata message for that
table.
This allows the applier to distinguish a null value that is the
actual value of the column, from a null value that represents
a column which could not be replicated from the source
database.
data Structure The data of the table record
{columns} The column names and values in the current record.
beforeData Structure The data of the table record, before the change
{columns} The column names and values, before the change.
Applicable to UPDATE operation.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 529
Using MapR Streams as a Target
This section describes how to set up and use MapR Streams as a target endpoint in a
replication task. In a task with a MapR Streams target endpoint, each source record is
transformed into a message which is then written (with an optional message key) to a
partition in the specified topic.
In this section:
Transaction Processing by the Consumer
Prerequisites
Limitations
Supported Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
The Attunity Envelope
Metadata and Data Messages
How it Works
Each change in the source system is translated to a data message containing the details of
the change including the transaction ID and change sequence in the source. The data
message also includes the changed columns before and after the change. As explained
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 530
above, the order in which the MapR Streams target writes the messages is the same as
order of changes within each transaction.
Once a data message is ready to be sent to MapR Streams, the topic and partition it should
go to are determined by analyzing the endpoint settings and any transformation settings.
For example, the user might decide to configure the endpoint in such a way that every
table is sent to a different topic and set the partition strategy to "Random", meaning that
each message (within the same table) will be sent to a different partition.
Prerequisites
Before you can use MapR Streams as a target endpoint in a Replicate task, the following
prerequisites must be met:
Install and configure MapR Client 5.2.1 or above on the Attunity Replicate Server
machine.
To verify the configuration, issue the following command in a Linux shell:
hadoop fs -ls maprfs://<cluster_name>/
The command should return a directory listing.
Install the mapr-librdkafka package on the Attunity Replicate Server machine.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 531
Create a topic named attrep_apply_exceptions before starting the replication task.
Note that if this topic does not exist, the task will always fail when it encounters a data
error, regardless of the error handling policy.
For a description of the attrep_apply_exceptions table, see Apply Exceptions
Add the following files to the /opt/attunity/replicate/lib directory:
librdkafka.so, libMapRClient_c.so, and libMapRClient.so (copy from the
/opt/mapr/lib directory)
libjvm.so (copy from the $JAVA_HOME/lib/amd64/server/lib directory)
Limitations
When defining a task with MapR Streams as the target endpoint, the following limitations
apply:
Unlimited LOB size is not supported. Therefore, when replicating from source tables
with LOB columns, do not select the Allow unlimited LOB size option.
For more information on defining LOB settings, see Target Metadata.
Batch optimized apply mode is not supported. If this mode is set, the task will
automatically switch to Transactional apply mode and issue an appropriate
warning.
For more information on these modes, see Change Processing Tuning.
Store Changes mode is not supported.
For more information on Store Changes mode, see Adding Tasks.
MapR Streams topic names cannot exceed 255 characters and can only contain the
following characters:
a-z|A-Z|0-9|. (dot)|_(underscore)|-(minus)
If the source table names exceed the maximum permitted length or contain
unsupported characters, you need to either modify the names before starting the task
or define a global transformation. For information on defining global transformations,
see Defining Global Transformations.
The Ignore ALTER Apply Changes setting is not supported for changes to source data
types and table renaming.
Column names must begin with [A-Za-z_] (letters or an underscore) followed by [A-
Za-z0-9_] (letters, digits, or an underscore). For example, _Test_ is a valid column
name whereas &Test is not.
If a source column name does not adhere to this rule, then a transformation should be
used to rename the column.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 532
For information on source data type mappings, see the section for the source endpoint you
are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Note When using the JSON message format, binary values are represented as
hexadecimal digits.
Table 9.36 | Supported MapR Streams Target Data Types with Mapping from Attunity
Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 533
Table 9.36 | Supported MapR Streams Target Data Types with Mapping from Attunity
Replicate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 534
Table 9.37 | Supported Avro Data Types with Mapping from Attunity Replicate Data
Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 535
Note If the topics do not exist, the stream must be configured with
autocreate=true to enable Replicate to create the topics during runtime.
Otherwise, the task will fail.
b. From the Partition strategy drop-down list, field, select either Random or By
message key. If you select Random, each message will be written to a
randomly selected partition. If you select By message key, messages will be
written to partitions based on the selected By message key (described below).
c. From the Message key drop-down list, field, select one of the following:
Note Attunity provides an Avro Message Decoder SDK for consuming Avro
messages produced by Attunity Replicate. You can download the SDK together
with the Avro Message Decoder Developer's Guide as a ZIP file from the
Customer Zone.
An understanding of the Attunity envelope schema is a prerequisite for
consuming Avro messages produced by Attunity Replicate. If you do not wish
to use the SDK, see The Attunity Envelope for a description of the Attunity
envelope schema.
b. To publish the schema message (for the corresponding data message) to a topic,
select the Use Schema Messages check box and then type the stream name
followed by a colon and the topic name.
Example:
MapRStreamName:MapRTopicName
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 536
This option is required if the message format is set to Avro since Avro-formatted
messages can only be opened using the Avro schema.
Note If the topics do not exist, the stream must be configured with
autocreate=true to enable Replicate to create the topics during runtime.
Otherwise, the task will fail.
Note Before you can define such a transformation, you first need to add a source
endpoint to the task and select the tables you want to replicate.
To define a transformation:
1. Open the task you defined.
2. If you are defining a transformation for a single table, select one of the source tables.
Otherwise, skip to Step 3.
3. Define a transformation that adds one of the following columns:
Note The columns listed below (prefixed with a $) instruct Replicate to route the
message to the desired topic and/or partition, and will not be included in the actual
message itself.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 537
not exist.
For a $key column, the expression should return the message key contents.
For information on creating expressions, see Using the Expression Builder (for Filters,
Transformations, and Global Transformations).
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 538
{"name":"messageSchemaId","type":["null","string"]},
{"name":"messageSchema","type":["null","string"]},
{"name":"message","type":"bytes"}
]
}
The fields in the envelope are as follows:
magic (5 bytes fixed field)
The constant "atMSG" is used to identify this form of message. The "atMSG" constant
should be used to validate that this message is indeed an Attunity envelope message.
type (string field)
Describes the enveloped message type. This can be one of two values: MD which
stands for metadata message and DT which stands for data message.
headers (map of string key and value)
A free for use map for various properties set at the application level. Currently, no
headers are set by Attunity Replicate but this may change in future versions.
messageSchemaId (null or string)
A reference to a schema defined elsewhere, which can be used to deserialize the bytes
in the message field. This specification does not explain how the schema ID is used for
looking up the actual schema - it is an application level detail. This field is used
exclusively with the messageSchema field.
messageSchema (null or string)
An embedded UTF-8 encoded Avro JSON schema with which the message field can be
serialized. This field is used exclusively with the messageSchemaId field.
message (bytes)
An Avro encoded message, which is the payload of the message envelope.
Given the envelope schema, it is possible for anyone using this schema to properly decode
the envelope messages from MapR Streams.
Once the envelope message has been decoded, there are two possible scenarios:
Scenario 1: Decoding a self-describing message such as the metadata message
Scenario 2: Decoding a message by referenced schema ID such as data messages
The method for logically decoding messages in both scenarios is described below.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 539
Decoding a Message by Referenced Schema ID
Avro schemas are JSON documents which can be quite large, usually much larger than the
data encoded by Avro conforming to the schema. For example, a schema of a 10 column
table could be a JSON document of more than 100 characters while an actual row encoding
of 10 columns may be only 10 bytes (depending of course on the type and length of fields).
It is therefore typically not recommended to include schema and data together in a MapR
Streams message because the schema information is redundant and is the same for all
data messages while the actual data is the only thing which differs between data
messages.
To avoid sending schema with each data message, each schema has a 32 bytes long ID.
When a data message based on a previously sent data message schema (via the metadata
message) is constructed, the messageSchema field is set to null and the messageSchemaId
field is set to the 32 bytes ID of the schema instead. The application responsibility is to
locate the data schema sent earlier in the metadata message and use that schema to
decode the data message contained in the message field.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 540
Metadata Message
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 541
Data Message
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 542
Field Type Description
For DELETE records, only primary-key (or unique index)
columns have the associated bits set. This allows an
applier to construct a DELETE statement without having
to find the primary key fields from another source.
For UPDATE records, each column with a changed value
will have the associated bit set.
columnMask String Indicates which data columns are present in the message.
Usually, this will include all of the table columns.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 543
Using Microsoft Azure Event Hubs as a Target
This section describes how to set up and use Microsoft Azure Event Hubs as a target
endpoint in a replication task. In a task with a Microsoft Azure Event Hubs target endpoint,
each source record is transformed into a message which is then written (with an optional
message key) to a partition in the specified hub.
In this section:
Prerequisites
Transaction Processing by the Consumer
Limitations
Supported Target Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
The Attunity Envelope
Metadata and Data Messages
Prerequisites
Before you can use Microsoft Azure Event Hubs as a target endpoint in a Replicate task, the
following prerequisites must be met:
The target hubs must already exist before starting the replication task. Note that if you
intend to use the Separate hub for each table option in the endpoint settings, the hub
name must adhere to the following format:
SourceSchemaName.HubName
where HubName must be identical to the source table name.
Example:
HR.Employees
Create a hub named attrep_apply_exceptions before starting the replication task.
Note that if this hub does not exist, the task will always fail when it encounters a data
error, regardless of the error handling policy.
For a description of the attrep_apply_exceptions table, see Apply Exceptions
To be able to browse for hubs (in the General tab), the namespace Shared Access
Policy must have "Manage" permission.
If the namespace shared access policy does not have "Manage" permission, then the
hub Shared Access Policy must have at least "Send" permission.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 544
Transaction Processing by the Consumer
When configuring the Attunity Replicate Microsoft Azure Event Hubs endpoint, users can
configure various settings that affect where messages are published within the Microsoft
Azure Event Hubs infrastructures (hubs/partitions).
During a task's CDC stage, committed changes that are detected by the Attunity Replicate
source endpoint are grouped by transaction, sorted internally in chronological order, and
then propagated to the target endpoint. The target endpoint can handle the changes in
various ways such as applying them to the target tables or storing them in dedicated
Change Tables.
Each CDC message has both a transaction ID as well as change sequence. As the change
sequence is a monotonically growing number, sorting events by change sequence always
achieves chronological order. Grouping the sorted events by transaction ID then results in
transactions containing chronologically sorted changes.
However, as Microsoft Azure Event Hubs is a messaging infrastructure, applying changes is
not feasible while storing changes in tables is meaningless. The Replicate Microsoft Azure
Event Hubs endpoint, therefore, takes a different approach, which is to report all
transactional events as messages.
How it Works
Each change in the source system is translated to a data message containing the details of
the change including the transaction ID and change sequence in the source. The data
message also includes the changed columns before and after the change. As explained
above, the order in which the Microsoft Azure Event Hubs target writes the messages is the
same as order of changes within each transaction.
Once a data message is ready to be sent to Microsoft Azure Event Hubs, the hub and
partition it should go to are determined by analyzing the endpoint settings as well as
potentially transformation settings. For example, the user might decide to configure the
endpoint in such a way that every table is sent to a different hub and set the partition
strategy to "Random", meaning that each message (within the same table) will be sent to a
different partition.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 545
accumulating a transaction in some intermediate memory buffer - and when a new
transaction ID is detected, mark the previous transaction as completed.
Although the simple way may work, it’s not very efficient at the task level as all messages
end up in the same hub and partition, not necessarily utilizing the full parallelism of the
Microsoft Azure Event Hubs cluster. This may be a non-issue if there are multiple tasks,
each taking advantage of a different hub/partition. In such as scenario, the gathering of
messages from those tasks may very well utilize the cluster optimally.
The more generic way where data may be spread over multiple hubs and partitions means
that some intermediate buffer such as memory, a table in a relational database, or even
other hubs would need to be used to collect information about transactions. Then, the
transactions would need to be rebuilt by periodically (every few minutes/hours) sorting the
events collected from Replicate’s Microsoft Azure Event Hubs output by the change
sequence and grouping them by transaction ID.
Limitations
When defining a task with Microsoft Azure Event Hubs as the target endpoint, the following
limitations apply:
The Microsoft Azure Event Hubs target endpoint does not support unlimited LOB size.
Therefore, when replicating from source tables with LOB columns, do not select the
Allow unlimited LOB size option.
For more information on defining LOB settings, see Target Metadata.
Batch optimized apply mode is not supported. If this mode is set, the task will
automatically switch to Transactional apply mode and issue an appropriate
warning.
For more information on these modes, see Change Processing Tuning.
Store Changes replication mode is not supported.
For more information on Store Changes mode, see Adding Tasks.
The Ignore ALTER Apply Changes setting is not supported for changes to source data
types and table renaming.
Column names must begin with [A-Za-z_] (letters or an underscore) followed by [A-
Za-z0-9_] (letters, digits, or an underscore). For example, _Test_ is a valid column
name whereas &Test is not.
If a source column name does not adhere to this rule, then a transformation should be
used to rename the column.
For information on source data type mappings, see the section for the source endpoint you
are using.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 546
For additional information about Attunity Replicate data types, see Replicate Data Types.
Note When using the JSON message format, binary values are represented as
hexadecimal digits.
Table 9.38 | Supported Microsoft Azure Event Hubs Target Data Types with Mapping
from Attunity Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 547
Mapping from Attunity Replicate Data types to Avro
When Avro is set as the message format, due to the limited number of data types
supported by Avro, the data type mappings will be as shown in the table below.
Table 9.39 | Supported Avro Data Types with Mapping from Attunity Replicate Data
Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 548
To define the general connection properties:
1. Click the Manage Endpoint Connections toolbar button.
The Manage Endpoints Connections dialog box opens.
2. Click the New Endpoint Connection toolbar button.
The Name, Description, Type and Role fields are displayed on the right.
3. In the Name field, specify a display name for the endpoint.
4. In the Description field, optionally type a description for the Microsoft Azure Event
Hubs endpoint.
5. Select Target as the endpoint Role.
6. Select Microsoft Azure Event Hubs as the endpoint Type.
The dialog box is divided into General and Advanced tabs.
7. In the Access Details section, set the following properties:
Namespace: Enter the name of your Event Hubs namespace.
Example: eventhubdemo
Shared Access Policy Level: Select either Namespace level or Event Hub
level according to the level defined for your Shared Access Policy.
Shared Policy Name: Enter the name of your shared access policy.
Example: RootManageSharedAccessKey
Shared Access Key: Enter your shared access primary or secondary key.
Example: BZLreXGxiWiRpGAog9Zf6b3K7ycRsImfBWqsR+SJp34=
8. In the Message Properties section, select either JSON or Avro as the message
format.
Note Attunity provides an Avro Message Decoder SDK for consuming Avro
messages produced by Attunity Replicate. You can download the SDK together with
the Avro Message Decoder Developer's Guide as a ZIP file from the Customer
Zone.
An understanding of the Attunity envelope schema is a prerequisite for consuming
Avro messages produced by Attunity Replicate. If you do not wish to use the SDK,
see The Attunity Envelope for a description of the Attunity envelope schema.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 549
corresponding to the source table names. If you select this option, the hub
name format must be as described in the prerequisites.
The target hub name consists of the source schema name and the source
table name, separated by a period (e.g. "dbo.Employees"). The format of
the target hub name is important as you will need to prepare these hubs in
advance.
b. From the Partition strategy drop-down list, field, select either Random or By
message key. If you select Random, each message will be written to a
randomly selected partition. If you select By message key, messages will be
written to partitions based on the selected Message key (described below).
c. From the Message key drop-down list, field, select one of the following:
Schema and table name - For each message, the message key will
contain a combination of schema and table name (e.g. "dbo+Employees").
When By message key is selected as the Partition strategy, messages
consisting of the same schema and table name will be written to the same
partition.
Primary key columns - For each message, the message key will contain
the value of the primary key column.
When By message key is selected as the Partition strategy, messages
consisting of the same primary key value will be written to the same
partition.
11. In the Metadata Message Publishing section, specify whether or where to publish
the message metadata.
From the Publish drop-down list, select one of the following options:
Do not publish metadata messages - When this option is selected, only data
messages will be published.
Publish metadata messages to a dedicated metadata hub
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 550
If you select this option, either type the Hub name or use the Browse button to
select the desired hub. Note that the Browse button will only be available if the
Shared Access Policy Level described above is set to Namespace level.
Note Before you can define such a transformation, you first need to add a source
endpoint to the task and select the tables you want to replicate.
To define a transformation:
1. Open the task you defined.
2. If you are defining a transformation for a single table, select one of the source tables.
Otherwise, skip to Step 3.
3. Define a transformation that adds one of the following columns:
Note The columns listed below (prefixed with a $) instruct Replicate to route the
message to the desired hub and/or partition, and will not be included in the actual
message itself.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 551
Setting Advanced Connection Properties
In the Advanced tab, you can set the following advanced properties for the Microsoft
Azure Event Hubs target endpoint:
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 552
{
"type":"record",
"name":"MessageEnvelope",
"fields":[
{"name":"magic","type":{"type":"fixed","name":"Magic","size":5}},
{"name":"type","type":"string"},
{"name":"headers","type":["null",{"type":"map","values":"string"}]},
{"name":"messageSchemaId","type":["null","string"]},
{"name":"messageSchema","type":["null","string"]},
{"name":"message","type":"bytes"}
]
}
The fields in the envelope are as follows:
magic (5 bytes fixed field)
The constant "atMSG" is used to identify this form of message. The "atMSG" constant
should be used to validate that this message is indeed an Attunity envelope message.
type (string field)
Describes the enveloped message type. This can be one of two values: MD which
stands for metadata message and DT which stands for data message.
headers (map of string key and value)
A free for use map for various properties set at the application level. Currently, no
headers are set by Attunity Replicate but this may change in future versions.
messageSchemaId (null or string)
A reference to a schema defined elsewhere, which can be used to deserialize the bytes
in the message field. This specification does not explain how the schema ID is used for
looking up the actual schema - it is an application level detail. This field is used
exclusively with the messageSchema field.
messageSchema (null or string)
An embedded UTF-8 encoded Avro JSON schema with which the message field can be
serialized. This field is used exclusively with the messageSchemaId field.
message (bytes)
An Avro encoded message, which is the payload of the message envelope.
Given the envelope schema, it is possible for anyone using this schema to properly decode
the envelope messages from Microsoft Azure Event Hubs.
Once the envelope message has been decoded, there are two possible scenarios:
Scenario 1: Decoding a self-describing message such as the metadata message
Scenario 2: Decoding a message by referenced schema ID such as data messages
The method for logically decoding messages in both scenarios is described below.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 553
Decoding a Self-Describing Message
When the messageSchema field is not null, it means the message field can be decoded using
the schema included in the messageSchema field. This is fairly straightforward to perform
programatically since the only thing you need to usually supply Avro is a schema and a
message, both of which are provided in the envelope message.
The Attunity metadata messages which include both table metadata, lineage and data
schema description (to be referenced later by data messages) are enveloped in the self-
describing envelope.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 554
As a rule of thumb, the number of metadata messages will be much lower (in the
magnitude of 1:10000 or more) than the number of data messages. So, assuming a
metadata consumer is active, the gap between metadata message and data message
should be no more than a few seconds (usually, milliseconds).
Metadata Message
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 555
Field Type Description
a number.
primaryKeyPosition Integer The position of the column in the table’s Primary
Key. or Unique Index. The value is zero if the
column is not part of the table’s Primary Key.
dataSchema String The Avro schema for deserializing the Data mes-
sages.
Data Message
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 556
Field Type Description
order. The bit position in the change mask is based on the
ordinal of the column in the metadata message of that table.
This means that if there are 10 data columns, they occupy
bits 0 to 9 in the bitmask.
If UPDATE mask is 0B hexadecimal, which is 1011 binary – it
means that the columns at ordinals 1, 2 and 4 were
changed.
The following describes the bit semantics:
For INSERT records, all non-null columns have the
associated bits set.
For DELETE records, only primary-key (or unique index)
columns have the associated bits set. This allows an
applier to construct a DELETE statement without having
to find the primary key fields from another source.
For UPDATE records, each column with a changed value
will have the associated bit set.
columnMask String Indicates which data columns are present in the message.
Usually, this will include all of the table columns.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 557
Using Amazon Kinesis Data Streams as a Target
This section describes how to set up and use Amazon Kinesis Data Streams as a target
endpoint in a replication task. In a task with a Amazon Kinesis Data Streams target
endpoint, each source record is transformed into a message which is then written (with an
optional message key) to a shard in the specified stream.
In this section:
Prerequisites
Transaction Processing by the Consumer
Limitations
Supported Data Types
Setting General Connection Properties
Setting Advanced Connection Properties
The Attunity Envelope
Metadata and Data Messages
Prerequisites
Before you can use Amazon Kinesis Data Streams as a target endpoint in a Replicate task,
the following prerequisites must be met:
The target streams must already exist before starting the replication task.
Create a stream named attrep_apply_exceptions before starting the replication
task. Note that if this stream does not exist, the task will always fail when it
encounters a data error, regardless of the error handling policy.
For a description of the attrep_apply_exceptions table, see Apply Exceptions
The AWS account specified in the General tab must have the following permissions:
Note All strings that begin with YOUR should be replaced with the actual value.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"kinesis:PutRecord",
"kinesis:PutRecords",
"kinesis:DescribeStream"
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 558
],
"Resource": "arn:aws:kinesis:YOUR_AWS_REGION:YOUR_ACCOUNT_
NAME:stream/YOUR_STREAM_NAME"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "kinesis:ListStreams",
"Resource": "*"
}
]
}
Additionally, if the Kinesis Stream was configured in Amazon to encrypt the data at
rest, the following additional KMS permissions should be set:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:DescribeKey"
],
"Resource": "arn:aws:kms:YOUR_AWS_REGION:YOUR_ACCOUNT_
NAME:key/YOUR_KEY_GUID"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "kms:GenerateDataKey",
"Resource": "*"
}
]
}
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 559
various ways such as applying them to the target tables or storing them in dedicated
Change Tables.
Each CDC message has both a transaction ID as well as change sequence. As the change
sequence is a monotonically growing number, sorting events by change sequence always
achieves chronological order. Grouping the sorted events by transaction ID then results in
transactions containing chronologically sorted changes.
However, as Amazon Kinesis Data Streams is a messaging infrastructure, applying
changes is not feasible while storing changes in tables is meaningless. The Replicate
Amazon Kinesis Data Streams endpoint, therefore, takes a different approach, which is to
report all transactional events as messages.
How it Works
Each change in the source system is translated to a data message containing the details of
the change including the transaction ID and change sequence in the source. The data
message also includes the changed columns before and after the change.
Once a data message is ready to be sent to Amazon Kinesis Data Streams, the stream and
shard it should go to are determined by analyzing the endpoint settings and any
transformation settings. For example, the user might decide to configure the endpoint in
such a way that every table is sent to a different stream and set the partition strategy to
"Random", meaning that each message (within the same table) will be sent to a different
shard.
Although the simple way may work, it’s not very efficient at the task level as all messages
end up in the same stream and shard, not necessarily utilizing the full parallelism of the
Amazon Kinesis Data Streams cluster. This may be a non-issue if there are multiple tasks,
each taking advantage of a different stream/shard. In such as scenario, the gathering of
messages from those tasks may very well utilize the cluster optimally.
The more generic way where data may be spread over multiple streams and shards means
that some intermediate buffer such as memory, a table in a relational database, or even
other streams would need to be used to collect information about transactions. Then, the
transactions would need to be rebuilt by periodically (every few minutes/hours) sorting the
events collected from Replicate’s Amazon Kinesis Data Streams output by the change
sequence and grouping them by transaction ID.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 560
Limitations
When defining a task with Amazon Kinesis Data Streams as the target endpoint, the
following limitations apply:
The Amazon Kinesis Data Streams target endpoint does not support unlimited LOB
size. Therefore, when replicating from source tables with LOB columns, do not select
the Allow unlimited LOB size option.
For more information on defining LOB settings, see Target Metadata.
Batch optimized apply mode is not supported. If this mode is set, the task will
automatically switch to Transactional apply mode and issue an appropriate
warning.
For more information on these modes, see Change Processing Tuning.
Store Changes replication mode is not supported.
For more information on Store Changes mode, see Adding Tasks.
The Ignore ALTER Apply Changes setting is not supported for changes to source data
types and table renaming.
Column names must begin with [A-Za-z_] (letters or an underscore) followed by [A-
Za-z0-9_] (letters, digits, or an underscore). For example, _Test_ is a valid column
name whereas &Test is not.
If a source column name does not adhere to this rule, then a transformation should be
used to rename the column.
For information on source data type mappings, see the section for the source endpoint you
are using.
For additional information about Attunity Replicate data types, see Replicate Data Types.
Note When using the JSON message format, binary values are represented as
hexadecimal digits.
Table 9.41 | Supported Amazon Kinesis Data Streams Target Data Types with Mapping
from Attunity Replicate Data Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 561
Table 9.41 | Supported Amazon Kinesis Data Streams Target Data Types with Mapping
from Attunity Replicate Data Types (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 562
Table 9.42 | Supported Avro Data Types with Mapping from Attunity Replicate Data
Types
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 563
The Name, Description, Type and Role fields are displayed on the right.
3. In the Name field, specify a display name for the endpoint.
4. In the Description field, optionally type a description for the Kafka endpoint.
5. Select Target as the endpoint Role.
6. Select Amazon Kinesis Data Streams as the endpoint Type.
The dialog box is divided into General and Advanced tabs.
7. In the Access Details section, set the following properties:
Region: Select your Amazon Kinesis Data Streams region.
Access options: Choose one of the following:
Key pair
Choose this method to authenticate with your Access Key and Secret Key.
IAM Roles for EC2.
Choose this method if the machine on which Attunity Replicate is installed is
configured to authenticate itself using an IAM role.
For information on IAM roles, see:
http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
Access key: If you selected Key pair as your access method, enter your access key
for Amazon Kinesis Data Streams.
Secret key: If you selected Key pair as your access method, enter your secret key
for Amazon Kinesis Data Streams.
8. In the Message Properties section, select JSON or Avro as the message Format.
Note Attunity provides an Avro Message Decoder SDK for consuming Avro
messages produced by Attunity Replicate. You can download the SDK together with
the Avro Message Decoder Developer's Guide as a ZIP file from the Customer
Zone.
An understanding of the Attunity envelope schema is a prerequisite for consuming
Avro messages produced by Attunity Replicate. If you do not wish to use the SDK,
see The Attunity Envelope for a description of the Attunity envelope schema.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 564
b. From the Partition strategy drop-down list, field, select either Random or By
Partition Key. If you select Random, each message will be written to a
randomly selected partition. If you select By Partition Key, messages will be
written to partitions based on the selected Partition key (described below).
c. From the Partition key drop-down list, field, select one of the following:
Schema and table name - For each message, the partition key will
contain a combination of schema and table name (e.g. "dbo+Employees").
Messages consisting of the same schema and table name will be written to
the same partition.
Primary key columns - For each message, the partition key will contain
the value of the primary key column.
Messages consisting of the same primary key value will be written to the
same partition.
10. In the Metadata Message Publishing section, specify whether or where to publish
the message metadata.
From the Publish drop-down list, select one of the following options:
Do not publish metadata messages.
Publish metadata messages to a dedicated metadata stream
If you select this option, either type the Specific stream name or use the
Browse button to select the desired stream.
Note Before you can define such a transformation, you first need to add a source
endpoint to the task and select the tables you want to replicate.
To define a transformation:
1. Open the task you defined.
2. If you are defining a transformation for a single table, select one of the source tables.
Otherwise, skip to Step 3.
3. Define a transformation that adds one of the following columns:
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 565
Note The columns listed below (prefixed with a $) instruct Replicate to route the
message to the desired stream and will not be included in the actual message itself.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 566
Table 9.43 | Advanced Tab Options (Cont.)
Option Description
On Windows: Add the CA certificate to the
Trusted Root Certification Authorities store
of Local Computer
On Linux: Add the CA certificate to
/etc/pki/tls/certs/ca-bundle.crt
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 567
}
The fields in the envelope are as follows:
magic (5 bytes fixed field)
The constant "atMSG" is used to identify this form of message. The "atMSG" constant
should be used to validate that this message is indeed an Attunity envelope message.
type (string field)
Describes the enveloped message type. This can be one of two values: MD which
stands for metadata message and DT which stands for data message.
headers (map of string key and value)
A free for use map for various properties set at the application level. Currently, no
headers are set by Attunity Replicate but this may change in future versions.
messageSchemaId (null or string)
A reference to a schema defined elsewhere, which can be used to deserialize the bytes
in the message field. This specification does not explain how the schema ID is used for
looking up the actual schema - it is an application level detail. This field is used
exclusively with the messageSchema field.
messageSchema (null or string)
An embedded UTF-8 encoded Avro JSON schema with which the message field can be
serialized. This field is used exclusively with the messageSchemaId field.
message (bytes)
An Avro encoded message, which is the payload of the message envelope.
Given the envelope schema, it is possible for anyone using this schema to properly decode
the envelope messages from Amazon Kinesis Data Streams.
Once the envelope message has been decoded, there are two possible scenarios:
Scenario 1: Decoding a self-describing message such as the metadata message
Scenario 2: Decoding a message by referenced schema ID such as data messages
The method for logically decoding messages in both scenarios is described below.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 568
of 10 columns may be only 10 bytes (depending of course on the type and length of fields).
It is therefore typically not recommended to include schema and data together in a
Amazon Kinesis Data Streams message because the schema information is redundant and
is the same for all data messages while the actual data is the only thing which differs
between data messages.
To avoid sending schema with each data message, each schema has a 32 bytes long ID.
When a data message based on a previously sent data message schema (via the metadata
message) is constructed, the messageSchema field is set to null and the messageSchemaId
field is set to the 32 bytes ID of the schema instead. The application responsibility is to
locate the data schema sent earlier in the metadata message and use that schema to
decode the data message contained in the message field.
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 569
Metadata Message
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 570
Data Message
Copyright © 2018 Attunity Ltd. Chapter 9 | Adding and Managing Target Endpoints | Page 571
10 | Using the Attunity Replicate File
Channel
This section describes how to use the Attunity Replicate File Channel as a source or target
in a replication task.
In this chapter:
Setting Up Attunity Replicate File Channel Tasks
Working with the File Channel Data Files
Attunity Replicate Installation Requirements for the File Channel
Security
Limitations
Using the File Channel as a Source
Using the File Channel as a Target
Note When using file channel, Change Tables can be enabled for the remote task but
not for the local task (enabling Change Tables for the local task will result in remote
task failure).
Local Task
You set up the local task using the File-Channel endpoint as a target. The binary file
created in this task is used as the source for one or more remote tasks using the File-
Channel source endpoint.
The local task replicates data from an Attunity Replicate supported endpoint to the file
channel. If you changed the default folder for storing data files (during the installation),
then you must specify the location of the binary file created by the file channel. This
location can be anywhere in your system. For more information on setting up a local task,
see Using the File Channel as a Target.
Copyright © 2018 Attunity Ltd. Chapter 10 | Using the Attunity Replicate File Channel | Page 572
Remote Task
Remote tasks use the File Channel as a source endpoint. You use the file created by the
local task for this source. You can replicate the data to any endpoint that is supported by
Attunity Replicate. You define the location of the File-Channel file as the remote location
where the file was created. The data is pushed over the network to the defined location
anywhere in your system. You can also define more than one location for the replicated
data. In this case, define a separate remote task for each location.
If you want to push the data to an endpoint that is not in your LAN, use the File Transfer
Service to send the files created in the local task to the remote location.
When you run the remote task, data is sent to the target in the following instances:
The first time you run the task as a full load.
Each time changes are made to the file. In this case, change processing takes place.
When the remote task runs, it will continuously look for the source file until the task is
stopped. When the file is found, the data is replicated to the target endpoint. If no source
file is found, an error is displayed; however, the task will continue to check for the correct
file. Therefore, it is recommended that you run the local task first to ensure that the file
exists.
Note To replicate tables that were added to the local file channel task after the initial
full load, you need to reload both the local and the remote file channel tasks.
For more information on setting up a remote task, see Using the File Channel as a Source.
To do this:
1. For each of the target endpoints, define a separate (remote) task that replicates from
the File Channel source to the target endpoint. In the Advanced tab of the File
Channel source settings, make sure to clear the Delete processed files check box.
This ensures that the File Channel files will be available for distribution as required.
2. Define a local task that replicates from the source endpoint to a File Channel target.
3. Run the local task (this will create the File Channel files required by the remote task).
4. For each of the remote tasks, select which tables to replicate (from the File Channel
source) and optionally apply Filters and Transformations to them.
5. Run the remote tasks.
For more information on defining tasks, see Designing Tasks.
For information on Filters and Transformations, see Customizing Tasks .
Copyright © 2018 Attunity Ltd. Chapter 10 | Using the Attunity Replicate File Channel | Page 573
Note By default, all the metadata for the selected source tables is replicated from the
Local Task to the Remote Task. This allows you to remove, add and transform tables in
the remote task as needed. However, if you want the tables in the source and target
endpoints to be identical, you can prevent replication of the metadata (and thereby
shorten the processing time) by specifying provideremotemetadata=N in the Override
connection string parameters field of the File Channel target’s Advanced tab.
Note Adding tables to the remote task is not supported in Apply Changes (CDC-only)
replication tasks. For more information on the available replication options, see Adding
Tasks.
Copyright © 2018 Attunity Ltd. Chapter 10 | Using the Attunity Replicate File Channel | Page 574
File-Channel Directory Structure
The file-channel directory contains the following files and folders:
s_msgs: This folder contains messages sent from the source side to the replication
server on the remote target side.
Messages are removed from this folder at the source side when an acknowledgment
message is received stating that the file was transferred successfully or possibly with
a timeout.
Messages are removed from this folder at the target side after they are read.
This folder contains the following files:
s_msgs/xxxxxxxx.fcm: This file contains a JSON message from the source
side to the target side.
yyyymmddhhMMsss.mtd: This file contains the captured tables list.
s_status: This folder contains status updates from the source side to the target side.
Status updates appear as a fixed name file that is periodically updated. This file lists
the last processed target status file. It receives the t_status/cccccccc.fcs file. These
files are deleted when the file-channel source endpoint finishes reading the file. You
can configure the file-channel source to keep the files, if necessary. See Setting
Advanced Connection Properties for more information.
t_status: This folder contains status updates from the target side to the source side.
Status updates appear as an infinite set of data files that are created according to a
specific schedule. These files are sent from the target by the source. The folder
contains also a fixed name file that is updated with the last created status file name. It
contains the following file:
t_status/cccccccc.fcs: This is a file channel status file (.fcs) where the file
name is a hexadecimal counter of length 8. These files will be transferred in
order with the lower numbers transferred first. If you need to view them, you
should order them by timestamp because alphabetical ordering will not be
consistent with the hexidecimal name.
File channel status files are deleted by the source after being read and by the
target when source status file indicates that this file was already processed.
You can configure the maximum amount of time that the files are kept before a
new file is created as well as the maximum file size for each file. The minimum
file size is 50 MB.
For more information, see Setting Advanced Connection Properties.
streams/<stream-name>: This folder contains stream sub-folder, one sub-folder
per stream. A stream represents a finite or infinite set of data files being sent from the
source to the target. The file channel allows creating and destroying named streams
dynamically. For example, there can be a fixed-named stream cdc (streams/cdc) and
there could be a dynamically created stream loadXXXXXXXX that can be removed at
the source side when a status update from the target is received (for example, when
processing completed) in the t_status folder.
Copyright © 2018 Attunity Ltd. Chapter 10 | Using the Attunity Replicate File Channel | Page 575
You can configure the maximum number of streams and the maximum disc space for
each stream. For more information, see Change Processing.
This folder contains the following file:
streams/<stream-name>/cccccccc.fcd: This is a file channel data file (.fcd)
where the file name is a hexadecimal counter of length 8. These files are
processed at the target in order or in parallel depending on the case. However,
the files are transferred in order with the lower numbers transferred first.
File channel data files are deleted by the source when transferred successfully
and by the target when processed.
You can configure the maximum amount of time that the files are kept before
being creating a new file and the maximum file size for each file. The minimum
file size is 10 MB and the minimum time that a file is kept is 5 seconds.
Security
When using the File Transfer Service, file-channel files are always transferred over an
encrypted session.
The session is encrypted as follows:
The client and server create an AES-256 session key using the Diffie-Hellman key
exchange protocol (using the OpenSSL library). After the key is created, all file transfers
between the client and the server will take place over a secure and encrypted
communication channel.
However, even though the session is encrypted, communication between the client and the
server may still be susceptible to man-in-the-middle attacks. A man-in-the-middle in
possession of the session key would be able to intercept any data transferred between the
client and the server.
To eliminate man-in-the-middle attacks, a "shared password" needs to be provided when
configuring the local and remote file channel endpoints. Once the session is established,
both the client and the server use the shared password to re-key the session key during the
next packet exchange, thereby preventing the original session key from being used for
man-in-the-middle attacks.
To sum up:
1. Strong encryption is used regardless of whether a password was provided.
2. Providing a password eliminates the risk of a man-in-the-middle attack.
Copyright © 2018 Attunity Ltd. Chapter 10 | Using the Attunity Replicate File Channel | Page 576
For more information about the File Transfer Service, see File Transfer Service.
Limitations
The following limitations apply:
The File Channel endpoint does not support Full LOB mode.
You cannot use the Full Load resume function if you are using the File Channel
endpoint. To resume a Full Load operation, you must delete the original data and then
run the task again.
You must delete the File Channel folder before restarting an Apply Changes task.
After modifying an existing transformation in a remote File Channel task, both the
local and the remote File Channel tasks need to be restarted (by selecting the Reload
Target run option in both tasks).
Control tables defined for the local File Channel task but not for the remote File
Channel task will not be created on the remote task’s target endpoint.
For information on defining Control Tables, see Control Tables.
The remote File Channel task does not support the Metadata only run options.
The remote File Channel task does not support the Stopping the Task after Full Load
task options.
If the local task fails, or is stopped, it is possible that the Full Load operation in the
remote task will not complete successfully.
Copyright © 2018 Attunity Ltd. Chapter 10 | Using the Attunity Replicate File Channel | Page 577
2. In the Name field, type a name for your endpoint. This can be any name that will help
to identify the endpoint being used.
3. In the Description field, type a description that helps to identify the information
being replicated to the file. This is optional.
4. Select SOURCE as the endpoint Role.
5. Select File Channel as the endpoint Type.
6. Type the full path to the Storage Folder where the File Channel files will be created.
The default path when not using the File Transfer Service is:
C:\Program Files\Attunity\Replicate\data\tasks\<task_name>
If you are using the File Transfer Service, the default path is:
C:\Program Files\Attunity\Replicate\data\endpoints\<file-channel_db_
name>\fc
Note The Replicate File Transfer Service always transfers the local file channel
task’s files to the default directory on the remote system (C:\Program
Files\Attunity\Replicate\data\endpoints\<remote_file-channel_db_
name>\fc). Consequently, if you are using the File Transfer Service, ensure that
the default directory always has enough space for the incoming files.
For more information on using the File Transfer Service, see File Transfer Service
and Using Advanced Properties for a File-Channel Source.
Note The actual size of the File Channel files is usually three-to-four times larger
than the size of the source data. You should therefore make sure that the location
of the specified Storage Folder has sufficient disk space.
This folder should be in a location that is accessible from anywhere in the WAN you are
working with.
Note
You can use the Advanced tab to define specific properties and create a
custom connect string. In this case, you do not need to enter information in
this tab. For more information on using the Advanced tab, see Using
Advanced Properties for a File-Channel Source.
To determine if you are connected to the endpoint you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
Copyright © 2018 Attunity Ltd. Chapter 10 | Using the Attunity Replicate File Channel | Page 578
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
Important: When using the File Transfer Service, an agreed upon password
is required in order to establish a secure connection between the File Channel
Source and the File Channel Target. Accordingly, the password specified in the
File Channel Source settings and the password specified in the File Channel
Target settings must be identical.
For more information about the File Transfer Service, see File Transfer Service.
Delete processed files: Select this check box to delete the File Channel files after
the data has been replicated to the target endpoint.
You should clear this check box if other tasks need to use the files.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 10 | Using the Attunity Replicate File Channel | Page 579
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Note
The Type is different depending on the type of file you are creating, however the
information you enter is the same for all file types.
All files are used as targets, however you can use an Attunity Replicate file as a
source only after you created the file by loading data into it as a target.
Copyright © 2018 Attunity Ltd. Chapter 10 | Using the Attunity Replicate File Channel | Page 580
Note
You can use the Advanced tab to define specific properties and create a
custom connect string. In this case, you do not need to enter information in
this tab. For more information on using the Advanced tab, see Setting
Advanced Connection Properties.
To determine if you are connected to the endpoint you want to use or if the
connection information you entered is correct, click Test Connection.
If the connection is successful a message in green is displayed. If the
connection fails, an error message is displayed at the bottom of the dialog
box.
To view the log entry if the connection fails, click View Log. The server log is
displayed with the information for the connection failure. Note that this button
is not available unless the test connection fails.
Copyright © 2018 Attunity Ltd. Chapter 10 | Using the Attunity Replicate File Channel | Page 581
Additional remote file channels: When sending to multiple File Channel
Source endpoints, specify the target destinations using the following format:
file_channel_db_name@host:port,file_channel_db_name@host:port
Max transfer streams: The maximum number of streams to use when
transferring the files. Adjust the number of streams as required to optimize
transfer speeds.
Password: The password that will be used to establish a secure connection with
the File Channel Source.
Important: When using the File Transfer Service, an agreed upon password is
required in order to establish a secure connection between the File Channel Source
and the File Channel Target. Accordingly, the password specified in the File Channel
Target settings and the password specified in the File Channel Source(s’) settings
must beidentical.
Internal Parameters
Internal parameters are parameters that are not exposed in the UI. You should only use
them if instructed by Attunity Support.
Settings Summary
You can view a summary of your settings by clicking the Setting Summary link. This is
useful if you need to send a summary of your settings to Attunity Support.
Copyright © 2018 Attunity Ltd. Chapter 10 | Using the Attunity Replicate File Channel | Page 582
11 | Customizing Tasks
This section describes how to customize a replication task. For example, you can create
new tables or columns for the target endpoint or select only some of the data from each
column to be replicated. This is done using transformations and filters.
Note Although the descriptions in this section only refer to tables, the procedures
described herein are applicable to views as well. When a transformation is defined for a
view, the word "View(s)" appears in the UI instead of the word "Table(s)".
In this chapter:
Table Settings
Defining Global Transformations
Using the Expression Builder (for Filters, Transformations, and Global Trans-
formations)
Task Settings
Table Settings
In the <Table_Name> - Table Settings window, you can define how the data for each
individual table/view is replicated to the target.
Note The names of modified tables will be followed by the word (changed), enabling
you to easily identify which tables have been modified.
Note Although the descriptions in this section only refer to tables, the procedures
describe herein are applicable to views as well. When a task is being performed for a
view, the word "View(s)" will appear in the UI instead of the word "Table(s)"
The General tab in the Table Settings window displays basic information about the
selected table and allows you to define new names for the table/schema on the target as
well as override the default tablespace for the table and its index (Oracle target only).
Note Although the descriptions in this section only refer to tables, the procedures
describe herein are applicable to views as well. When a transformation is defined for a
view, the word "View(s)" will appear in the UI instead of the word "Table(s)".
This section describes how to define data transformations. Data transformations are
performed when the task is run. They are optional. If you do not define any
transformations, the data is replicated "as is" from the source to the target.
Attunity Replicate lets you make the following changes to the tables and columns:
Rename any column for the target table
Delete a target column
Change the data type and/or the length of any target column
Add additional target columns
Designate which target columns (i.e. segments) will comprise the Unique Index
Recalculate the data
Limitations
Transformations are subject to the following limitations:
They are not supported for calculating columns of Right-to-Left languages.
They cannot be performed on columns that have a pound character (#) in their name.
The only supported transformation for LOB/CLOB data types is to drop the column on
the target.
You can use the method described here for transformations that are specific to a single
table or a few tables in your task. To make a similar change over multiple tables, see
Defining Global Transformations.
For an explanation of how to configure transformations, see Using the Transform Tab.
Note When creating a transformation for the SAP Application source endpoint, you
can hover your mouse cursor over an Input column to see a tooltip with the table’s
actual name:
Output: This table shows the defined output for the columns in the table where you
are performing the transformations. It contains the following columns:
Key: This indicates whether the column is a segment of the Unique Index. A key
icon is displayed next to columns that are segments of the Unique Index. Click
the column to add and remove keys.
Name: The name of the column. To change the name of the column, select the
field with the column name you want to change and type a new name in this
column if you want to change the name of the column or if the column is
calculated (added to the table). See the table Transformation Actions for more
information.
Type: The data type for the column. To change the data type for the column,
select the field with the data type you want to change and select a new data type.
See the following table for more information.
Expression: An expression using SQLite operators to define the data in the
column. For information on how to create an expression, see the table below.
The following table describes the actions you can carry out in the Transform Table window.
Table 11.1 | Transformation Actions
To Do This
Rename a column Select the Name column for the table
column you want to change. Type in a new
name.
The top right corner turns blue when the
name is changed. To view the original
name, hover the mouse pointer over the
field and the original name is displayed.
Set a column as a 1. Select the desired row in the Output
primary key or table and then click the cell in the Key
To Do This
disable a column's column.
primary key A key icon will be displayed.
2. Repeat to set primary keys for
additional columns.
3. To disable the primary key, click the
key icon.
Change the data type Select the Type column for the table
for a column column you want to change and select a
new data type from the drop-down list.
Make sure that the data type you select is
compatible with the data in that column.
For a description of Attunity Replicate data
types, see Replicate Data Types.
For information about data-type mapping
from the native endpoint to Attunity
Replicate data types, see the chapter for
the endpoint you are using. For a list of
supported databases, see Supported
Platforms and Endpoints .
Add a new column Click Add Column to add a new column.
When you add a column, the Name is blank
and the Type is listed as string(50).
Type a name for the new column in the
Name column. If needed (according to the
column data), click in the Type column and
select a data type from the list.
Add an existing From the Input pane, select one or more
column columns and click the right facing arrow
button.
To add all of the columns, click the right-
facing double arrow.
Note: By default all tables columns are
included in the Output list. To include only
some of the columns clear the By default
include all columns check box at the top
of the Transform tab. This removes all of
the columns from the list. You can then add
back any existing column.
To Do This
Delete a column From the Output list, select the row with
the column you want to delete and click the
left-facing arrow button.
To remove all columns, click the left-facing
double arrow. Note that all the columns
except for columns defined as a primary
key are deleted.
Add/Remove a Unique A key icon indicates which target columns
Index segment segments of the Unique Index.
to/from a target To add a Unique Index segment, click in the
column Key column to the left of target column to
which you want to add the segment. A key
icon will appear.
To remove a Unique Index segment, click
the key icon to the left of the target column
from which you want to remove the
segment. The key icon will disappear.
Recalculate the data Click in the Expression column in the row
for a column in the with the table column you want to change
target endpoint the data for. Enter an expression using
SQLite syntax.
See Creating an Expression for
Transformations and Using SQLite Syntax
with Transformations for information on
creating expressions.
Once you add a calculated expression, you
can test the expression. See Using the
Expression Builder (for Filters,
Transformations, and Global
Transformations).
Change the data type This is required if a source column is
for a specific input defined as character type but the data
column stored in that column is binary or vice
versa.
Note Supported
with the IBM DB2 Note When the source column type is
for iSeries and IBM STRING, WSTRING, CLOB, or NCLOB,
DB2 for z/OS you must also select a Character Set,
To Do This
To Do This
For a description of the various list actions that you can perform, see List Actions.
The following procedure is supported with the IBM DB2 for iSeries and IBM DB2 for z/OS
source endpoints only.
Perform the steps below if the source table is defined with an incorrect CCSID and the
correct definition is actually in a UCM file.
1. Create or download a mapping data file with the file extension .ucm.
Note If you edit an existing UCM file, you must also change the values of the
<code_set_name> and <icu:alias> properties. If the file does not contain an
<icu:alias> property, then you only need to change the value of the <code_set_
name> property.
2. Create a CNV file for the UCM file by running the following command:
<product_dir>\bin\makeconv.exe -v <file_name>.ucm
Example:
"c:\Program Files\Attunity\Replicate\bin\makeconv.exe" -v 1047_EX.ucm
This will create a CNV file with the same name as the UCM file (e.g. 1047_EX.cnv).
3. Copy the file to the following location:
<product_dir>\bin\icudt58l
4. Restart the Attunity Replicate UI Server service.
5. Select the custom character set from the Character Set drop-down list; it will appear
as the CNV file name followed by the word "Custom" e.g. 1047_EX.cnv (Custom).
Operator Description
|| Concatenate strings.
FIRST_NAME||LAST_NAME
PHONE_NUMBER||<Office Only> (adds the string Office Only to
the telephone number).
+ Adds two values together.
DEPARTMENT_ID+100 (adds 100 to each ID number). Any
column used in an expression with this operator must be a
numeric data type.
- Subtracts a value from another value.
MANAGER_ID-100 (subtracts 100 from each ID number). Any
column used in an expression with this operator must be a
numeric data type.
% Uses the remainder of a division expression as the value.
%SALARY/7 (Divides the value of the Salary column by 7 and
uses any remainder from the expression as the column value).
/ Divides one value into another.
SALARY/.16 (Divides the value of the Salary column by .16.
Operator Description
* SALARY*.16 (Multiplies the value of the Salary column by .16.
This could be used to calculate taxes that are subtracted from a
salary).
For more information about SQLite syntax, see the SQLite documentation.
Using Filters
Filters let you include or exclude records from a replication task based on the value(s) of
the source table columns, thereby allowing you to replicate only the specific data that you
need.
In this section:
Filter Limitations
Opening the Filter Tab
Creating a Filter Condition for a Specified Column
Creating a Record Selection Condition for One or More Columns
Adding or Removing Filter Ranges
Using SQLite Syntax with Filtering
Filter Limitations
When creating a filter, the following limitations apply:
Filters are not supported for calculating columns of Right-to-Left languages.
Filters can only be applied to immutable columns.
Filters on mutable columns:
When a filter is created to exclude/include specific rows in a column, the specified
rows will always be excluded/included, even if the rows that were originally
excluded/included are later changed. For example, if you chose to exclude/include
rows "1-10" in a column named "Age" and those rows were later changed to "11-20",
the rows will continue to be excluded/included, even though the data is no longer the
same.
Additionally, if a row outside the filter scope was changed (i.e. updated or updated and
then deleted) so that it should now be excluded/included (as defined by the filter), it
will not be replicated to the target. So, for example if you created a filter to
exclude/include rows less than 5 and then changed row 6 to -6, it will not be replicated
(even though it is included in the filter's criteria range).
Filter cannot be applied to LOB columns.
Note Filter ranges that you enter manually are also displayed in the Filter Builder. You
can use the Filter Builder to delete them.
Note You must put the ($) in front of each input as shown below.
Operator Description
< Is less than.
$SALARY<100000
<= Is less than or equal to
$SALARY<=100000
> Is greater than
$SALARY>100000
>= Is more than or equal to
$SALARY>=100000
= Is equal to
$SALARY=100000
!= or <> Is not equal to
$SALARY!=100000
IS Is the same as
$HIRE_DATE IS 2014-09-29
IS functions the same as = unless one or both of the operands are NULL. In
this case, if both operands are NULL, then the IS operator evaluates to 1
(true). If one operand is NULL and the other is not, then the IS operator
evaluates to 0 (false).
IS NOT Is not the same as
$HIRE_DATE IS NOT 2014-09-29
IS NOT functions the same as != unless one or both of the operands are NULL.
In this case, if both operands are NULL, the IS NOT operator evaluates to 0
(false). If one operand is NULL and the other is not, then the IS NOT operator
evaluates to 1 (true).
AND Both operands are true.
$MANAGER_ID AND EMPLOYEE ID >100
OR Either operand is true.
$MANAGER_ID OR EMPLOYEE ID >100
For more information on how to use the SQLite syntax, see the SQLite documentation.
Supported Endpoints
The task must be defined with a combination of the following source and target endpoints:
Supported source endpoints: Oracle, Microsoft SQLServer, MySQL, PostgreSQL,
IBM DB2 for LUW, SAP Sybase ASE, and SAP Applicaiton.
Supported target endpoints: Oracle, Microsoft SQL Server, Hadoop, PostgreSQL,
Sybase ASE, MySQL, File, Amazon S3, Amazon Redshift, Microsoft Azure Database for
MySQL, Microsoft Azure Database for PostgreSQL, and Google Cloud for MySQL.
Notes
Selecting indexed columns will significantly improve performance
You can select up to ten columns (multi-selection is supported)
Records with null values will not be replicated
The following data types cannot be used to define segments by ranges:
DOUBLE, FLOAT, and LOB (BLOB, CLOB, NCLOB)
Note Values in DATE columns must be entered in the format supported by the
source.
Note When Use Data Ranges is selected, all of the table data will be replicated, even
if data ranges are not defined for all of the columns.
Usage Example
Let's assume that the following segments are defined in the Define Segment
Boundaries table:
In this case, the following "WHERE" clauses will be created for each load segment:
Segment 1: ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 =
10) AND (COL2 = 30) AND (COL3 < 105)))
Segment 2: NOT ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1
= 10) AND (COL2 = 30) AND (COL3 < 105))) AND ((COL1 < 20) OR ((COL1 =
20) AND (COL2 < 20)) OR ((COL1 = 30) AND (COL2 = 20) AND (COL3 < 120)))
Segment 3: NOT ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1
= 30) AND (COL2 = 20) AND (COL3 < 120))) AND ((COL1 < 100) OR ((COL1 =
100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 <
99)))
Segment 4: NOT ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR
((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
Note Only select this method if you are sure that the table is already partitioned.
1. In the Parallel Load tab's Select Parallel Load Method section, select Use
Partitions.
2. In the Select Partitions section, select Use all table partitions. This will segment
the table according to partitions that already exist in the source database.
3. Select one the following:
Use main partitions
Note This option will be disabled if the source database does not support
sub-partitions.
4. Click OK.
Note Only select this method if you are sure that the table is already partitioned.
1. In the Parallel Load tab's Select Parallel Load Method section, select Use
Partitions.
2. In the Select Partitions section, select Specify partitions. This will split the data
according to the specified source partitions.
Note When Specify partitions is selected, only the specified partitions will be
replicated.
Note The check box will be disabled if the source database does not support sub-
partitions.
The currently set value is displayed at the bottom of the Parallel Load tab. You can
modify this value in the Maximum number of tables to load in parallel field in the
Full Load Tuning tab.
Note This option is only available for tasks defined with any combination of the
following source and target endpoints: Oracle source, Oracle target, PostgreSQL source,
PostgreSQL target, Microsoft SQL Server source, Microsoft SQL Server target, MySQL
source, and MySQL target.
Note LOB data types are supported only in tables that include a primary key.
Option Description
Replicate LOB columns When this option is selected (the default), LOB columns
will be replicated.
Note that replicating LOBs may impact performance. This
is especially true in the case of the large LOBs which
require Replicate to perform a lookup from the source
table in order to retrieve the source LOB value.
Allow unlimited LOB size Select this option - also known as Full LOB mode - to
ensure that all LOBs are replicated without being
truncated. This option should be selected when all (or
nearly all) of the LOBs you wish to replicate are large (i.e.
exceed 1 GB).
Optimize handling when Select this option when you need to replicate both small
LOB size is less than and large LOBs, and most of the LOBs are small.
(KB) When this option is selected, during Full Load, Replicate
will transfer the small LOBs "inline" (which is more
Note This option is efficient), and the large LOBs by performing a lookup from
supported with the the source table.
following endpoints During Change Processing, however, both small and large
Chunk size (KB) Optionally, change the size of the LOB chunks to use when
replicating the data to the target. The default chunk size
should suffice in most cases, but if you encounter
performance issues, adjusting the size may improve
performance.
Limit LOB size to (KB) Select this option if you only need to replicate small LOBs
or if the target endpoint does not support unlimited LOB
size. The maximum permitted value for this field is
102400 KB (100 MB).
When replicating small LOBs, this option is more efficient
than the Allow unlimited LOB size option since the
LOBs are replicated "inline" as opposed to via "lookup"
from the source.
Notes
Any LOBs larger than the specified size will be
truncated.
During Change Processing, small LOBs will be
replicated via "lookup" from the source.
As Replicate converts LOBs to binary format, it's
Important In some scenarios, tasks configured to replicate tables with multiple LOB
columns may consume a large amount of memory. This is because Replicate allocates
memory by multiplying the Limit LOB size to value by the Commit rate during full
load value, the sum of which it multiplies by the number of LOB columns being
replicated. So, for example, if LOB size is limited to 5 MB and the default commit rate is
used (10000 events), a task replicating 6 LOB columns will consume 30 GB of memory.
Should you encounter memory consumption issues and suspect that a combination of
the above factors may be the cause, stop the task and lower the value in the Commit
rate during full load field. Then resume the task. Repeat this process until acceptable
performance/memory levels are reached.
These instructions apply to Change Processing and Full Load tasks.
Note Changes to a column’s LOB size while a task is running will not be reflected in the
Change Table, unless the target tables are created by Attunity Replicate. In such cases,
the task must be configured to drop and create the Change Table (the default) and the
target tables need to be reloaded (after the LOB size has changed).
For more information on the Change Table, see Store Changes Settings. For information
on reloading target tables, see Reload Target and Reload.
Note You can only create one rule for each transformation type on the same object
(e.g. a column). If you create multiple rules for a single transformation type on the
same object, only the last rule you create will be valid. For example, if you create the
following rules (in order) to rename a schema:
Rename Schema: Add Prefix
Rename Schema: Add Suffix
-OR-
Rename Column: Add Prefix
Rename Column: Add Suffix
Only the second rule (adding a suffix) will be executed.
Change index tablespace: Select this to change the index tablespace on the
target. You can change the index tablespace regardless of what objects it
contains or you can specify a condition for it to be renamed. For example, change
all table tablespaces that contain the table Employees in the schema Company.
By default (i.e. when this option is not selected), the indexes will either be
created in the source table tablespace on the target (when replicating from an
Oracle source) or in the default database tablespace (when replicating from any
other source).
Note This option is only available for tasks with an Oracle target endpoint.
Column:
Rename column: Select this to change the name of multiple columns. For
example, if you want to change all columns with word MINIMUM to MIN.
Add column: Select this to add a column with a similar name to multiple tables.
Drop column: Select this to drop a column with a similar name from multiple
tables.
Convert data type: Select this if you want to change a specific data type to a
different one across multiple tables. For example, if you want to change all
Integer data types to a string.
Change Table:
Change Table transformations are only available when the Store Changes replication
option is enabled.
For more information on Change Tables, see Using Change Tables.
Rename Change Table: Select this to rename the Replicate Change Table for
all tables or for any table that matches the specified schema name and/or table
name.
Rename Change Table schema: Select this to change the schema under which
the Replicate Change Table will be created, for all tables or for any table that
matches the specified schema name and/or table name.
3. Click Next to proceed to the Under what Conditions to Transform step.
Table Always Leave the % sign to include all table names in your global
name is transformation rule.
like % Click the % sign to add a filter. In this case you can enter any
name combination to include only tables with that specific
name in your global transformation rule.
You can use the % sign as a wildcard. For example, J%
includes all tables with a name that begins with the letter J,
such as JOBS, JOBS_HISTORY, or JACKSONVILLE.
The % wildcard can be used in any position. For example, if
After you complete defining the transformation rule definitions, click Next to go to the
Defining the Transformation Rule step.
Note If the global transformation type you are defining is Drop Column, you do not
need to create a Transformation Rule. In this case, click Finish to add the rule to the
Global Transformation Rules list.
Note The options displayed in this screen depend on the Transformation Type selected.
Rename Schema
If your transformation type is Rename Schema, you can do the following:
Rename schema to (string)
Add a Prefix or Suffix
Remove a Prefix or Suffix
Replace a Prefix or Suffix with Different Characters
Convert Schema Name to Uppercase
Use the Rename schema to: [string] option to change the name of all table schemas
that you defined in the Under what Conditions to Transform step to a different name. For
example, if you have a schema called Human_Resources and want to change all instances
of this name to HR then enter the string HR. You can enter any string in this field.
Use the Add a prefix or suffix option to add additional characters to the beginning or end
of the schema name for all schemas that fit the definition you created in the Under what
Conditions to Transform step. For example, if the schema name is HR, you can add a
suffix, such as TAR or _TAR to the schema name for all tables with that schema name. In
this case, the resulting schema name will be HRTAR or HR_TAR.
Note If you are using Oracle as your target endpoint, Attunity Replicate does not
create a new schema. Therefore, the schema name that is the result of replacing a
prefix or suffix with a different string of characters must exist in the Oracle target
endpoint. If the resulting schema name does not exist, you must create the schema in
the Oracle endpoint before carrying out this task.
For more information, see Limitations for using Oracle as a Source or Target.
Use the Remove a prefix or suffix option to remove a string of characters from the
beginning or end of a schema name for all schema that fit the definition you created in the
Under what Conditions to Transform step.
For example, you can use this option to remove the letters _REV from the schema name for
all tables in the schema HR_REV. In this case the schema name in the target will be HR.
Use the Replace a prefix or suffix option to replace a string of characters with a
different string of characters. You determine whether to replace the characters at the
beginning or end of a schema name for all schema that fit the definition you created in the
Under what Conditions to Transform step.
For example, you can use this option to replace the letters _ORIG with _REPL in the schema
name for all tables in the schema HR_ORIG. In this case the schema name in the target will
be HR_REPL.
Note If you are using Oracle as your target endpoint, Attunity Replicate does not
create a new schema. Therefore, the schema name that is the result of replacing a
prefix or suffix with a different string of characters must exist in the Oracle target
endpoint. If the resulting schema name does not exist, you must create the schema in
the Oracle endpoint before carrying out this task.
For more information, see Limitations for using Oracle as a Source or Target.
Use the convert to uppercase option to convert all of the letters in a schema name to upper
case. For example:
Schema_cat, becomes SCHEMA_CAT
schema_cat, becomes SCHEMA_CAT
sChEMa_Cat, becomes SCHEMA_CAT
Use the convert to lowercase option to convert all of the letters in a schema name to lower
case. For example:
Schema_cat, becomes schema_cat
SCHEMA_CAT, becomes schema_cat
sChEMa_Cat, becomes schema_cat
Use the Rename schema to [expression] option to change the name of all table
schemas that you defined in the Under what Conditions to Transform step to a different
name. For example, if you have a schema called Human_Resources and want to change all
instances of this name to HR.
Rename Table
If your transformation type is Rename Table, you can do the following:
Rename table to (string)
Add a Prefix or Suffix
Remove a Prefix or Suffix
Replace a Prefix or Suffix with Different Characters
Convert table name to uppercase
Convert table name to lowercase
Rename table (expression)
Use the Rename table to: [string] option to change the name of all tables that you
defined in the Under what Conditions to Transform step to a different name. For example,
if you have a table called EMPLOYEE and want to change all instances of this name to EMP
then enter the string EMP. You can enter any string in this field.
Use the Add a prefix or suffix option to add additional characters to the beginning or end
of the table name for all tables that fit the definition you created in the Under what
Conditions to Transform step. For example, if the table name is EMPLOYEES, you can add a
suffix, such as TAR or _TAR to the table name for all tables with that table name. In this
case, the resulting table name will be EMPLOYEESTAR or EMPLOYEES_TAR.
Use the Remove a prefix or suffix option to remove a string of characters from the
beginning or end of a table name for all tables that fit the definition you created in the
Under what Conditions to Transform step.
For example, you can use this option to remove the letters _REV from the table name for
all tables with the name EMPLOYEES. In this case the table name in the target will be
EMPLOYEES.
Use the Replace a prefix or suffix option to replace a string of characters with a
different string of characters. You determine whether to replace the characters at the
beginning or end of a table name for all tables that fit the definition you created in the
Under what Conditions to Transform step.
For example, you can use this option to replace the letters _ORIG with _REPL in the table
names for all tables called EMPLOYEE_ORIG. In this case the table name in the target will be
EMPLOYEE_REPL.
Use the convert to uppercase option to convert a table name to all upper case. For
example:
Table_cat, becomes TABLE_CAT
table_cat, becomes TABLE_CAT
taBLe_Cat, becomes TABLE_CAT
Use the convert to lowercase option to convert a table name to all lower case. For
example:
Table_cat, becomes table_cat
TABLE_CAT, becomes table_cat
taBLe_Cat, becomes table_cat
Use the Rename table to [expression] option to change the name of all tables that fit
the definition you created in the Under what Conditions to Transform step. For example, if
you have a table called EMPLOYEE and want to change all instances of this name as defined
in the previous step it to EMP.
Rename Column
If your transformation type is Rename Column, you can do the following:
Rename column to (string)
Add a Prefix or Suffix
Remove a Prefix or Suffix
Replace a Prefix or Suffix with Different Characters
Convert column name to uppercase
Convert column name to lowercase
Rename Column (expression)
Use the Rename column to: [string] option to change the name of all columns that you
defined in the Under what Conditions to Transform step to a different name. For example,
if you have a table called SALARY and want to change all instances of this name to EMP then
enter the string SAL. You can enter any string in this field.
Use the Add a prefix or suffix option to add additional characters to the beginning or end
of the column name for all columns that fit the definition you created in the Under what
Conditions to Transform step. For example, if the column name is SALARY, you can add a
suffix, such as TAR or _TAR to the table name for all tables with that table name. In this
case, the resulting table name will be SALARYTAR or SALARY_TAR.
Use the Remove a prefix or suffix option to remove a string of characters from the
beginning or end of a column name for all columns that fit the definition you created in the
Under what Conditions to Transform step.
For example, you can use this option to remove the letters _REV from the column name for
all columns with the name SALARY. In this case the column name in the target will be
SALARY.
Use the Replace a prefix or suffix option to replace a string of characters with a
different string of characters. You determine whether to replace the characters at the
beginning or end of a column name for all columns that fit the definition you created in the
Under what Conditions to Transform step.
For example, you can use this option to replace the letters _ORIG with _REPL in the column
names for all columns called SALARY_ORIG. In this case the column name in the target will
be SALARY_REPL.
Use the convert to uppercase option to convert a column name to all upper case. For
example:
Column_cat, becomes COLUMN_CAT
column_cat, becomes COLUMN_CAT
coLUMnM_Cat, becomes COLUMN_CAT
Use the convert to lowercase option to convert a column name to all lower case. For
example:
Column_cat, becomes column_cat
column_cat, becomes column_cat
coLUMnM_Cat, becomes column_cat
Use the Rename column to [expression] option to change the name of all tables that fit
the definition you created in the Under what Conditions to Transform step. For example, if
you have a column called SALARY and want to change it to SAL.
Add Column
When you add a column to multiple tables, you must provide a name, define the data type
for the column and define the data that the column contains. The column that you define
here is added to all tables that fit the definition you created in step Under what Conditions
to Transform.
The following describes the information you must enter in the transformation rule page for
adding a column.
Column name: Click the [string] to activate the field. Type the name for the column
in the field. A column with this name is added to all tables that fit the definition you
created in step Under what Conditions to Transform.
Column data type: Click the drop-down for a list of data types and select a new data
type from the drop-down list. Make sure that the data type you select is compatible
with the data in that column.
For a description of available data types, see Replicate Data Types. For information
about data type mapping from the native endpoint to Attunity Replicate data types, see
the chapter for the endpoint you use. For a list of supported databases, see Supported
Platforms and Endpoints .
Computation expression: Click the button to the right of this field to open the
Expression Editor or type an expression using SQLite operators to define the data in
the column.
For information on how to use the Expression Editor to create an expression, see Using
the Expression Builder (for Filters, Transformations, and Global Transformations).
For more information on creating expressions, see Creating an Expression for
Transformations and Using SQLite Syntax with Transformations.
Drop Column
This option does not require a transformation rule. For this option you complete the Global
transformation Rule after the Under what Conditions to Transform step.
Note
Globally renaming a Change Table will override the Change Table suffix defined in
the task settings.
The Change Table name must be different from the source table names. Otherwise,
a table error will occur.
Use the Rename Change Table to: [string] option to change the name of all Change
Tables that you defined in the Under what Conditions to Transform step to a different
name. For example, if you have a Change Table called EMPLOYEE and want to change all
instances of this name to EMP then enter the string EMP. You can enter any string in this
field.
Use the Add a prefix or suffix option to add additional characters to the beginning or end
of the Change Table name for all Change Tables that fit the definition you created in the
Under what Conditions to Transform step. For example, if the Change Table name is
EMPLOYEES, you can add a suffix, such as TAR or _TAR to the Change Table name for all
Change Tables with that name. In this case, the resulting Change Table name will be
EMPLOYEESTAR or EMPLOYEES_TAR.
Use the Remove a prefix or suffix option to remove a string of characters from the
beginning or end of a Change Table name for all Change Tables that fit the definition you
created in the Under what Conditions to Transform step.
For example, you can use this option to remove the letters _REV from the Change Table
name for all Change Tables with the name EMPLOYEES. In this case the Change Table name
in the target will be EMPLOYEES.
Use the Replace a prefix or suffix option to replace a string of characters with a
different string of characters. You determine whether to replace the characters at the
Use the convert to uppercase option to convert a Change Table name to all upper case. For
example:
Table_cat, becomes TABLE_CAT
Change Table_cat, becomes TABLE_CAT
taBLe_Cat, becomes TABLE_CAT
Use the convert to lowercase option to convert a Change Table name to all lower case. For
example:
Table_cat, becomes Change Table_cat
TABLE_CAT, becomes Change Table_cat
taBLe_Cat, becomes Change Table_cat
Use the Rename Change Table to [expression] option to change the name of all
Change Tables that fit the definition you created in the Under what Conditions to Transform
step. For example, if you have a Change Table called EMPLOYEE and want to change all
instances of this name as defined in the previous step it to EMP.
Use the Rename Change Table schema to: [string] option to change the name of all
Change Table schemas that you defined in the Under what Conditions to Transform step to
a different name. For example, if you have a Change Table schema called EMPLOYEE and
want to change all instances of this name to EMP then enter the string EMP. You can enter
any string in this field.
Use the Add a prefix or suffix option to add additional characters to the beginning or end
of the Change Table schema name for all tables that fit the definition you created in the
Under what Conditions to Transform step. For example, if the Change Table schema name
is EMPLOYEES, you can add a suffix, such as TAR or _TAR to the Change Table schema name
for all Change Table schemas with that Change Table schema name. In this case, the
resulting Change Table schema name will be EMPLOYEESTAR or EMPLOYEES_TAR.
Use the Remove a prefix or suffix option to remove a string of characters from the
beginning or end of a Change Table schema name for all tables that fit the definition you
created in the Under what Conditions to Transform step.
For example, you can use this option to remove the letters _REV from the Change Table
schema name for all Change Table schemas with the name EMPLOYEES. In this case the
Change Table schema name in the target will be EMPLOYEES.
Use the Replace a prefix or suffix option to replace a string of characters with a
different string of characters. You determine whether to replace the characters at the
beginning or end of a Change Table schema name for all tables that fit the definition you
created in the Under what Conditions to Transform step.
For example, you can use this option to replace the letters _ORIG with _REPL in the Change
Table schema names for all Change Table schemas called EMPLOYEE_ORIG. In this case the
Change Table schema name in the target will be EMPLOYEE_REPL.
Use the convert to uppercase option to convert a Change Table schema name to all upper
case. For example:
Table_cat, becomes TABLE_CAT
table_cat, becomes TABLE_CAT
taBLe_Cat, becomes TABLE_CAT
Use the convert to lowercase option to convert a Change Table schema name to all lower
case. For example:
Table_cat, becomes table_cat
TABLE_CAT, becomes table_cat
taBLe_Cat, becomes table_cat
Use the Rename Change Table schema to [expression] option to change the name of
all tables that fit the definition you created in the Under what Conditions to Transform step.
For example, if you have a Change Table schema called EMPLOYEE and want to change all
instances of the Change Table schema name as defined in the previous step to EMP.
Figure 11.2 | Expression Builder for Filters, Transformations, and Global Transformations
Build an Expression
The first step in using the expression builder is to build an expression. The expression that
you build is displayed in the top section of the right pane. You can open the Expression
when:
You define Defining Transformations for a Single Table/View for a single table.
You define Filters for a single table.
You use the Global transformations dialog box to Rename Schema, Rename Table,
Rename Column, or Add Column.
To build an expression:
1. In the Elements Pane, select any element you want to include in your expression. For
information on the elements you can use in an expression, see Functions.
2. Add an element to the Build Expression panel by selecting it and then clicking the
arrow to the right of the element.
3. Continue to add elements as needed.
Operator toolbar
The Operator toolbar is above the Build Expression box. It contains the most common
operators so you can easily add them to an expression.
The following operators are available in the Operator toolbar:
Parse an Expression
You can parse an expression to determine its parameters and to determine whether the
expression is valid.
To parse an expression:
1. In the Expression Builder window, create an expression as described in Build an
Expression.
2. Click Parse Expression.
Test an Expression
You can use the Attunity Replicate Test procedure to display the results of a test
expression. The following figure is an example of a built expression that is evaluated and
contains a test result.
To test an expression:
1. From the Expression Builder window, Build an Expression.
2. Click Evaluate. See Parse an Expression for more information.
3. View the parameters that are displayed. If your expression is not valid, an error
message is displayed. See Parse an Expression.
4. Type values for each parameter then click Test to see the calculated expression.
For example, type John for FIRST_NAME and Smith for LAST_NAME. The result
displayed is JohnSmith. If you want a space between the words add it to the end of the
FIRST_NAME value or the beginning of the LAST_NAME value.
Variables
Your expression can contain any of the variables (which will be replaced during runtime)
described in the table below.
Table 11.5 | Variables
Operators
The sections below describe the SQLite operators you can use to build an expression with
the Expression builder. The Expression builder divides the operators into the following
categories:
Strings
Logical
Mathematical
Note All operator symbols must be preceded and followed by a space. For example,
the expression for concatenating a first and last name should be specified like this:
FIRST_NAME || LAST_NAME
And not like this:
FIRST_NAME||LAST_NAME
Strings
Logical
The following table describes the logical SQLite operators used by the Attunity Replicate
Expression Builder.
Table 11.6 | Logical SQLite Operators used by Attunity Replicate
Expression Builder
Operator Description
!= or <> Is not equal to
$SALARY!=100000
IS Is the same as
$HIRE_DATE IS 2014-09-29
IS functions the same as = unless one or both of the operands
are NULL. In this case, if both operands are NULL, then the IS
operator evaluates to 1 (true). If one operand is NULL and the
other is not, then the IS operator evaluates to 0 (false).
IS NOT Is not the same as
$HIRE_DATE IS NOT 2014-09-29
IS NOT functions the same as != unless one or both of the
operands are NULL. In this case, if both operands are NULL, the
IS NOT operator evaluates to 0 (false). If one operand is NULL
and the other is not, then the IS NOT operator evaluates to 1
(true).
IN The IN operator takes a single scalar operand on the left and a
vector operand on the right formed by an explicit list of zero or
more scalars or by a single subquery. When the right operand
of an IN operator is a subquery, the subquery must have a
single result column. When the right operand is an empty set,
the result of IN is false regardless of the left operand and even
if the left operand is NULL.
Operator Description
and the left operand contains the string to match against the
pattern. A percent symbol ("%") in the LIKE pattern matches
any sequence of zero or more characters in the string. An
underscore ("_") in the LIKE pattern matches any single
character in the string. Any other character matches itself or its
lower/upper case equivalent. (By default SQLite only
understands upper/lower case for ASCII characters. The LIKE
operator is case sensitive by default for unicode characters that
are beyond the ASCII range.
For example, the expression 'a' LIKE 'A' is TRUE but 'æ' LIKE
'Æ' is FALSE.)
LIKE can be preceded by the NOT keyword.
CASE Evaluates a list of conditions and returns one of multiple
possible result expressions.
Example 1:
WHEN $NEWEST = 'Y' THEN '1' ELSE '0' END
Example 2:
case length($month)
when 2 then $year||$month
when 1 then $year||0||$month end
GLOB The GLOB operator acts in the same way as the LIKE operator
but uses the UNIX file globbing syntax for its wildcards. GLOB is
case sensitive.
GLOB can be preceded by the NOT keyword to invert the sense
of the test. The infix GLOB operator is implemented by calling
the function glob(Y,X) and can be modified by overriding that
function.
MATCH The MATCH operator is a special syntax for the match()
application-defined function. The default match() function
implementation raises an exception and is not really useful for
anything. But extensions can override the match() function with
more helpful logic.
REGEXP The REGEXP operator is a special syntax for the regexp() user
function. No regexp() user function is defined by default and so
use of the REGEXP operator will normally result in an error
message.
Operator Description
AND Both operands are true.
$MANAGER_ID AND EMPLOYEE ID >100
OR Either operand is true.
$MANAGER_ID OR EMPLOYEE ID >100
<< Bitwise shift left.
x << n
A bitwise shift to the left of x by n bits.
>> Bitwise shift right.
x >> n
A bitwise shift to the right of x by n bits.
& Unary and
| Unary or
< Is less than.
$SALARY<100000
<= Is less than or equal to
$SALARY<=100000
> Is greater than
$SALARY>100000
>= Is more than or equal to
$SALARY>=100000
= or == Is equal to
$SALARY=100000
Mathematical
The following table describes the mathematical SQLite operators used by the Attunity
Replicate Expression Builder.
Table 11.7 | SQLite Mathematical Operators used by the Attunity Replicate
Expression Builder
Operator Description
+ Adds two values together.
DEPARTMENT_ID+100 (adds 100 to each ID number). Any
column used in an expression with this operator must be a
Operator Description
numeric data type.
- Subtracts a value from another value.
MANAGER_ID-100 (subtracts 100 from each ID number). Any
column used in an expression with this operator must be a
numeric data type.
% Uses the remainder of a division expression as the value.
%SALARY/7 (Divides the value of the Salary column by 7 and
uses any remainder from the expression as the column value).
/ Divides one value into another.
SALARY/.16 (Divides the value of the Salary column by .16.
Note: If the two values in the division expression are integers
(two NUMERIC columns with no digits after the decimal) and
the result is a fractional value, the result returned will be 0.
* SALARY*.16 (Multiplies the value of the Salary column by .16.
This could be used to calculate taxes that are subtracted from a
salary).
Functions
The sections below describe the SQLite functions you can use to build an expression with
the Expression builder. The Expression builder divides the functions into the following
categories:
Strings
LOBs
Numeric
NULL check
Date and Time
Data Enrichment
Operation
Other Functions
Hash
User-Defined Transformations
Strings
The following table describes the string functions used by the Expression Builder in Attunity
Replicate .
Function Description
lower(x) The lower(x) function returns a copy of string x with all characters converted
to lower case. The default built-in lower() function works for ASCII characters
only.
ltrim The ltrim(x,y) function returns a string formed by removing all characters that
(x,y) appear in y from the left side of x. If there is no value for y, ltrim(x) removes
spaces from the left side of x.
replace The replace(x,y,z) function returns a string formed by substituting string z for
(x,y,z) every occurrence of string y in string x.
rtrim The rtrim(x,y) function returns a string formed by removing all characters
(x,y) that appear in y from the right side of x. If there is no value for y, rtrim(x)
removes spaces from the right side of x.
substr The substr(x,y,z) function returns a substring of input string x that begins with
(x,y,z) the y-th character and which is z characters long. If z is omitted then substr
(x,y) returns all characters through the end of the string x beginning with the
y-th. The left-most character of x is number 1. If y is negative then the first
character of the substring is found by counting from the right rather than the
left. If z is negative then the abs(z) characters preceding the y-th character
are returned. If x is a string then characters indices refer to actual UTF-8
characters. If x is a BLOB then the indices refer to bytes.
trim(x,y) The trim(x,y) function returns a string formed by removing all characters that
appear in y from both sides of x. If there is no value for y, trim(x) removes
spaces from both sides of x.
upper(x) The upper(x) function returns a copy of string x with all characters converted
to upper case.
LOBs
The following table describes the LOB functions used by the Expression Builder in Attunity
Replicate .
Table 11.9 | SQLite Lob Functions used by the Expression Builder
Function Description
hex(x) The hex() function receives an argument as a BLOB and returns an upper-
case hexadecimal string version of the BLOB content.
randomblob The randomblob(N) function returns an N-byte BLOB that contains pseudo-
(N) random bytes. If N is less than 1 then a 1-byte random BLOB is returned.
zeroblob(N) The zeroblob(N) function returns a BLOB that consists of N bytes of 0x00.
The following table describes the numeric functions used by the Expression Builder in
Attunity Replicate .
Table 11.10 | SQLite Numeric Functions used by the Expression Builder
Function Description
abs(x) The abs(x) function returns the absolute value of the numeric argument X. Abs
(x) returns NULL if x is NULL. Abs(x) returns 0.0 if x is a string or BLOB that
cannot be converted to a numeric value.
random() The random() function returns a pseudo-random integer between -
9223372036854775808 and +9223372036854775807.
round The round(x,y) function returns a floating-point value x rounded to y digits to
(x,y) the right of the decimal point. If there is no value for y, it is assumed to be 0.
max The multi-argument max() function returns the argument with the maximum
(x,y...) value, or returns NULL if any argument is NULL. The multi-argument max()
function searches its arguments from left to right for an argument that defines
a collating function and uses that collating function for all string comparisons.
If none of the arguments to max() define a collating function, then the BINARY
collating function is used. Note that max() is a simple function when it has two
or more arguments but operates as an aggregate function if it has a single
argument.
min The multi-argument min() function returns the argument with the minimum
(x,y...) value. The multi-argument min() function searches its arguments from left to
right for an argument that defines a collating function and uses that collating
function for all string comparisons. If none of the arguments to min() define a
collating function, then the BINARY collating function is used. Note that min()
is a simple function when it has two or more arguments but operates as an
aggregate function if it has a single argument
NULL check
The following table describes the NULL check functions used by the Expression Builder in
Attunity Replicate .
Table 11.11 | SQLite NULL Check Functions used by the Attunity Replicate Expression
Builder
Function Description
coalesce The coalesce() function returns a copy of its first non-NULL argument, it
(x,y...) returns NULL if all arguments are NULL. Coalesce() have at least two
arguments.
Function Description
ifnull The ifnull() function returns a copy of its first non-NULL argument, it returns
(x,y) NULL if both arguments are NULL. Ifnull() must have exactly two arguments.
The ifnull() function is the same as coalesce() with two arguments.
nullif The nullif(x,y) function returns a copy of its first argument if the arguments
(x,y) are different and returns NULL if the arguments are the same. The nullif(x,y)
function searches its arguments from left to right for an argument that defines
a collating function and uses that collating function for all string comparisons.
If neither argument to nullif() defines a collating function then the BINARY is
used.
The following table describes the Date and Time functions used by the Expression Builder in
Attunity Replicate .
Table 11.12 | SQLite Date and Time Functions used by the Attunity Replicate Expression
Builder
Function Description
date(timestring, Returns the date in the format YYYY-MM-DD.
modifier, modifier...)
time(timestring, Returns the time in the format HH:MM:SS.
modifier, modifier...)
datetime(timestring, Returns the date and time in the format YYYY-MM-DD HH:MM:SS.
modifier, modifier...)
julianday The julianday() function returns the number of days since noon in
(timestring, modifier, Greenwich on November 24, 4714 B.C.
modifier...)
strftime(format, The strftime() routine returns the date formatted according to the
timestring, modifier, format string specified as the first argument. It supports the
modifier...) following variables:
%d: day of month
%H: hour 00-24
%f: ** fractional seconds SS.SSS
%j: day of year 001-366
%J: ** Julian day number
%m: month 01-12
Function Description
%M: minute 00-59
%s: seconds since 1970-01-01
%S: seconds 00-59
%w: day of week 0-6 sunday==0
%W: week of year 00-53
%Y: year 0000-9999
%%: %
Data Enrichment
Data Enrichment functions allow the selected source tables to be augmented with data
from other records located in either the source or target endpoints. Practical applications
of data enrichment functions include code lookup or master record lookup (e.g. social
security number lookup to find a person’s name).
You can enrich the target tables with supplemental data retrieved from the source or target
endpoint by defining a transformation on the table. For more information about defining
transformations on a single table, see Defining Transformations for a Single Table/View.
Limitations
Amazon Redshift is not supported.
The table below describes the source and target lookup functions, which can be used both
for table transformations and for global transformations. For a description of the
parameters available for these functions, see Input Parameters.
Table 11.13 | SQLite Data Enrichment Functions used by Expression Builder
Function Description
source_lookup Use to retrieve additional data from the source
(TTL,'SCHM','TBL','EXP','COND', endpoint.
COND_PARAMS)
target_lookup Use to retrieve additional data from the target
(TTL,'SCHM','TBL','EXP','COND', endpoint.
COND_PARAMS)
Input Parameters
The possible input parameters for the lookup functions are described in the table below.
For a usage example, see Functions.
Table 11.14 | Lookup Input Parameters for Data Enrichment Functions
Parameter Description
TTL TTL (Time to Live) is the amount of time the 'COND' return value will be
cached. Caching the 'COND' return value improves performance by
reducing the frequency that Attunity Replicate needs to access the
source/target endpoint. As there is no default, you must specify a TTL
value, which can be one of the following:
<SECONDS> - The time to cache the 'COND' return value in seconds. Specify
a short caching time (e.g. 3) for data that is frequently updated or a long
caching time for data that rarely changes.
'NO_CACHING'- Specify 'NO_CACHING' if you do not want to cache the 'COND'
return value. This is recommended for data that is constantly updated (e.g.
share prices).
'NO_EXPIRATION'- For data that is never updated (e.g. a street name),
specify 'NO_EXPIRATION' to store the Functions return value permanently in
the cache.
'SCHM' The schema name.
'TBL' The table on which to perform the lookup.
'EXP' The expression to retrieve data from the lookup table.
Note: The expression syntax must be native to the endpoint it accesses.
The result should be a single column. Possible expressions include: col1,
Parameter Description
col1+5, max(col1).
Note: Full LOB columns are not supported. For information on including
Limited-size LOB columns in the replication, see the description of the
Metadata tab.
Columns (transformations and Filters only), Headers, and Metadata (Global
Transformations Only) can also be used in the expression and are evaluated
before the lookup statement is performed against the endpoint.
'COND' The condition for the lookup statement.
Note: The condition syntax must be native to the endpoint it accesses.
The COND is a single field referencing all required fields.
Example if the lookup table is located in Oracle:
'Fieldname1=:1 and Fieldname2=:2 and Fieldname3 =:3'
Example if the lookup table is located in Microsoft SQL Server:
'Fieldname1=? and Fieldname2=? and Fieldname3=?'
Columns (transformations and Filters only), Headers, and Metadata (Global
Transformations Only) can also be used in the expression and are evaluated
before the lookup statement is performed against the endpoint.
COND_ Any parameters required by the COND parameter.
PARAMS
The COND_PARAMS (condition parameters) is not a single field, but a list of
fields.
Syntax:
$FIELDNAME1 , $FIELDNAME2 , $FIELDNAME3
Full example:
source_lookup(
10000 ,
'HR' ,
'DEPARTMENTS' ,
'DEPARTMENT_NAME’ ,
'COMPANY_ID=? and DIVISION_ID=? and DEPT_ID=?' ,
$COMP_ID , $DIV_ID , $DEPT_ID )
Note To improve efficiency, the source/target lookup tables should be indexed for the
specified lookup fields.
In the following example, Mike needs to add the DEPARTMENT_NAME column to the HR.JOB_
HISTORY table. The DEPARTMENT_NAME column is located in the HR.DEPARTMENTS table in
the source endpoint.
This is how the HR.JOB_HISTORY table appears before the column is added:
This is how the HR.JOB_HISTORY table appears after the Full Load completes:
Operation
The following table describes the Operation functions used by the Expression Builder in
Attunity Replicate .
Table 11.15 | SQLite Operation Functions used by the Attunity Replicate Expression
Builder
Function Description
operation_ When the operation_indicator function is invoked on its own or as part
indicator of an expression, records deleted from the source endpoint will not be
(value_on_ deleted from the target endpoint. Instead, the corresponding target record
delete, will be flagged (with a user-provided value) to indicate that it was deleted
value_on_ from the source. The operation_indicator function also requires you to
update,
provide values to indicate records that were inserted or updated in the
value_on_
source endpoint.
insert)
Note: The operation_indicator function is not supported on tables that do
not have a Primary Key.
Note: It is recommended to add a dedicated column for the flag values,
for example, OPERATION. For an explanation of how to add a column, see
Using the Transform Tab.
To specify the function values:
Replace value_on_delete, value_on_insert and value_on_update with
the values that you want to appear in the target endpoint.
Values should be formatted according to the corresponding column type.
Example when the column type is INT4:
operation_indicator(’1’, ’0’, ’0’)
Example when the column type is STRING:
operation_indicator(’Deleted’, ’Updated’, ’Inserted’)
The following table describes additional functions used by the Expression Builder in Attunity
Replicate .
Table 11.16 | SQLite Functions used by the Attunity Replicate Expression Builder
Function Description
length(x) For a string value x, the length(x) function returns the number of characters
(not bytes) in x before to the first NULL character.
If x is NULL then length(x) is NULL. If x is numeric then length(X) returns the
length of a string representation of X.
like The like() function is used to implement the "Y LIKE X [ESCAPE Z]"
(x,y,z) expression. The ESCAPE (z) clause is optional. If there is a z clause, then the
like() function is invoked with three arguments. Otherwise, it is invoked with
two arguments.
typeof(x) The typeof(x) function returns a string that indicates the datatype of the
expression x: null, integer, real, text, or BLOB.
The Hash function generates a hash value for an inputted column (using the SHA-256
algorithm) and then returns the hex value of the generated hash value.
To use the function in an expression, add the hash_sha256(x) function to the Build
Expression pane and then replace the "x" with the desired source column name (from the
Input Columns tab).
The function is especially useful for masking sensitive information. In the expression
below, for example, the Hash function has been used to obfuscate employees' email
addresses.
Headers
By default, headers for source tables are not replicated to the target. You can determine
which, if any, headers to replicate when you define a transformation by creating an
expression that includes the header.
You can create a filter using header values. Header filters are applied during change
processing. See Using Filters for additional information.
User-Defined Transformations
Customers that requires functionality not provided by Replicate's built-in transformations
can write their own transformations, and then access them from the Replicate Expression
Builder.
The procedure below is based on the sample files located in:
<installation_dir>\addons\samples\MyTransformation
5. Register the new function in the addon initialization function (mentioned in Step 1) as
in the following example:
USER_DEFINED_TRANSFORMATION_DEF *transdef = GET_AR_AO_TRANSFORMATION_
DEF();
transdef->displayName = "prefix_with(X, Y)";
transdef->functionName = "prefix_with";
transdef->description = "prefix_with adds the prefix <Y_> to a given
string X";
transdef->func = trans_prefix_with;
transdef->nArgs = 2;
AR_AO_REGISRATION->register_user_defined_transformation(transdef);
Task Settings
Task-specific replication settings can be configured in the Task Settings dialog box.
Metadata
When you click Metadata in the Task Settings dialog box, you can configure the Target
Metadata Settings for a replication task.
Target Metadata
Target table schema: (if empty, use the schema from the source table): This will
automatically add the owner prefix for the target endpoint to all tables if no source schema
is defined.
Note When replicating to a Hadoop target endpoint, the value specified in this field will
be interpreted as a database name (as opposed to a schema name).
For information on how to override these settings for individual tables, see Handling LOB
Columns.
Option Description
Replicate LOB columns When this option is selected (the default), LOB columns
will be replicated.
Note that replicating LOBs may impact performance. This
is especially true in the case of the large LOBs which
require Replicate to perform a lookup from the source
table in order to retrieve the source LOB value.
Allow unlimited LOB size Select this option - also known as Full LOB mode - to
ensure that all LOBs are replicated without being
truncated. This option should be selected when all (or
nearly all) of the LOBs you wish to replicate are large (i.e.
exceed 1 GB).
Optimize handling when Select this option when you need to replicate both small
LOB size is less than and large LOBs, and most of the LOBs are small.
(KB) When this option is selected, during Full Load, Replicate
will transfer the small LOBs "inline" (which is more
Note This option is efficient), and the large LOBs by performing a lookup from
supported with the the source table.
following endpoints During Change Processing, however, both small and large
only: LOBs will be replicated by performing a lookup from the
Sources: Oracle, source table.
Microsoft SQL
server, MySQL, Note When this option is selected, Replicate will check
PostgreSQL, IBM all of the LOB sizes to determine which ones to transfer
DB2 for LUW, and "inline". LOBs larger than the specified size will be
Sybase ASE. replicated using Full LOB mode.
Targets: Oracle,
Therefore, if you know that most of the LOBs are larger
Microsoft SQL
than the specified setting, it is better to use the Allow
Server, MySQL,
unlimited LOB size option instead.
PostgreSQL, and
Chunk size (KB) Optionally, change the size of the LOB chunks to use when
replicating the data to the target. The default chunk size
should suffice in most cases, but if you encounter
performance issues, adjusting the size may improve
performance.
Limit LOB size to (KB) Select this option if you only need to replicate small LOBs
or if the target endpoint does not support unlimited LOB
size. The maximum permitted value for this field is
102400 KB (100 MB).
When replicating small LOBs, this option is more efficient
than the Allow unlimited LOB size option since the
LOBs are replicated "inline" as opposed to via "lookup"
from the source.
Notes
Any LOBs larger than the specified size will be
truncated.
During Change Processing, small LOBs will be
replicated via "lookup" from the source.
As Replicate converts LOBs to binary format, it's
recommended to specify the size of the largest
LOB you need to replicate, multiplied by three. For
example, if the largest LOB is 2 MB, specify 6 MB.
Important In some scenarios, tasks configured to replicate tables with multiple LOB
columns may consume a large amount of memory. This is because Replicate allocates
memory by multiplying the Limit LOB size to value by the Commit rate during full
load value, the sum of which it multiplies by the number of LOB columns being
replicated. So, for example, if LOB size is limited to 5 MB and the default commit rate is
used (10000 events), a task replicating 6 LOB columns will consume 30 GB of memory.
Note Changes to a column’s LOB size while a task is running will not be reflected in the
Change Table, unless the target tables are created by Attunity Replicate. In such cases,
the task must be configured to drop and create the Change Table (the default) and the
target tables need to be reloaded (after the LOB size has changed).
For more information on the Change Table, see Store Changes Settings. For information
on reloading target tables, see Reload Target and Reload.
Control Tables
Control Tables provide information about the replication task as well as useful statistics
that can be used to plan and manage both the current replication task and future replication
tasks. Aside from the Apply Exceptions table which is always created, you can choose
which Control Tables to create on the target.
Create target control tables in schema: Enter the endpoint schema for the target
Control Tables. If you do not enter any information in this field, then the tables will be
created in the default location in the endpoint.
Note When this field is left empty, the target endpoint is MySQL, and the Multiple
Endpoints option is enabled, a default database named attrep_control will be created
on the MySQL server. The selected control tables will be created in this database.
For more information on the Multiple Endpoints option, see Setting General Connection
Properties.
Note When replicating to a Hadoop target endpoint, the value specified in this field will
be interpreted as a database name (as opposed to a schema name).
Create target control tables in tablespace: When the target endpoint is Oracle,
specify the tablespace where you want the target control tables to be created. If you do not
enter any information in this field, the tables will be created in the default tablespace in the
target database.
Create target control table indexes in tablespace: When the target endpoint is
Oracle, specify the tablespace where you want the control table indexes to be created. If
you do not enter any information in this field, the indexes will be created in the same
tablespace as the control tables.
Table Selection
In addition to the Apply Exceptions table (required), select which of the following Control
Tables you want Attunity Replicate to create on the target endpoint:
Replication Status: Provides details about the current task including task status,
amount of memory consumed by the task, number of changes not yet applied to the
target and the position in the source endpoint from which Attunity Replicate is
currently reading.
Suspended Tables: Provides a list of suspended tables as well as the reason they
were suspended.
Replication History: Provides information about the replication history including the
number and volume of records processed during a replication task, latency at the end
of a CDC task, among others.
Change Data Partitions: The attrep_cdc_partitions table contains records of
partitions created on the target database when Change Data Partitioning is enabled for
a Replicate task. You can use this information to identify partitioned data that needs to
be further processed.
DDL History: The attrep_ddl_history table contains a history of all supported DDL
changes that occurred during a task.
For a list of DDL changes supported by Replicate, see Supported DDL Statements. Note
that DDL changes written to this Control Table are also subject to the limitations
described in the section in Limitations when Capturing DDL Changes.
Note Currently, the DDL History table is only supported with the Hadoop target
endpoint.
Bidirectional
This tab is only applicable to bidirectional replication tasks. When you click Bidirectional
in the Task Settings dialog box, the Loopback Prevention tab is displayed. In
bidirectional replication, loopback prevention is a mechanism that prevents the same data
from being replicated back and forth in an endless loop. To enable loopback prevention,
you need to specify a source and target Loopback prevention table schema.
Bidirectional replication consists of two separate tasks: Task 1 captures changes made to
Endpoint A and replicates them to Endpoint B. Task 2 captures changes made to Endpoint B
and replicates them to Endpoint A. When configuring Task 1 of a bidirectional replication
setup, the source loopback prevention table schema must be identical to the target
Note Oracle schemas are case-sensitive. Therefore, when specifying an Oracle table
schema, make sure to use the correct case in the Loopback Prevention settings in
both Tasks.
Full Load
When you click Full Load in the Task Settings dialog box, you can configure the following:
Full Load Settings
Full Load Tuning
Note Full load can be turned on or off at any stage even if change processing is on.
Once the task begins to process changes, the full load on/off switch is used only as
additional protection against accidental or unauthorized reload.
Note The option to drop or truncate the target tables is relevant only if such operations
are supported by the source endpoint.
DROP and Create table: The table is dropped and a new table is created in its place.
TRUNCATE before loading: Data is truncated without affecting the table metadata.
Note that when this option is selected, enabling the Create primary key or unique
index after full load completes option will have no effect.
Note Currently this option is only available for the Hadoop target endpoint.
Do nothing: Existing data and metadata of the target table will not be affected. New
data will be added to the table.
Note Replicate expects the source column data types to be compatible with the
corresponding target column data types. If you choose either TRUNCATE before
loading or Do nothing and one or more target data types are different than the data
types for the corresponding source columns, use a transformation to convert the data
types as required.
For information on creating data type transformations, see Defining Transformations
for a Single Table/View.
Create primary key or unique index after full load completes: Select this option if
you want to delay primary key or unique index creation on the target until after full load
completes.
After Full Load completes, stop the task: You can set the task to stop automatically
after Full Load completes. This is useful if you need to perform DBA operations on the
target tables before the task’s Apply Changes (i.e. CDC) phase begins.
During Full Load, any DML operations executed on the source tables are cached. When Full
Load completes, the cached changes are automatically applied to the target tables (as long
as the Before/After cached changes have been applied option(s) described below
are disabled).
Select Before cached changes have been applied to stop the task before the cached
changes are applied and/or After cached changes have been applied to stop the task
after the cached changes are applied.
Selecting the Before cached changes have been applied option will stop the task
immediately after Full Load completes. Selecting the After cached changes have been
applied option will stop the task as soon as data is consistent across all tables in the task.
Note When you turn on apply changes you must reload the task or position back to the
point of the previous reload.
DDL handling policy: Determine how to handle the target table for the change capture:
Notes
Executing a DDL on a source table during the Full Load process in a Full Load and
Apply Changes task will cause Replicate to reload the table.
The option to drop or truncate the target tables is relevant only if such operations
are supported by the source endpoint.
Note Store Changes can be turned on or off at any time without affecting anything in
the task. Changes that are processed and not stored as a result of change storage being
turned off can be recovered only by setting the task to an earlier point in time.
If Store Changes is ON, use the following options to determine how to store changes.
Changes can be stored in Change Tables or in a single Audit table. From the Store
changes in drop-down list, choose either Change tables or Audit table according to
your needs.
The following section describes the options that are available when storing changes in
Change Tables.
Suffix: Type a string to use as the suffix for all Change Tables. The default value is __
ct.
The Change Table names are the name of the target table with the suffix appended.
For example, if you have a table called HR and use the default value, the name of the
Change Table will be HR__ct.
For more information, see Working with Change Tables.
Header column prefix: Type a string to use as the prefix for all of the Change Table
header columns. The default value is header__.
For example, the header column stream_position when using the default value is
called header__stream_position.
For more information, see Change Tables.
DDL options: Select one of the following options to determine how to handle DDL
operations on the source tables:
Apply to Change Table: Apply the DDL to the Change Table as well. For
example, when this option is enabled and a column is added to one of the source
endpoint tables, the column will also be added to the corresponding Change
Table.
Ignore: The change event from any DDL is ignored.
Note Currently this option is only available for the Hadoop target endpoint.
Delete old changes and store new changes in existing Change Table: Data is
truncated and added without affecting the table metadata.
Keep old changes and store new changes in existing Change Table: Data and
metadata of the existing Change table are not affected.
In a standard replication task, changes are replicated to the target in no particular order.
Change Data Partitioning enables processing of Change Data from many tables in a
consistent fashion. You can define the duration of partitions as well as the partitioning base
time, thereby ensuring overall consistency of the partitioned data (i.e. no partial
transactions, no order headers without order lines, and so on.)
The partitioned data is stored in the Replicate Change Tables. When the Change Data
Partitions table is selected (in the Control Tables tab), information about the partitions will
be recorded in the attrep_cdc_partitions Control Table on the target database. This
information can be used to identify partitioned data that needs to be further processed.
The partitioning options are as follows:
Partition base time - Partitions are created during a 24 hour time period, which is
calculated according to the specified “Partitioning base time” on the source database
(in UTC time). For example, a partition interval of 8 hours with a “Partitioning base
time” time of 02:00 will create the following partitions: 02:00-10:00, 10:00-18:00,
18:00-02:00 - but not necessarily in that order. For instance, if a task started at 01:00,
then the timeframe of the first partition will be 18:00-02:00. Additionally, if a task
started in the middle of a partition (e.g. at 04:00), its Change Data will be inserted into
the 02:00-10:00 partition (even though no changes were captured before 04:00).
Note If there are existing Change Tables that were created before Change Data
Partitioning was enabled, you need to drop/rename them so that they can be recreated
with the additional "partition_name" column.
The Change Table header columns provide information about the Change Processing
operation such as the type of operation (e.g. INSERT), the commit time, and so on. If you
do not need this information, you can configure Replicate to create the Change Tables
without some or all of the header columns, thereby reducing their footprint in the target
database. To do this, clear the check boxes next to the header columns that you wish to
exclude.
Note that you cannot remove additional columns or restore columns while a task is
running. To change your initial selection, you first need to stop the task, then modify your
selection, and finally reload the target tables.
Note When Change Data Partitioning is enabled, an extra header column named
"partition_name" is added to the Change Tables and automatically selected in the UI.
As this column is required, it cannot be excluded.
The following section describes the options that are available for storing changes in an
Audit table.
Audit table schema: Specify a schema if you do not want the Audit table to be
created under the target endpoint's default schema.
The default schema are as follows:
Audit table tablespace: This option is only available when the task's target endpoint
is Oracle. Enter the tablespace name on the target where you want the Audit table to
be created. If you do not enter any information in this field, then the tables will
created in the default permanent tablespace.
Audit table name: Specify a name for the Audit table.
The default value is attrep__audit_table.
Audit table creation:
If audit table exists when the target is reloaded: Select one of the following to
determine how you want to handle the Audit table when the target is reloaded:
DROP and CREATE audit table: The Audit table is dropped and a new table is
created in its place.
ARCHIVE and CREATE audit table: A copy of the existing table will be saved to the
same schema before the new table is created. The archived table name will be
appended with a timestamp, indicating when the archiving operation occurred (e.g.
attrep_audit_table_20170605175601).
Note Currently this option is only available for the Hadoop target endpoint.
Delete old changes and store new changes in existing audit table: Data is
truncated and added without affecting the Audit table metadata.
Keep old changes and store new changes in existing audit table: Data and
metadata of the existing Audit table are not affected.
For a description of the audit table structure, see Using an Audit Table.
Note Changes to tables without a Unique Index or Primary Key will always be applied
in Transactional apply mode.
Transactional apply: Select this to apply each transaction individually, in the order
it is committed. In this case, strict referential integrity is ensured for all tables.
Batch optimized apply: Select this to commit the changes in batches. In this case, a
pre-processing action occurs to group the transactions into batches in the most
efficient way. This may affect transactional integrity. Therefore, you must select one
of the following to determine how the system will handle referential integrity issues:
Preserve transactional integrity
Note These options are not displayed in bidirectional tasks since such tasks always use
the "Preserve transactional integrity" option.
Note The following target endpoints do not support applying binary data types in Batch
Optimized Apply mode:
ODBC, SAP Sybase IQ, SAP Sybase ASE, HP Vertica, IBM Netezza, Teradata, and
Amazon Redshift.
Note When LOB columns are included in the replication, Batch optimized apply can
only be used with the Limit LOB size to option. For more information about including
LOB columns in the replication, see Metadata.
The following options are available when Batch optimized apply is selected as the
Change Processing Mode:
Apply batched changes in intervals:
Longer than: The minimum amount of time to wait between each application of
batch changes. The default value is 1.
Increasing the Longer than value decreases the frequency with which changes are
applied to the target while increasing the size of the batches. This can improve
performance when applying changes to target endpoints that are optimized for
processing large batches, such as Teradata, HP Vertica, and Pivotal Greenplum.
But less than: The maximum amount of time to wait between each application of
batch changes (before declaring a timeout). In other words, the maximum
acceptable latency. The default value is 30. This value determines the maximum
amount of time to wait before applying the changes, after the Longer than value
has been reached.
Force apply a batch when processing memory exceeds (MB): The maximum
amount of memory to use for pre-processing in Batch optimized apply mode. The
default value is 500.
For maximum batch size, set this value to the highest amount of memory you can
allocate to Attunity Replicate. This can improve performance when applying changes
to target endpoints that are optimized for processing large batches, such as Teradata,
HP Vertica, and Pivotal Greenplum.
Note Replicate applies the changes to the target either when the number of
changes is equal to or greater than the Minimum number of changes per
transaction value OR when the batch timeout value is reached (see below) -
whichever occurs first. Because the frequency of changes applied to the target is
controlled by these two parameters, changes to the source records may not
immediately be reflected in the target records.
The following tuning options are available, regardless of which Change processing mode
is selected:
Offload transaction in progress to disk if:
Attunity Replicate usually keeps transaction data in memory until it is fully committed
to the source and/or target. However, transactions that are larger than the allocated
memory or that are not committed within the specified time limit will be offloaded to
disk.
Transaction memory size exceeds (MB): The maximum size that all
transactions can occupy in memory before being offloaded to disk. The default
value is 1000.
Transaction duration exceeds (seconds): The maximum time that each
transaction can stay in memory before being offloaded to disk. The duration is
calculated from the time that Attunity Replicate started capturing the transaction.
The default value is 60.
Miscellaneous Tuning
Error Handling
Attunity Replicate handles different types of errors during its operation. The way the
system should respond to these errors depends on several aspects, including the
component where the error occurred, the type of error, and the scope of the error.
Because different sites may have different requirements for error behavior, Attunity
Replicate lets you configure the error handling.
You can also add an environment variable that instructs Replicate to create dump files in
the event of a crash. The dump files can then be used by Attunity Support to troubleshoot
the cause of the crash. For more information, see Creating Dump Files.
When you click Error Handling in the Task Settings dialog box, you can configure the
following:
Error Handling Settings:You can determine whether or not to override the global error
handling settings.
Environmental Errors: An error that is caused by an environmental problem in the
source or target endpoint or on the network. Some examples of environmental errors
are loss of communication with the source or target endpoint, restarting a database,
or network problems.
Data Errors: An error related to data processing at the record level. Some examples of
data errors are conversion errors, errors in transformations, or bad data.
Table Errors: An error in processing data or metadata for a specific table. This only
includes general table data and not an error that relates to a specific record.
Apply Conflicts: Errors that occur when the target endpoint is not synchronized with
the source endpoint when processing changes.
This can cause duplicate key errors on INSERT operations or zero rows affected on
UPDATE/DELETE operations.
Environmental Errors
Click the Environmental Errors sub-tab and then click Change to Task Policy to configure
the following:
Maximum retry count: Select this option and then specify the maximum number of
attempts to retry a task when a recoverable environmental error occurs.
To never retry a task, specify "0".
To retry the task an infinite number of times, clear the check box or specify "-1"
(the global error handling default).
When the system attempts to retry the task the designated number of times, the task
is stopped and manual intervention is required.
Interval between retry attempts: Use the counter to select or type the number of
seconds that the system waits between attempts to retry a task.
Increase retry interval for long outages: Select this check box to increase the
retry interval for long outages. When this option is enabled, Replicate doubles the
interval between each retry attempt and the next, until the Maximum retry interval
is reached (and continues retrying according to the specified maximum interval).
Maximum retry interval: Use the counter to select or type the number of seconds
to wait between attempts to retry a task when the Increase retry interval for long
outages option is enabled.
Data Errors
Click the Data Error sub-tab and then click Change to Task Policy to configure the
following:
For a data truncation error: Click the triangle to open the list and select what
happens when an truncation occurs in one or more specific records. You can select one
of the following from the list:
Ignore record: The task continues and the error is ignored.
Log record to the exceptions table (default): The task continues and the
error is written to the exceptions table.
Suspend table: The task continues but data from the table with the error record
is moved into an error state and its data is not replicated
Stop task: The task is stopped and manual intervention is required.
For other data errors: Click the triangle to open the list and select what happens
when an error occurs in one or more specific records. You can select one of the
following from the list:
Ignore record: The task continues and the error is ignored.
Log record to the exceptions table (default): The task continues and the
error is written to the exceptions table.
Suspend table: The task continues but data from the table with the error record
is moved into an error state and its data is not replicated
Stop task: The task is stopped and manual intervention is required.
Escalate error handling when other data errors reach (per table): Select this
check box to escalate error handling when the number of non-truncation data errors
(per table) reaches the specified amount.
Escalation action: Choose what action Replicate should perform when error
handling is escalated. Note that the available actions are dependent on the action
selected from the For other data errors drop-down list described above.
Log record to the exceptions table: The task continues and the error is
written to the exceptions table.
Suspend table (default): The task continues but data from the table with
the error record is moved into an error state and its data is not replicated.
Table Errors
Click the Table Errors sub-tab and then click Change to Task Policy to configure the
following:
When encountering a table error: Select one of the following from the drop-down
list:
Suspend table (default): The task continues but data from the table with the
error record is moved into an error state and its data is not replicated
Apply Conflicts
Click the Apply Conflicts sub-tab and then click Change to Task Policy to configure the
following:
No record found for applying a DELETE: Click the triangle to open the list and
select what happens when there is a conflict with a DELETE operation. You can select
one of the following from the list:
Ignore record (default): The task continues and the error is ignored.
Log record to the exceptions table: The task continues and the record is
written to the exceptions table.
Suspend table: The task continues but data from the table with the error record
is moved into an error state and its data is not replicated.
Stop task: The task is stopped and manual intervention is required.
Duplicate key when applying an INSERT: Click the triangle to open the list and
select what happens when there is a conflict with an INSERT operation. You can select
one of the following from the list:
Ignore record: The task continues and the error is ignored.
Log record to the exceptions table (default): The task continues and the
record is written to the exceptions table.
Suspend table: The task continues but data from the table with the error record
is moved into an error state and its data is not replicated.
Stop task: The task is stopped and manual intervention is required.
Update the existing target record: The target record with the same primary
key as the INSERTED source record is updated.
No record found for applying an UPDATE: Click the triangle to open the list and
select what happens when there is a conflict with an UPDATE operation. You can select
one of the following from the list:
Ignore record: The task continues and the error is ignored.
Log record to the exceptions table (default): The task continues and the
record is written to the exceptions table.
Suspend table: The task continues but data from the table with the error record
is moved into an error state and its data is not replicated
Stop task: The task is stopped and manual intervention is required.
Insert the missing target record: The missing target record will be inserted
Note When this option is selected, LOB columns in the source tables will not
be replicated to the target.
Escalate handling when apply conflicts reach (per table): Select this check
box to escalate error handling when the number of apply conflicts (per table) reaches
the specified amount.
Note When working in Batch optimized apply Change Processing mode, the
calculation of the Apply Conflicts amount does not include DELETE and UPDATE
conflicts that were ignored (as a result of enabling the Ignore Record option
described above).
Escalation action: Choose what action Replicate should perform when handling is
escalated. Note that the available actions are dependent on the action selected in the
drop-down lists described above.
Log error (default): The task continues and the error is written to the task log.
Suspend table: The task continues but data from the table with the error record
is moved into an error state and its data is not replicated
Stop task: The task is stopped and manual intervention is required.
Note When you select Fix record you must be sure that you are using full
supplemental logging to ensure that an UPDATE is not turned into an INSERT. In other
cases, FIX_RECORD can cause an async full load of a record similar to the LOB channel.
Logging
You can set the logging level for task logs by selecting the Logging tab in the Task
Settings dialog box and then selecting the Logging Level sub-tab.The level you set
determines what information is written to the log.
Note You can also set the task logging level from the Tools menu in Monitor view.
For more information, see Monitor Mode and Setting the Task Logging Level.
The following are the available logging levels. The list is in order from the lowest level to
the highest level.
1. Error
2. Warning
3. Info
Character Substitution
You can substitute or delete source characters in the target database and/or you can
substitute or delete source characters that are not supported by a selected character set.
Notes
All characters must be specified as Unicode code points.
Character substitution will also be performed on Replicate Control Tables.
Invalid values will be indicated by a red triangle in the top right of the table cell.
Hovering your mouse cursor over the triangle will show the error message.
Any table-level or global transformations defined for the task will be performed
after the character substitution has been completed.
Use the Substitute or Delete Source Characters table to define replacements for
specific source characters. This may be useful, for example, when the Unicode
representation of a character is different on the source and target platforms. For example,
on Linux, the minus character in the Shift_JIS character set is represented as U+2212, but
on Windows it is represented as U+FF0D.
To Do This
Define substitution actions. 1. Click the Add Character button above the table.
2. Specify a source character and a target character in
the Source Character and Substitute Character
fields respectively.
For example to replace the letter "a" with the letter
"e", specify 0061 and 0065 respectively.
Edit the specified source or Click anywhere in the relevant column and change the
target character character as required.
Delete entries from the Select the desired entry or entries and click the Delete
table button.
To Do This
Define or edit a substitution 1. Select a character set from the Character Set
action. drop-down list in the table.
Any characters not supported by the selected
character set will be replaced on the target by the
character specified in step 2 below.
2. In the Substitute Character column, click
anywhere in the column and specify the
replacement character. For example, to replace
all unsupported characters with the letter "a",
enter 0061.
Disable the substitution action. Select the blank entry from the Character Set drop-
down list.
In this chapter:
Running a Task
Viewing the Task Status
Reading Messages about a Task
Running a Task
After you design a task (see Designing Tasks), you can run and monitor its progress with
one click in Attunity Replicate. This simple Click-2-Replicate function is described in this
topic. In addition, the various types of run options available are also described. This topic
has the following sub-topics.
How to Run a Task
Using the Run Button Options
Note The task run buttons area available in the toolbar at the top of the console in the
following views:
Tasks View (in both Designer Mode and Monitor Mode)
When Viewing Specific Tasks
Copyright © 2018 Attunity Ltd. Chapter 12 | Working with Tasks at Runtime | Page 679
If changes were made to the endpoint, change processing takes place after the full
load operation. If you do not want change processing to occur or if you want to
start change processing from a predetermined point, you must make the
appropriate Using Advanced Run Options selection.
In some cases, task replication may stop due to an error although the task process is still
running.
See Tasks View for information on the task status and how Attunity Replicate displays
information on the current task status.
The Run button is available in the following views:
The Tasks view when you select a task from the Task List.
For the individual task, both the Designer mode and Monitor mode have the Run and
Stop buttons available.
Note You must be in the Monitor mode to view the task progress.
Note If the schema or a filter was changed after the task stopped, the task should
be reloaded as opposed to resumed (see below).
Reload Target (Only available when the Full Load or Full Load and Apply Changes
replication options are enabled)
Using Advanced Run Options
Copyright © 2018 Attunity Ltd. Chapter 12 | Working with Tasks at Runtime | Page 680
Start Processing
This is available the first time you run the task only. This will execute the initial full load
operation. If Change Processing is also enabled for the task or if it is an Apply Changes
only task type, change processing will start as soon as any changes are made to the source
endpoint.
Reload Target
Starts the Full Load and Change Processing (if enabled) from the beginning. Tables that
have already been processed are handled according to the relevant "Target table
preparation" setting.
Note To replicate tables that were added to the local file channel task after the initial
full load, you need to reload both the local and the remote file channel tasks.
Copyright © 2018 Attunity Ltd. Chapter 12 | Working with Tasks at Runtime | Page 681
Using Advanced Run Options
Advanced Run Options provide you with additional options for resuming and restarting
tasks.
To use Advanced Run Options, click the triangle next to the Run button and select
Advanced Run Options.
The Advanced Run Options dialog box opens.
The Advanced Run Options dialog box lets you do the following:
**Restart task and start processing changes from current time: This starts
the Apply Changes replication task from the beginning (as if the task has not run
before).
**Only available for Apply Changes replication tasks.
Tables are already loaded. Start processing changes from:
Note When resuming a task from MySQL, the Date and Time or Source change
position must always correspond to the beginning of a transaction.
Date and Time: Select the date and time from where you want to Replicate to
start processing changes.
Notes
When logs are deleted from the database (e.g. due to a purge policy), a
log matching the specified date and time may not exist. In this case,
Replicate will resume the task from the earliest point it can after the
specified date and time.
The timestamp uses the local time of the browser machine.
This option is not relevant for the File Source endpoint.
Source change position (e.g. SCN or LSN): Specify the position in the log
from where to resume change processing. The source change position format
differs according to your source endpoint. For instance, to resume processing
from a Microsoft SQL Server database, you would need to specify the LSN (e.g.
000000c1:00001d6f:0004). However, if your source endpoint is Oracle, you
would need to specify the SCN (e.g. 10737419121).
Note The Source change position option is supported with the following
source endpoints only:
Oracle, Microsoft SQL Server, MySQL, and PostgreSQL.
Metadata Only:
The "Metadata only" options described below allow you to:
Copyright © 2018 Attunity Ltd. Chapter 12 | Working with Tasks at Runtime | Page 682
Create empty tables on the target and then manually edit them.
Create tables during a task.
Enabling the options will also ensure that supplemental logging is set up correctly on the
source tables before starting the actual replication task.
Recreate all tables and stop: Select this option to recreate the target tables as
defined in the Full Load Settings tab. When "Store Changes" is enabled, the Change
tables/The Audit table will be created as defined in the Store Changes Settings tab.
To use this option, stop the existing task, run the task with this option enabled (the
task will stop automatically) and finally, resume the task.
Create missing tables and stop: Select this option to create missing target tables
including Change Tables. You can use this option to create Change Tables on the target
after enabling the "Store Changes" option (in the Store Changes Settings tab) for an
existing task. To use this option, stop the existing task, run the task with this option
enabled (the task will stop automatically) and finally, resume the task.
Recovery:
Recover using locally stored checkpoint: Use this option if recovery is not
possible using the Resume Processing or Start process changes from options
(due to corrupt swap files, for example). When this option is selected, Replicate uses
the checkpoint data stored in <Data_Folder_Path>\data\tasks\<task_
name>\StateManager to recover the task.
Copyright © 2018 Attunity Ltd. Chapter 12 | Working with Tasks at Runtime | Page 683
Recover using checkpoint stored on target: Select to recover a task using the
CHECKPOINT value from the attrep_txn_state table (created in the target database).
This option will only be available if the Store task recovery data in target
database option was enabled in the Task Settings' Change Processing Tuning tab
before Change Processing completed.
Select this option (as opposed to the Recover using locally stored checkpoint
option) if the files in the Data folder are corrupted or if the storage device containing
the Data folder has failed.
For a detailed explanation of how to set up and implement recovery using the attrep_
txn_state table, see Recovering from Data Folder Loss or Corruption.
Copyright © 2018 Attunity Ltd. Chapter 12 | Working with Tasks at Runtime | Page 684
To set up a task for recovery
1. Design a task. Make sure to enable the Store task recovery data in target
database option in the Task Settings' Change Processing Tuning tab. This option can
be enabled at any time during Change Processing, although it must be enabled before
Change Processing completes.
2. Export the task definitions as described Exporting Tasks.
3. Run the task.
In addition to the selected source tables, the task will write the checkpoint data to the
following table in the target database (and automatically create the table if it has not
already been created by another task):
attrep_txn_state
To initiate recovery
1. Import the task definition exported when you set up the task.
2. Enter the passwords in the endpoint connection settings.
3. Access the attrep_txn_state table on the target database and locate the failed task
in the TASK_NAME column. If there are tasks with the same name running on multiple
Replicate Servers, you will also need to locate the appropriate server in the SERVER_
NAME column. After locating the relevant task, copy the value in the corresponding
CHECKPOINT column.
4. Select the Recover using checkpoint stored on target option and then provide
the CHECKPOINT value (preferably by pasting) as described in Using Advanced Run
Options.
5. Click OK to start the recovery.
During recovery, Replicate does not write anything to the target database until it identifies
the commit event corresponding to the CHECKPOINT value. Once it identifies the
CHECKPOINT commit event, recovery is performed and the task reverts to standard
operation.
Copyright © 2018 Attunity Ltd. Chapter 12 | Working with Tasks at Runtime | Page 685
automatically. As soon as the error state is resolved, the
task is restarted.
The task remains active but paused throughout the error
state. You can stop the task at any time and resolve the
error manually, if necessary.
Fatal Error: When a fatal error occurs, the task stops and
you must resolve the error manually. You cannot start the
task again until the error is resolved. Use the logs or the
messages in the Alerts pane to see the error type.
See also:
View Log Messages for a Task
Viewing Notifications
Viewing Notifications
The Notifications tab displays notifications about the task. These messages alert you to
specific events encountered by a task, such as the task starting or stopping, a specific
error type, or information about latency and disk space.
The Notifications tab displays the time of a notification and a description of the
notification. You define the notifications that are sent for each task and a description for
each notification in the Settings area. For more information, see Define the Notification
Message.
Copyright © 2018 Attunity Ltd. Chapter 12 | Working with Tasks at Runtime | Page 686
Using the Notifications List
When a notification is sent, it is displayed in the Notifications tab. This section describes
the tasks that can be performed in the Notifications tab.
Opening a Notification
When you open a notification, you can see the full message presented in a dialog box. The
dialog box contains a button to copy the text so that you can use it somewhere else for
troubleshooting and the timestamp for the notification.
To open a notification:
1. In the Messages section of the console, click the Notifications tab. The
Notifications tab opens.
2. Select the notification you want to open from the list.
3. Double-click the notification or click Open from the toolbar at the top of the list.
Clearing a Notification
You can clear notifications from the list to make sure that you are seeing only those that
are relevant to you.
To clear a notification:
1. In the Messages section of the console, click the Notifications tab.
2. Select the notification you want to clear from the list.
3. Click Clear from the toolbar at the top of the list.
Sorting Notifications
You can sort log messages according to Date and Time and Message.
Copyright © 2018 Attunity Ltd. Chapter 12 | Working with Tasks at Runtime | Page 687
View Log Messages for a Task
The Log Messages tab displays log messages for errors or warnings from a task. The
errors are listed in this tab with the time of the error or warning and the log entry for the
event. You can choose to view both errors and warnings or only one of them.
If errors or warnings exist in the task, a red circle with the total number of errors and
warnings is displayed. The number displayed may be the number of errors, the number of
warnings, or the total of number of errors and warnings depending on what you select to
view in this tab. The Log Messages tab is shown in the figure below.
Two types of log messages are displayed in the Log Messages List. You can view Errors,
Warnings, or both.
When you open a log message, you can see the full log text presented in a dialog box. The
dialog box contains a button to copy the text so that you can use it somewhere else for
trouble shooting and the timestamp for the log message.
Copyright © 2018 Attunity Ltd. Chapter 12 | Working with Tasks at Runtime | Page 688
3. Click Clear from the toolbar at the top of the list.
You can sort log messages according to Date and Time, Level and Message.
Copyright © 2018 Attunity Ltd. Chapter 12 | Working with Tasks at Runtime | Page 689
13 | Monitoring and Controlling
Replication Tasks
When you monitor and run a task, you can use the Click-2-Replicate function to carry out
the replication task and view its functions in near real time. This section describes how to
run and monitor a replication task.
In this chapter:
Viewing Information in the Monitor
Monitoring Full-Load Operations
Monitoring Change Processing Operations
Viewing Messages
Using the Monitor Tools
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 690
General Information for a Full Load
General information about the full load is presented in a graphical format. The following
figure shows the graphical information displayed when a task is running.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 691
General Information for a Completed Task
This section displays a table with information for all of the completed tables in a task. To
view this table, click the Total Completion bar, shown in the figure below.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 692
Figure 13.3 | Select All Tables
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 693
Figure 13.4 | Completed Tables Status
Note When exclude filters are applied to SAP Application tables, the number
shown in this column will reflect the total number of records before the exclude
filter was applied. Consequently, the "Transferred Count" number may be higher
than the actual number of records that were replicated to the target.
Transferred Volume: The volume of the records (in KB) loaded to the target.
Load Duration: The amount of time that it took for all records to load to the target.
Throughput Records: The average throughput rate for the table. Throughput
describes the number of records read per second. For more information on
throughput, see Monitoring Throughput in a Full Load Operation.
Throughput Volume: The average throughput rate for the table. Throughput
describes the volume of records (in KB) read per second. For more information on
throughput, see Monitoring Throughput in a Full Load Operation.
Reload: Click the Reload icon to reload the data for selected tables and run the full-
load operation again.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 694
Note When replicating to an Oracle database with a full disk and/or partition where
Oracle is trying to write archived redo log files, insert operations may fail. In such as
case, no error will be shown and the task will not progress past the loading stage. To
confirm that this is indeed an Oracle Archiver error, stop and attempt to restart the
task. The task will not start and an appropriate error should be shown.
Progress: The table status and the time the table entered that status.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 695
Reload: Click the Reload icon to reload the data for selected tables and run the full-
load operation again.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 696
The information is displayed in a table that has the following columns:
Table Name: The names of the source tables that stopped due to an error.
Failed On: The time that the error occurred.
Loaded Count: The number of records loaded when the error occurred.
You can set the throughput measurement values either to the number of records replicated
per second, or to the number of kilobytes replicated per second. The display is always
based on the current load operation.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 697
Figure 13.9 | Throughput Details
Note In an Apply Changes only task, Replicate performs the following operations
depending on whether or not the target tables already exist:
If a target table does not exist, Replicate will create it (metadata only).
After the table is created, only INSERT operations will be supported. Other
operations (e.g. UPDATE) will fail since the data does not exist (unless it has been
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 698
inserted earlier).
If the table already exists, Replicate will behave according to the If target table
already exists setting in the task settings' Full Load Settings tab.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 699
Replicate starts to apply that transaction to the selected target and it will take
some time to write all the changes to the target (for example 60 seconds). During
the next 60 seconds, the latency value gradually grows to 70 seconds for the last
change in the transaction. Once the transaction is committed, the latency drops
back to the 'regular' latency (10 seconds in this case).
Latency when no transactions are being applied:
When a time period passes with no changes applied to the target, the latency
calculation is based on the time difference between the current time and the
timestamp of the last change event read from the transaction log. This could
happen if, for example, there is high activity on tables which are not selected for
replication in the current task.
For additional details, you can also view a graph with Information about Apply Latency.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 700
Figure 13.12 | Incoming Change Graphs
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 701
Figure 13.13 | Applied Changes
The following tables are available when you select Applied Changes:
Recent Activity
Aggregates
Recent Activity
Click Recent Activity at the top of the Applied Changes Details section to view
information about which changes occurred in each table. It has the following information:
Table Name: The names of the source tables that are included in the task.
Insert: The number of INSERT operations processed for the specific table.
Delete: The number of DELETE operations processed for the specific table.
Update: The number of UPDATE operations processed for the specific table.
DDL: The number of metadata changes (DDL) processed. DDL changes include
information about events like changes to table names or to column names.
Total Applied: The total number of changes applied to the target.
Data Errors: The number of data processing errors for the specific table. Data errors
occur at the record level and include conversion errors, errors in transformations, and
bad data.
Resetting the Data Errors Count
After you have resolved the data errors it is recommended to reset the data errors
count. This is especially important if you have configured Replicate to perform an
escalation action when the number of errors reaches a certain amount.
Details about the errors can be found in the attrep_apply_exceptions control table.
To reset the error count for a specific table, select the table and then click the Reset
data errors button above the table list. Note that resetting the error count does not
delete the error information from the attrep_apply_exceptions table.
For information about setting a data error escalation policy, see Data Errors.
For information about the attrep_apply_exceptions table, see Apply Exceptions
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 702
Note Reloading a table resets the data error count for that table.
Last Modified: The time the last change occurred for the specific table.
Reload: To reload selected tables, select the tables you want to reload and then click
the Reload button above the table list. When prompted to confirm the operation, click
OK. The data in the selected tables will be reloaded to the target endpoint. Note that
this option is not available for Apply Changes Only tasks.
Aggregates
Click Aggregates at the top of the Applied Changes Details section to view information
about total changes for each change type and transaction type.
The Aggregate table displays the total changes (for all tables) applied for each of the
following types of operations:
INSERT
UPDATE
DELETE
DDL
The Aggregate table also displays the information about transactions. It displays the total
number and volume of:
COMMITS
ROLLBACKS
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 703
You can set the Apply Throughput measurement values either to the number of change
records replicated per second, or to the number of kilobytes replicated per second. The
display is always based on the current load operation.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 704
Figure 13.16 | Apply Latency
The latency values displayed in the Attunity Replicate Console measure the time delay
(latency) between the time when a change is visible to the source (and committed), and
the time when this same change is visible to the target. The display is always based on the
current change being applied. For more information about latency, see Apply Latency
gauge.
Select the Apply Latency gauge to display a graph with the latency details. To view the
graph only, click the expand/collapse arrow in right side of the gray bar above the graph.
Click the arrow again to restore the progress bars and Change Processing gauges.
Note During data capture, the target latency will always be equal to the source latency
(even though no data has reached the target yet). This is simply because target latency
is the sum of source latency + apply latency, and can therefore never be less than the
source latency.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 705
Figure 13.17 | Apply Latency Details Graph
Viewing Messages
You can see messages sent for the task while in the monitor view. For information on
viewing messages, see Reading Messages about a Task.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 706
Downloading a Diagnostics Package
Downloading a Memory Report
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 707
Figure 13.18 | History Window
Note
The logging level can also be set in the Logging Level sub-tab in the Task
Settings dialog box. For more information, see Logging.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 708
3. At the top of the Log Management window, set the Component Logging Level
slider to the log level you want. This sets the logging level for all log modules. Note
that all of the sliders for the individual modules move to the same position that you set
in the main slider.
4. Make any changes to the sliders for the individual modules. This is optional. Note that
if you change the main slider, all of the individual sliders are reset to the new position.
If you want to maintain a different logging level for a specific module, you need to
reset it.
Viewing the Task Log Files and Manually Rolling them Over
In the Log Viewer window, you can view the logs for the task you are currently
monitoring and manually roll them over if necessary.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 709
-OR-
Click the View Logs button in the Messages pane in the lower right of the console.
The Log Viewer window opens.
4. Select the log file you want to view or download from the list in the Log Files pane. If
you want to download the file, skip to Step 8.
5. The contents of the log file will be displayed in the right pane. When you select a row
in the log file, a tooltip will be display the full message of the selected row.
6. You can browse through the log file using the scroll bar on the right and the navigation
buttons at the top of the window.
7. To search for a specific string in the log file, enter the search string in the search box
at the top of the window.
Any terms that match the specified string will be highlighted blue.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 710
4. Optionally change the default number of days (45) and then click the Delete button.
All log files older than the specified number of days will be deleted.
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 711
Example:
MyTask__diagnostics__20180109161333.zip
Copyright © 2018 Attunity Ltd. Chapter 13 | Monitoring and Controlling Replication Tasks | Page 712
14 | Attunity Replicate Server
Settings
This chapter describes how to configure the Attunity Replicate Server settings. Server
settings are managed in SERVER view.
Note
Server settings affect all Tasks that are created in the Attunity Replicate instance
you are working with.
Changes to server settings will not affect running tasks.
In this chapter:
Notifications Settings
License Settings
Global Error Handling
Logging
File Transfer Service
Scheduling Jobs
User Permissions
Resource Control
Notifications Settings
The following can be defined in the Notifications settings:
Defining Notifications
Setting up Mail Parameters
Creating a Default Recipient List
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 713
Defining Notifications
To configure and create notifications, click the Notifications sub-tab.
You use notifications to send messages about events that occur when running tasks in
Attunity Replicate. Notifications are sent to inform users of any change in the system state,
including:
A task is started or stopped
Latency is too high
Memory utilization is too high
Disk utilization is too high
An error or a specific type of error occurred
You can manage notifications that you create from the Notifications list. This list provides
you with information about each notification defined and lets you activate/deactivate a
notification. In addition, you can make changes to the definitions of existing notifications or
delete them.
The following topics describe how to define notifications in Attunity Replicate:
Creating a New Notification
Using the Notification List
Editing a Notification
Deleting a Notification
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 714
4. Continue from Creating a Notification for a Task Event or Define the Recipients as
appropriate.
5. In the Notification Name field, type a name for this notification.
6. Perform the following steps to define the notification:
Define the Action that Triggers the Notification
Define Which Changes of Status Trigger the Notification
Define Errors That Trigger the Notification
Define the Notification Distribution Properties
Determine the Email-Message Recipients for the Notification
Define the Notification Message
Associate Tasks with the Notification
Review the Notification Rule
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 715
Define Which Changes of Status Trigger the Notification
In the Performance/Resources section of the Task Events page, you can define
specific parameters for latency, disk utilization, or memory utilization that trigger a
notification.
Note If you select one of these options, the notification is sent only when the selected
parameter is true. However, you must also Define the Action that Triggers the
Notification.
Table 14.1 | Set Values for Latency, Disk Utilization, Memory Utilizations
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 716
Table 14.1 | Set Values for Latency, Disk Utilization, Memory Utilizations (Cont.)
Once you determine the status changes that trigger a notification, you can decide whether
specific errors trigger a notification.
If you want to send the notification when certain errors occur, click Errors. See Define
Errors That Trigger the Notification for an explanation.
Or you can click Next to Define the Notification Distribution Properties.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 717
To set up notifications for errors:
1. In the New Notification Wizard, Task Events page, click Errors.
2. Select one of the following:
Task encountered a non-retriable error and was stopped: Select this to
receive a notification when an error that cannot be retried is returned and a task
or tasks are stopped due to this error.
Table encountered more than [N] apply errors: Select this to receive a
notification when a specified number of errors that occur in a CDC operation are
applied to a table. In this case, the table is not loaded but the task continues to
run.
Click Value and type the number of errors to trigger the notification. For
example, type 50 to send a notification after fifty records fail to be applied to the
target table. All apply errors are logged in the attrep_apply_exceptions table.
The count of apply errors is reset each time the task starts.
Table processing suspended due to errors: Select this to receive a
notification when an error causes a table to stop processing during a full-load
operation or suspend CDC. In this case, the table process stops, but the task
continues.
Any Error: Select this to receive a notification when an error occurs in the
system.
Any Warning: Select this to receive a notification when a warning is issued in
the system.
Once you determine the error types that trigger a notification, you can:
Define the Action that Triggers the Notification, if you have not done this already.
Define Which Changes of Status Trigger the Notification if you have not done this.
Or you can click Next to Define the Notification Distribution Properties.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 718
Event Log: Select this if you want the notification message to be written to the
Windows/Linux Event log. For information on how to view the Windows/Linux Event
log, see the online help for the version of Windows or Linux you are using.
Default Notification Email List: Select this option if you want to send an email
message to the all the recipients on the Default Notification Email List. For more
information, see Creating a Default Recipient List.
If you choose to add additional recipients to email notifications or send the email message
only to a custom list of recipients, then stay on the Recipients page to Determine the
Email-Message Recipients for the Notification.
If you do not need to create a custom email recipient list for this notification, click Next to
Define the Notification Message.
Note If you click another part of the Attunity Replicate Console, the cell will
become inactive. You can double-click the cell to enter additional information.
4. Press the [tab] key or double click in the in the Email cell, then type the email address
for the user you entered in the Name cell.
5. Click Next to Define the Notification Message.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 719
Define the Notification Message
You can create a message for your notification. By default, a standard message is created
based on the definitions you entered when Define Which Changes of Status Trigger the
Notification and Define Errors That Trigger the Notification.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 720
Table 14.2 | Creating a Notification Message (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 721
Table 14.2 | Creating a Notification Message (Cont.)
Define the
Notification
Distribution
Properties.
Email Subject: In this field, you can edit, In this field, you can edit, change or
This is the subject of change or delete the delete the subject line for an email
the email messages subject line for an email that is sent when the replication
sent for the that is sent when the task returns to the normal range as
notification. replication task meets the you defined when you Define Which
conditions for the Changes of Status Trigger the
See Define the
notification to be sent. Notification.
Notification Distribution
Properties for Example: This field is relevant only for
information about [{{SERVER_NAME}}\ notifications about latency, disk
sending a notification {{NOTIFICATION_NAME}}] utilization, and memory utilization.
as an email. {{TASK_NAME}} high Example:
latency notification
Replicate notification '
This is the subject for an {{NOTIFICATION_NAME}}' for
email message sent when task '{{TASK_NAME}}'
latency reaches a value This is the subject for an email
higher than the value you message sent when latency returns
defined. to within its normal limits.
Email Message: In this field, you can edit, In this field, you can edit, change,
This is the body of the change or delete the or delete the message that is sent
email message sent for message that is sent by by email when the replication task
the notification. email when the replication returns to the normal range as you
task meets the conditions defined when you Define Which
See Define the
for the notification to be Changes of Status Trigger the
Notification Distribution
sent. Notification.
Properties for
information about Example: This field is relevant only for
sending a notification The latency for notifications about latency, disk
as an email. replication task utilization, and memory utilization.
{{TASK_NAME}} exceeds Example
defined limits.
Latency is back to normal,
The current latency is latency is {{LATENCY}}
{{LATENCY}} seconds. seconds
---------------------- This is an email message sent when
----------------------
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 722
Table 14.2 | Creating a Notification Message (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 723
After you define the message sent with the notification, click Next to Associate Tasks with
the Notification.
Variable Description
LATENCY The task latency.
For a definition of latency, see
the Glossary.
MEMORY_USAGE The amount of memory being con-
sumed by all tasks on the Rep-
licate Server machine.
DISK_USAGE The amount of disk space being
utilized by the task on the Rep-
licate Server machine.
COUNT_ERROR_TABLES The number of tables in the task
with an error status.
ERROR_TABLES The names of the tables in the
task with an error status.
COUNT_ACTIVE_TRANSACTION The number of open transactions
in the task.
COUNT_DATA_ERRORS The number of data errors
encountered by the task.
For more information on apply
errors, see Global Error Handling
LOADED_RECORDS The number of records loaded to
the target database during the
task.
CHANGES_RECORDS The number of change records
processed during the task.
FULLLOAD_COUNT_REQUESTED_TABLES The number of tables that are
queued for loading to the target.
FULLLOAD_COUNT_COMPLETED_TABLES The number of tables that were
loaded to the target.
FULLLOAD_COUNT_ERROR_TABLES The number of tables that could
not be loaded to the target due to
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 724
Table 14.3 | Supported Notification Variables (Cont.)
Variable Description
error.
FULLLOAD_REQUESTED_TABLES_LIST The names of the tables that are
queued for loading to the target.
FULLLOAD_COMPLETED_TABLES_LIST The names of the tables that
were loaded to the target.
FULLLOAD_ERROR_TABLES The names of the tables that
could not be loaded to the target
due to error.
TABLE_NAME The name of the table being
processed when the notification
was sent.
TABLE_OWNER The owner of the table being
processed when the notification
was sent.
RECORD_COUNTER The number of records that had
been processed when the
notification was sent.
ERROR_TEXT The error message when a task
ends with an error.
TASK_NAME The name of the task.
NOTIFICATION_NAME The name of the notification.
TABLE_COUNT_APPLY_ERRORS The number of tables with apply
errors.
For more information on apply
errors, see Global Error Handling
SERVER_NAME The host name of the Replicate
Server machine.
STORAGE_UTILIZATION_OLD_STATE The storage utilization state
before it moved to the "new"
state described below.
For a description of possible
states, see Define the Event that
Triggers the Notification.
STORAGE_UTILIZATION_NEW_STATE The storage utilization state after
it moved from the "old" state
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 725
Table 14.3 | Supported Notification Variables (Cont.)
Variable Description
described above.
For a description of possible
states, see Define the Event that
Triggers the Notification.
USED_STORAGE_UTILIZATION The amount of disk space (on the
drive where the Replicate Data
folder is located) used by all
tasks.
TOTAL_STORAGE_UTILIZATION The total amount of disk space
available on the drive where the
Replicate Data folder is located.
Note The Task check box at the top of the check-box column lets you select all of
the tasks that are displayed. When you select this check box it is as if you select
each of the tasks individually. Therefore, if you add tasks in the future they will not
be included.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 726
Review the Notification Rule
The Summary page lets you review the notification rule that you defined so that you can
determine whether the selections you made in the wizard are correct. If you want to make
changes, click Back and go to the page or pages you want to change.
When you are sure that the notification rule is defined in the way that you want, click
Finish to close the wizard and add the rule to the notification list (see Using the
Notification List).
After you close the wizard, make sure to click Save at the top of the Settings page. This
will save the information for all settings, not only for the notification rule that you created.
If you made changes that you do not want to keep, click Discard to discard all changes
before you make changes to any of the other settings.
Use the New Notification wizard to create notifications for task-based events.
Note For changes to task notification settings to take effect, the task(s) needs to be
stopped and resumed.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 727
Task was stopped after Full Load: Cached changes were not applied: To send
the notification when the task is stopped after Full Load completes but before cached
changes (changes to the source tables that occurred during Full Load) are applied to
the target.
Task was stopped after Full Load: Cached changes were applied: To send the
notification when the task is stopped after Full Load completes and cached changes
(changes to the source tables that occurred during Full Load) have been applied to the
target.
Full load started: To send the notification when the Full Load process starts.
Full load completed: To send the notification when the Full Load process completes.
Once you determine when to send the notification, you can decide whether specific changes
in status trigger the notification.
If you want to send a message about problems in latency, memory utilization, or disk
utilization, click Performance/Resources. See Define Which Changes of Status Trigger
the Notification for an explanation.
If you want to send the notification when certain errors occur, click Errors. See Define
Errors That Trigger the Notification for an explanation.
Or you can click Next to Define the Recipients.
Note If you select one of these options, the notification is sent only when the selected
parameter is true. However, you must also Define the Action that Triggers the
Notification.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 728
Table 14.4 | Set Values for Latency, Disk Utilization, Memory Utilization
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 729
Table 14.4 | Set Values for Latency, Disk Utilization, Memory Utilization (Cont.)
Once you determine the status changes that trigger a notification, you can decide whether
specific errors trigger a notification.
If you want to send the notification when certain errors occur, click Errors. See Define
Errors That Trigger the Notification for an explanation.
Or you can click Next to Define the Recipients.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 730
Any Warning: Select this to receive a notification when a warning is issued in
the system.
Once you determine the error types that trigger a notification, you can:
Define the Action that Triggers the Notification, if you have not done this already.
Define Which Changes of Status Trigger the Notification if you have not done this.
Or you can click Next to Define the Recipients.
Note If you click another part of the Attunity Replicate Console, the cell will
become inactive. You can double-click the cell to enter additional information.
Press the [tab] key or double click in the in the Email cell, then type the email
address for the user you entered in the Name cell.
Repeat the above to add more recipients.
When you have finished, click Next to Define the Notification Message.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 731
To create a notification message:
1. In the New Notification Wizard, Message page, double-click in any of the table cells
to open the Edit Notification Message dialog box. See the table Creating a Notification
Message for an explanation of the information to enter in each field.
2. Click in the right pane of the dialog box and begin to type your message. In some
cases a default message is displayed based on the information you entered in the
previous pages of the New Notification Rule wizard. You can edit or delete the
message, or create a new message to be sent with the notification in this dialog box.
3. Add variables in messages and email headers you define for notifications, if
necessary. You can enter variables in one of two ways:
Type a variable into the message pane on the right using the following format:
{{<VARIABLE_NAME >}}
For example: {{TASK_NAME}}.
Use the variables from the left pane of the Edit Notification dialog box. To add
a variable to the notification message, you can:
Double-click the variable. The variable is inserted where your cursor is located in
the notification message in the right pane.
Select the variable you want to use and click the arrow key in the middle of the
Edit Notification Message dialog box. The variable is inserted where your
cursor is located in the notification message in the right pane.
Drag the variable from the left pane to the location you want to place it in the
notification message in the right pane.
For more information, see the Supported Notification Variables.
4. Click OK to enter the message.
5. After you define the message sent with the notification, click Next to Associate Tasks
with the Notification.
The following table describes how to enter the information in the Message page.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 732
Table 14.5 | Creating a Notification Message (Cont.)
Email Subject: In this field, you can edit, In this field, you can edit, change or
This is the subject of change or delete the delete the subject line for an email
the email messages subject line for an email that is sent when the replication
sent for the that is sent when the task returns to the normal range as
notification. replication task meets the you defined when you Define Which
conditions for the Changes of Status Trigger the
See Define the
notification to be sent. Notification.
Recipients for
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 733
Table 14.5 | Creating a Notification Message (Cont.)
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 734
Table 14.5 | Creating a Notification Message (Cont.)
After you define the message sent with the notification, click Next to Associate Tasks with
the Notification.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 735
defined in the Attunity Replicate instance you are using. For example, you can define a
different latency rate for a specific task that is replicating from a slow system.
Note The Task check box at the top of the check-box column lets you select all of
the tasks that are displayed. When you select this check box it is as if you select
each of the tasks individually. Therefore, if you add tasks in the future they will not
be included.
Use the New Notification wizard to create notifications for server-based events.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 736
3. Perform the following steps to define the notification:
a. Define the Event that Triggers the Notification
b. Define the Recipients
c. Define the Notification Message
d. Review the Notification Rule
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 737
System memory utilization increases from normal to the high threshold
System memory utilization increases from normal to the critical threshold
System memory utilization increases from the high threshold to the critical
threshold
System memory utilization returns to normal from the high threshold
System memory utilization returns to normal from the critical threshold
System memory utilization returns to the high threshold from the critical
threshold
Click Next to Define the Recipients.
You can create a custom message for your notification. By default, a standard message is
created based on your settings in the Server Events screen.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 738
notification message in the right pane.
For more information, see the Supported Notification Variables.
4. Click OK to enter the message.
5. After you define the message sent with the notification, click Next to Review the
Notification Rule.
The following table describes how to enter the information in the Message page.
Email Subject: In this field, you can edit the subject line
This is the subject of the email messages sent for an email that is sent when the server
for the notification. meets the conditions for the notification
to be sent.
See Define the Recipients for information
about sending a notification as an email.
Email Message: In this field, you can edit the message
This is the body of the email message sent for that is sent by email when the server
the notification. meets the conditions for the notification
to be sent.
See Define the Recipients for information
about sending a notification as an email.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 739
Supported Notification Variables
For information on the variables that can be included in a notification, see Supported
Notification Variables.
Editing a Notification
You can make changes to any notification rule.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 740
of the pages in the New Notification Rule wizard, see Creating a New Notification.
Note You can only make changes to those sections that you defined when Creating
a New Notification.
You cannot change name of the notification.
If you defined a notification to let you know when the task or full load started
or stopped, this cannot be edited. For example, if you created a notification
rule for starting a task and you now also want to get notified when the task
stops, you must create a new notification rule.
In the Notify When? page, you can make changes to the data you defined in
the original notification rule. For example, if you defined a Memory
utilization message in the Notify when? page, Performance/Resources
section, you can only change this parameter. If you want to add information
about something that was not defined in the original notification rule, for
example you want to add errors to your notification or you want to get
information about latency, you must create a new notification rule.
Deleting a Notification
You can delete notification rules that you no longer want to use.
To delete a notification:
1. From the Notification List select the notification you want to delete.
2. Click Delete (at the top of the list).
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 741
Anonymous login: Check this to allow an Attunity Replicate user to access the
mail server to receive messages without having to provide any user credentials.
User name: Type an email user name for the user account that is sending the
notifications. For SMTP authentication be sure to supply a valid user name.
Password: Type the password for the email user account that is sending the
notifications. For SMTP authentication be sure that password provided is valid.
Sender email address: Enter the email address that sends the email
notifications. This is the address that appears in the From field of the email
notification.
Send test email: Click to open the Send Test Email dialog box.
Email address for test email: Type an email address to receive a test email
message from the server you configured. Use this to determine that the Mail
Parameters you defined are valid.
2. Click Save at the top of the screen to save all of the changes you made, not only for
the recipient list.
Note If you made changes that you do not want to keep, click Discard to discard
all changes before you make changes to any of the other settings.
Note You can choose to send notifications to a different list or to additional users for
any specific notification. You define these exceptions when you create the specific
notification. For more information, see Define the Notification Distribution Properties.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 742
Note Click Save to save the information for all settings, not only for the recipient
list. If you made changes that you do not want to keep, click Discard to discard all
changes before you make changes to any of the other settings.
License Settings
You need to register the software before you can use Attunity Replicate. Your Attunity
vendor should provide you with a text file called license.txt. This file contains details such
as the product expiration date (if any).
Use the License settings page for:
Requesting a License
Registering a License
Viewing a License
Requesting a License
You must have a valid license to work with Attunity Replicate. You can request a license
from the License settings page in the Attunity Replicate Console. In the License Request
dialog box, fill out the required information and submit the request by email. Once your
request is approved, the license file is sent to you by email. To use Attunity Replicate,
register the license by using the procedure described in Registering a License.
To request a license:
1. From the Server page, click License.
2. At the top of the License tab, click Request License.
The Replication License Request dialog box opens.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 743
3. Enter the requested information:
Request type: Select one of the following:
New License: Select this if this is your initial license request.
Extend License: Select this if you have a license and want to extend its
period of validity.
Alter License: Select this if you want to make changes to an existing
license. For example, if you want to add additional sources or targets or
change the host computer.
License to: Type the name of the company or group that is requesting a license
to use Attunity Replicate.
License type: Select one of the following:
Permanent: Select this if the license will always be valid. Permanent
licenses do not require an expiration date.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 744
Evaluation: Select this if you are requesting a temporary license to use
Attunity Replicate for a trial period.
Term: Select this if you are requesting a license that is valid for a specific
period of time. In this case you must be sure to include an expiration date in
your request.
Expiration date: Click in this field to select the expiration date using the pop-up
calendar. This is required only if you selected Evaluation or Term in as the
License type.
Hosts: Type the name of the local computer where Attunity Replicate is installed.
By default the name of the local computer is displayed in this field. You can
change this or add additional computers if you are installing Attunity Replicate in
a different or an additional location.
Source Types: Click Edit to open the Edit Source Types dialog box. Check the
endpoint types you are working with as your replication sources. You can select
one or more endpoint endpoints as necessary. If you need to work with all
available endpoints, click All.
Target Types: Click Edit to open the Edit Target Types dialog box. Check the
endpoint types you are working with as your replication targets. You can select
one or more endpoint endpoints as necessary. If you need to work with all
available sources, click All.
4. Click Send by Mail to open an email request for the license. Send the email to the
address entered in the recipient field of your default email client.
Note If you have not registered a default email client, clicking the Send by Mail
button will not open your email client. For instructions on registering a default
email client, refer to your browser's or operating system's online help.
Click Copy to Clipboard to copy the information to the computer’s clipboard. You can
paste this information into the Advanced license request and edit it as necessary. For
more information, see Using the Advanced License Request Option.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 745
Registering a License
You must have a valid license to work with Attunity Replicate. If you did not receive a
license.txt file, you can request a license using the procedure described in Requesting a
License. Once you receive the license, you must register it to work with Attunity Replicate.
To register a license:
1. Copy the license.txt file to your computer or any computer in your network you
have access to.
2. From the Server page, click License.
3. At the top of the License tab, click Register License.
The Register License dialog box opens.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 746
4. Click Load and browse to find and select the license file.
The license text is displayed in the dialog box as shown above. Check to be sure that
the details are correct.
5. Click Register License to register the license. A message indicating the license was
registered successfully is displayed.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 747
Note A message is displayed at the top of the Attunity Replicate Console that
indicates that you have a valid license and when it expires. If the license is expired
or invalid, the message indicates this.
You can also click on this message link to request, register, or view license
information.
Viewing a License
You can view the license information in the Attunity Replicate Console at any time.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 748
you define a task to use the definitions you create for that task. For information on how to
configure error handling for a specific task, see Error Handling in the Customizing Tasks
chapter.
Logging
The following topics describe the server logging management options:
Setting Logging Levels for the Server and File Transfer Service
Setting Automatic Roll Over and Cleanup
Viewing and Downloading Log Files
Deleting Server, Task and FTS Log Files
Setting Logging Levels for the Server and File Transfer Service
You set the logging level for the Replicate Serverlogs and File Transfer Service logs in
Server view. The level you set determines what information is written to the logs. The
Server logs provide information about the Attunity Replicate Server instance you are
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 749
working with as opposed to individual tasks. For information on configuring the task logs,
see Setting the Task Logging Level.
The following logging levels are available, ordered from the lowest level to the highest:
1. Errors
2. Warnings
3. Info
4. Trace
5. Verbose
The higher levels always include the messages from the lower levels. Therefore, if you
select Error, only error messages are written to the log. However, if you select Info,
informational messages, warnings, and error messages are included. Selecting Verbose
writes all possible messages to the log.
You can set a global logging level for all components or you can set a separate logging
level for each component.
Note Click Save to save the information for all settings, not only for the logging
settings. If you made changes that you do not want to keep, click Discard
Changes to discard all changes before you make changes to any of the other
settings.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 750
This option is useful for tasks that fail unpredictably and for no obvious reason. The
problem with continually writing large amounts of information to the logs is twofold:
Running in "Trace" or "Verbose" logging mode will quickly use up available disk space
(unless the logging settings have been configured to prevent this).
Continually writing large amounts of data to the logs will affect performance.
Automatic Rollover
You can determine when to stop logging to the current log file and begin to log to a new log
file. Rolled over log files are appended with a 12-digit timestamp. The current server log
file is named repserv while saved (older) server log files are named repserv_
xxxxxxxxxxxx.
The current running task log file is named reptask_<task_name> while saved (older) task
log files are named reptask_<task_name>_xxxxxxxxxxxx.
For both server and task saved log file names, xxxxxxxxxxxx represents a 12-digit
timestamp.
Roll over the log if the log file is older than (days): Select the check box and
then specify the maximum number of days the current log file is allowed to exist
before being rolled over.
The default value is 7 days.
Roll over the log if the log file is larger than (MB): Select the check box and
then specify the maximum number of megabytes the current log file is allowed to
reach before being rolled over.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 751
Note When the Store trace/verbose logging in memory, but if an error
occurs, write to the logs option is enabled, the actual size of the repsrv.log
may reach the sum of the Allocate memory up to (MB) size and the Roll over
the log if the log file is larger than (MB) size, before it is rolled over.
For more information on the "Store trace/verbose logging in memory" option, see
Setting Logging Levels for the Server and File Transfer Service
Notes
If you edit this setting while tasks are running, the new setting will not affect the
task log files until the tasks are stopped and then resumed. The server log files are
not affected by this limitation.
The scheduled process (LogFileCleanLogs) that checks the log file size runs every
five minutes. Consequently, the actual size/age of the rolled over log file may
deviate slightly from the specified value(s).
Automatic Cleanup
You can determine the maximum number of days old log files (i.e. log files that have been
rolled over) are retained before being deleted.
Delete log files that are older than (days): Select the check box and then specify
the maximum number of days to retain a saved log file. Log files that are older than
the specified number of days will be automatically deleted from the system. For
example, if you specify 4, then on the fifth day, any log file older than 4 days will be
deleted.
The default value is 45 days.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 752
Manually Rolling Over the Log Files
You can manually roll over the Replicate Server log files if necessary. This lets you stop
logging to the current log file and begin to log to a new log file. The currently open log file
does not have a timestamp. The name of saved (older) log files is appended with a 12-digit
timestamp.
How it Works
A solution using FTS consists of two Attunity Replicate Servers: A local Attunity Replicate
Server installed on the source endpoint LAN and a remote Attunity Replicate Server
installed on the target endpoint LAN.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 753
A local task on the local server is defined from the source endpoint to a File Channel target.
A remote task on the remote Attunity Replicate Server is defined from a File Channel
source to the target endpoint.
The FTS runs on the remote Attunity Replicate Server only and transfers the File Channel
files from the storage location defined in the local task to the storage location defined in
the remote task.
Upon file transfer, and before Compression and Encryption, large files are split into smaller
blocks which form recoverable transport units, and small files are merged into bigger
blocks to be sent at the same time. The blocks are then transferred and reconstructed into
File Channel files when received by the FTS server.
For information on setting up a File Channel source or target to use FTS, see Using
Advanced Properties for a File-Channel Source and Setting Advanced Connection Properties
respectively.
Compression
File Channel files are compressed upon sending using GZIP. You can disable the
compression and control the compression level.
Encryption
After compression, File Channel files are encrypted using a randomly generated AES-256
session key. The session key is exchanged between the client and server using the Diffie-
Hellman key exchange protocol which is authenticated using a secret key that is shared
between the client and the server.
Note The File Transfer Service should be configured on the remote Attunity Replicate
Server only.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 754
Name: The name of the File Transfer Service.
Host: The host name or IP address of machine on which the remote Attunity
Replicate Server is installed. The default is 0.0.0.0 (all interfaces). If the server
has multiple NICs (Network Interface Cards), you can define a different File
Transfer Service for each card.
Port: The port through which the File Channel files are received.
Enabled: select the check box to enable the File Transfer Service.
5. Click Save to save your settings.
Note When you edit a File Transfer Service, make sure that any File Channel
targets configured to use the File Transfer Service are also updated accordingly.
For more information on File Channel Targets, see Setting General Connection
Properties.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 755
Deleting a File Transfer Service
You can delete File Transfer Services that you no longer want to use.
Scheduling Jobs
Use the Attunity Replicate Scheduler to schedule a one-time job or a recurrent job for
specific task operations. A job is essentially an operation that can be scheduled to occur
once, daily, weekly or monthly.
The following operations can be scheduled:
Run/Resume a task
Stop a task
Reload a task
Note The Executed Jobs tab will only show executed jobs that were scheduled to
run once only. In other words, jobs scheduled to run periodically (e.g. Daily,
Weekly, Monthly) will not be shown.
Note For Full Load only tasks, it is preferable to select Reload target rather
than Run task when the scheduling is set to Daily, Weekly or Monthly. This
will update the table’s data whereas Run task will replace the existing table.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 756
Stop task
Reload target
Note Selecting Reload target will execute the task according to the task's
replication settings. For example, if the task's Full Load and Apply Changes
options are enabled, Reload target will reload the target tables and apply
any subsequent changes.
Note For reference, both the server local time and the UTC time are displayed to
the right of the Scheduled Time heading.
Note To run the job on the last day of evey month, select Last day of every
month from the Day of month drop-down list.
Optionally, select the Run job as soon as possible after scheduled time is
missed check box. If the Attunity Replicate Server is offline for whatever reason (e.g.
for maintenance), any jobs that were scheduled to run during that time, will be
submitted after the machine is brought back online (at the earliest opportunity).
7. For the Apply to tasks option, select which tasks to schedule. Select either All tasks
to apply the job to all current and future tasks or Selected tasks to apply the job to
specific tasks. If you choose Selected tasks, a list of currently defined tasks is
displayed. Select which tasks to apply the job to.
8. Click OK to save your settings.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 757
To enable or disable a scheduled job:
In the Scheduled Jobs tab, select or clear the check box in the Enabled column as
required.
User Permissions
You can grant Attunity Replicate users different permissions according to the tasks you
want them to perform. Four predefined "roles" are available: Admin, Designer, Operator
and Viewer. Each role has its own set of permissions, which are described in the following
table.
Default User Permissions According to Roles
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 758
Permissions Admin Designer Operator Viewer
Open the Manage Endpoint Connections Yes Yes Yes Yes
window and view the following endpoint
settings: Name, type, description, and role.
Click the Test Connection button in the Yes Yes Yes No
Manage Endpoint Connections window.
View all of the endpoint settings in the Manage Yes Yes Yes No
Endpoint Connections window.
Edit the following server settings: Notifications, Yes Yes Yes No
scheduled jobs, and executed jobs.
Edit the following server settings: Mail server Yes No No No
settings, default notification recipients, license
registration, global error handling, logging, file
transfer service, user permissions, and
resource control.
Note The user under whose account Attunity Replicate is installed will be associated
with the Admin role by default.
You can set user permissions using Active Directory Groups or Local Groups. To set user
permissions using Active Directory groups, you can either create Active Directory groups
with the names listed in the following table or you can create Active Directory groups with
different names. Then, add users to the groups according to the role you want them to
perform.
For information on encrypting user permissions, see Encrypting the User Permissions File.
Note If you create Active Directory groups with different names, you need to add them
to the User Permissions window and set their permissions as described in Managing
User Permissions.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 759
Managing User Permissions
This section explains how to edit user permissions as well as how to add or remove users
and groups.
Resource Control
You can set high and critical disk space and memory utilization thresholds. Thresholds are
calculated as a percentage of total capacity. So, for example, a disk space utilization
threshold of 80% would mean that 20% of available disk space remains.After setting the
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 760
thresholds, you can click the New Notification button to define a notification that will be
sent whenever a given threshold is exceeded and/or returns to normal.
Disk Space
In the High Disk Space Utilization Threshold section, specify the high disk space
utilization threshold (in terms of percentage). When the threshold is reached, a notification
will be sent (if defined).
In the Critical Disk Space Utilization Threshold section, specify the critical disk space
utilization threshold (in terms of percentage). When the threshold is reached, all tasks will
be stopped and a notification will be sent (if enabled). Replicate will resume the tasks
automatically when there is sufficient disk space to do so.
System Memory
Memory utilization is calculated using the following formula (note that “swap file” is used
generically to refer to both page file memory on Windows and swap file memory on Linux):
(used_swap_file + used_physical_memory) /
(total_swap_file + total_physical_memory) * 100
Example:
(5 GB + 5 GB) / (10 GB + 10 GB) * 100 = 50%
In the High System Memory Utilization Threshold section, specify the high system
memory utilization threshold (in terms of percentage). When the threshold is reached, a
notification will be sent (if defined).
In the Critical System Memory Utilization Threshold section, specify the critical
system memory utilization threshold (in terms of percentage). When the threshold is
reached, Replicate will start stopping tasks and a notification will be sent (if enabled). The
tasks will be resumed automatically when there is sufficient memory to do so.
Copyright © 2018 Attunity Ltd. Chapter 14 | Attunity Replicate Server Settings | Page 761
A | Using Change Tables
You can use Attunity Replicate tasks to save the change events in change tables. This
section describes how to use Attunity Replicate with change tables.
In this appendix:
Working with Change Tables
Reading the Change Tables
Use Example
Copyright © 2018 Attunity Ltd. Appendix A | Using Change Tables | Page 762
To apply TRUNCATE operations to both the Change Table and the Target Table
(for sources that support TRUNCATE):
1. In the task settings' Store Changes Settings tab, make sure that Apply to change
table (the default) is selected from the DDL options drop-down list.
2. In the task settings' Apply Changes Settings tab, make sure that TRUNCATE target
table (the default) is selected from the When source table is truncated drop-down
list.
Change Tables
For every target table in the replication task, a change table with the corresponding name
is maintained by Attunity Replicate in the endpoint with the target tables. For more
information, see Working with Change Tables. A change table contains the original table
columns, and header columns. The header columns contain a prefix so that the name does
not conflict with the source table column names. The default prefix is header__. For
Copyright © 2018 Attunity Ltd. Appendix A | Using Change Tables | Page 763
information on how to change this prefix, see the Change tables listing under Metadata in
Task Settings. The following table lists the default change table header columns.
Copyright © 2018 Attunity Ltd. Appendix A | Using Change Tables | Page 764
Table A.1 | Change Table Headers (Cont.)
Copyright © 2018 Attunity Ltd. Appendix A | Using Change Tables | Page 765
Table A.1 | Change Table Headers (Cont.)
Use Example
The following SQL statement returns a range of changes that starts after the last handled
event (of change sequence "20120723144522110000000000000901203") and until the
event committed on 23-Jul-2012 at 23:00:00.00. For update we also get the before image
value (here for the salary before and after).
SELECT CHANGE.[header__change_seq]
,CHANGE.[header__stream_position]
,CHANGE.[header__operation]
,CHANGE.[header__transaction_id]
,CHANGE.[header__timestamp]
,CHANGE.[EMPLOYEE_ID]
,CHANGE.[FIRST_NAME]
,CHANGE.[LAST_NAME]
,CHANGE.[SALARY]
,BI.[SALARY]
FROM [Replication].[HR].[EMPLOYEES_ct] CHANGE LEFT OUTER JOIN
[Replication].[HR].[EMPLOYEES_ct] BI ON
Copyright © 2018 Attunity Ltd. Appendix A | Using Change Tables | Page 766
BI.[header__change_seq] = CHANGE.[header$__change_seq] AND
BI.[header__change_oper] = 'B'
WHERE CHANGE.header__oper <> 'B' AND
CHANGE.[header__stream_position] >
'20120723144522110000000000000901203' AND
CHANGE.[header__stream_position] <= '2012072323000000Z' AND
ORDER BY
CHANGE.[header__stream_position], CHANGE.[header$__stream_oper]
Copyright © 2018 Attunity Ltd. Appendix A | Using Change Tables | Page 767
B | Using an Audit Table
When defining a replication task, you can choose to store changes to all tables in a single
audit table (located in the target endpoint). The changes can then be pushed from a single
stream to any queue (JMS for example).
The following table describes the structure of the Audit table.
Copyright © 2018 Attunity Ltd. Appendix B | Using an Audit Table | Page 768
Table B.1 | Audit Table Headers (Cont.)
Copyright © 2018 Attunity Ltd. Appendix B | Using an Audit Table | Page 769
For more information on storing changes in an audit table, see Store Changes Settings.
Copyright © 2018 Attunity Ltd. Appendix B | Using an Audit Table | Page 770
C | Creating Dump Files
Dump files are created when a component crashes and creates an exception code. They
are useful for troubleshooting such crashes as they states at exactly what line or area of
memory the crash occurred.
Copyright © 2018 Attunity Ltd. Appendix C | Creating Dump Files | Page 771
D | Pivotal Greenplum Prerequisites
for Attunity Replicate
This section specifies the requirements for working with a Pivotal Greenplum database or
endpoints with Attunity Replicate.
In this appendix:
Required Pivotal Greenplum Software Environments
Required Pivotal Greenplum Configuration and Environment
Troubleshooting gpfdist Issues
Start gpfdist
Open a command shell and change the current directory to the directory where you created
the Test Input File and the SQL Script File. Then start the gpfdist program with the
following command:
$ gpfdist -v -p <<gpfdist-port>> -d .
In this appendix:
Setting up Attunity Replicate in a Windows Server Cluster (HA)
Setting up Attunity Replicate in a Linux Cluster
where:
replicate_data_folder is the shared storage location of the Replicate data folder
defined earlier (e.g. F:\Replicate\data), new_master_key is the new master key, and
new_master_user_key is the new master user key.
Important: The setmasterkey command overrides the mk.dat file, rendering all
stored secrets invalid (as they were encrypted using the old key). Therefore, after
changing the master key, you need to reenter the passwords in all of the relevant
places. For more information, see Changing and Protecting the Master Key.
Additionally, because the Replicate server password is also stored in the mk.dat
file, you need to reset it as described in Changing the Server Password.
Note Attunity Replicate must be installed on the computers where you defined the
service for the Attunity Replicate services to be available in the list.
Notes
All Control Table timestamps are in UTC format.
Control tables are not created in Full Load only replication tasks.
Setting Replicate to DROP and CREATE the table if the target table already exists
will not affect Control Tables.
In this appendix:
Apply Exceptions
Replication Status
Suspended Tables
Replication History
Change Data Partitions
DDL History
Apply Exceptions
Change Processing errors are recorded in the attrep_apply_exceptions table, which is
described below.
The data in this table is never deleted.
Suspended Tables
When a table is suspended, information about the table including the reason for its
suspension is recorded in the attrep_suspended_tables table. If a table is suspended and
then unsuspended while the task is running, the entries for that table will be deleted from
the attrep_suspended_tables table.
When a task with suspended tables stops, records for that task will remain in the attrep_
suspended_tables table. In the event that the tables are still suspended when the task is
restarted, the data is deleted and then recorded again.
Replication History
The attrep_history table provides statistics about each task, such as the number and
volume of records processed during a particular timeslot.
A new record is appended to the table at the end of each TIMESLOT_DURATION. In other
words, the data in this table is never deleted.
DDL History
The attrep_ddl_history table contains a history of DDL changes that occurred in the
source during replication to the target.
Note Currently, the DDL History table is only supported with the Hadoop target
endpoint.
A new record is inserted into the table whenever a supported DDL change occurs in the
source. Multiple ALTER TABLE statements that occur during a task may be represented as a
single row in the control table. The JSON buffer (see below) describes all the changes that
occurred (e.g. ADD COLUMN A, DROP COLUMN B, ALTER COLUMN C).
For information on enabling the DDL History Control Table as well as its limitations, see
Control Tables.
Note When the Apply Changes task option is enabled, an entry is created for the
base table (e.g. tblT1). If the Store Changes task option is also enabled, an additional
entry is created for the CT table (e.g. tblT1__CT).
In this appendix:
Prerequisites
Table Settings
Task Setting Limitations
Prerequisites
Before designing a task with HP NonStop SQL/MP as an ODBC Target, the following
prerequisites must be met:
All source tables and their indexes must already exist on the target database.
The default name for the Replicate Apply Exceptions table (attrep_apply_
exceptions) is not compliant with HP NonStop SQL/MP table naming conventions
which dictate that table names cannot exceed 8 characters or contain non-
alphanumeric characters. To resolve this conflict, you need to add the following entry
to your NAVMAP file or create a new NAVMAP file (The NAVMAP file is located in the
subvolume where ARC is installed):
Syntax:
[SQLMP]
attrep_apply_exceptions= \machine_name.$volume_name.subvolume_
name.atreapex
You also need to manually create the Apply Exceptions table on the HP NonStop
SQL/MP target before starting the task. The table should be named atreapex and
should contain the following columns:
Copyright © 2018 Attunity Ltd. Appendix G | Using HP NonStop SQL/MP as an ODBC Target | Page 789
Column Name Data Type
TASK_NAME Varchar(128)
TABLE_OWNER Varchar(128)
TABLE_NAME Varchar(128)
ERRORTIME Datetime year to fraction
STATEMENT Varchar(1000)
ERROR Varchar(1000)
If you intend to enable the Replicate Store Changes option, you need to manually
create the audit table on the HP NonStop SQL/MP target before starting the task.
Note This also requires you make the following changes in the Store Changes
Settings tab:
Select Audit table from the Store changes drop-down list.
Change the default audit table name from attrep_audit_table to atreauta.
Note : You also need to create a Unique Index consisting of the task_name and
stream_position columns (marked with an asterisk above).
Copyright © 2018 Attunity Ltd. Appendix G | Using HP NonStop SQL/MP as an ODBC Target | Page 790
Table Settings
When the source database in a Replicate task is not HP NonStop SQL/MP, you must make
sure that the selected source tables comply with HP NonStop SQL/MP conventions and
limitations. This section describes how to apply transformations to source tables that are
not HP NonStop SQL/MP-compliant.
The maximum size of a Unique Index in HP NonStop SQL/MP cannot exceed 240 bytes.
In the Transform tab of the <Table_Name> Table Settings dialog box, you can
check which columns comprise the Unique Index and change them if necessary (i.e. if
their combined Type value exceeds 240 bytes). For an explanation of how to do this,
see Using the Transform Tab.
HP NonStop SQL/MP does not support UPDATE operations on Primary Key columns.
Therefore, if your application updates source tables columns that are part of a Primary
Key, you will need to create the target table with a Unique Index on those columns
instead of a Primary Key. For an explanation of how to do this, see Using the
Transform Tab.
Valid HP NonStop SQL/MP table names cannot exceed 8 characters or contain non-
alphanumeric characters. If any of the source table names are not HP NonStop
SQL/MP-compliant, you will need to map them to a valid name.
To do this:
Open the <Table_Name> Table Settings dialog box as described in Table
Settings.
In the General tab’s Table Name field, enter the new table name.
Copyright © 2018 Attunity Ltd. Appendix G | Using HP NonStop SQL/MP as an ODBC Target | Page 791
from the Store changes in drop-down list. This also requires you to manually
create the Audit Table on HP NonStop SQL/MP before starting the task, as
described in Prerequisites above.
After creating the Audit table, specify its name in the Audit table name field
(instead of the default name).
Audit table creation options:
As the Audit Table is created manually, the DROP and CREATE audit table
option is not supported.
Change Processing Tuning: Only "Transactional apply" Change processing
mode is supported.
Error Handling: No limitations.
Logging: No limitations.
For a detailed description of Task Settings, see Task Settings.
Copyright © 2018 Attunity Ltd. Appendix G | Using HP NonStop SQL/MP as an ODBC Target | Page 792
H | Impact of DST Change on
Attunity Replicate
This section describes how Attunity Replicate is affected by Daylight Saving Time (DST)
and provides guidelines for handling changes brought about by DST.
There are two types of DST changes:
DST On - Occurs approximately when Summer starts (actual date is country specific).
Its impact on local time is that local time is moved one hour forward (so, for example,
01:00 AM becomes 02:00 AM). This DST change does not impact Attunity Replicate
because it does not result in time overlap.
DST Off - Occurs approximately when Winter starts (actual date is country specific).
Its impact on local time is that local time is moved back one hour (so, for example,
02:00 AM becomes 01:00 AM). This DST change results in time overlap where local
time travels over the same hour twice in a row.
The comments below assume that the customer has not changed the time but rather the
timezone or the DST setting. Changing the actual time (not for minor time adjustments) is
a sensitive operation and is best done when Attunity Replicate is stopped.
Running Attunity Replicate tasks do not depend on the timezone or DST for correctly
scanning and processing the transaction logs. Internally, Attunity Replicate timers use
UTC.
Still, there are several places where DST may have an effect:
1. Timestamps in logs and audit messages are in local time. As a result, when Winter
time starts, the logs will show the time going back an hour; conversely, when Summer
time starts, the logs may appear to be missing one hour.
2. Scheduled jobs as well as the global and table manipulation variables timestamp and
commit_timestamp use local time so these will also be affected. The impact of this
depends on the manipulation done and on the intended use of the timestamp based
data.
Copyright © 2018 Attunity Ltd. Appendix H | Impact of DST Change on Attunity Replicate | Page 793
If you have existing jobs scheduled to start at the overlap time and you do not want
to modify them, then you need to stop the Attunity Replicate Server. Going in to
Winter time, for example, if at 02:00 AM the clock is to be set back to 01:00 AM
then when the time is 00:55 AM the Attunity Replicate Server should be stopped
and, after an hour and ten minutes (at 01:05 AM), should be started again.
If you forget to do this, all scheduled jobs will run an hour earlier than intended.
You can rectify this by setting the desired scheduling time and then restarting the
Attunity Replicate Server service.
3. Statistics shown on the console are also sensitive to local time and thus may also show
confusing/inaccurate data in the overlap period (going in to Winter time) or for the
skipped period (going into Summer time).
4. If the clock on Attunity Replicate Server machine is one hour behind the clock on the
Attunity Replicate Console (UI) machine, the following issues are known to occur:
The Applied Changes circle graph will be updated as the changes are applied, but
the information in the Recent Activity tab will not be updated.
Scheduled jobs will start according to the Attunity Replicate Server time (as
expected), but will remain in the Active Jobs list after execution instead of
moving to the Expired Jobs tab.
For more information on scheduling jobs, see Scheduling Jobs.
In general, it is recommended to avoid non-critical task design changes during the first
overlap period (going in to Winter time) so as to prevent confusion about when the changes
took place.
In addition to Attunity Replicate, other components are also involved including:
The source endpoint system
The target endpoint system
The local operating system
The task design (specifically using timestamp based variables)
Given the complexity of the topic and the involvement of many independent components
and settings, Attunity generally recommends that customers first verify the impact of DST
changes in their test environment.
Copyright © 2018 Attunity Ltd. Appendix H | Impact of DST Change on Attunity Replicate | Page 794
I | Metadata File Description
When the Create metadata files in the target folder option in the File target endpoint or
Amazon S3 target endpoint is selected, for each CSV/JSON file Replicate creates a
corresponding metadata file under the specified target folder.
The metadata file offers several benefits such as enabling custom batch processes to
perform better validation, supporting deeper automation, offering lineage information and
improving processing reliability.
The metadata files (which are in standard JSON format) are described in the table below.
Field Description
Task Information
name The name of the Replicate task.
sourceEndpoint The name defined in the source endpoint settings.
sourceEndpointType The endpoint type defined in the source endpoint settings
(e.g. Oracle, MySQL, etc.).
sourceEndpointUser The user defined in the source endpoint settings.
replicationServer The hostname of the machine on which Attunity Replicate is
installed.
operation If a target data file has been created, this field will contain
the following value: dataProduced
File Information
name The name of the data file without the extension.
extension The extension of the data file (.csv or.json according to the
selected target file format).
location The location of the data file.
startWriteTimestamp UTC timestamp indicating when writing to the file started.
endWriteTimestamp UTC timestamp indicating when writing to the file ended.
firstTransactionTimestam UTC timestamp of the first record in the file.
p
lastTransactionTimestam UTC timestamp of the last record in the file.
p
Copyright © 2018 Attunity Ltd. Appendix I | Metadata File Description | Page 795
Field Description
content The values can either be data (i.e.Full Load replication) or
changes (i.e Change Processing replication) according to the
data in the corresponding CSV file.
recordCount The number of records in the file.
errorCount The number of data errors encountered during file creation.
Format Information
format delimited or json according to the selected target file
format.
options The options for delimited file format. These options will not
be shown for json format as they are not relevant.
recordDelimiter The delimiter used to separate records (rows) in the target
files. The default is newline (\n).
fieldDelimiter The delimiter used to separate fields (columns) in the target
files. The default is a comma.
nullValue The string used to indicate a null value in the target file.
quoteChar The character used at the beginning and end of a column. The
default is the double-quote character (").
escapeChar The character used to escape a string when both the string
and the column containing the string are enclosed in double
quotes. Note that the string’s quotation marks will be
removed unless they are escaped.
Example (where " is the quote character and \ is the
escape character):
1955,"old, \"rare\", Chevrolet",$1000
Custom Information
customInfo This section contains any custom parameters that were set
using the dfmCustomProperties internal parameter.
The dfmCustomProperties internal parameter must be
specified in the following format:
Parameter1=Value1;Parameter2=Value2;Parameter3=Valu
Copyright © 2018 Attunity Ltd. Appendix I | Metadata File Description | Page 796
Field Description
e3
Example:
Color=Blue;Size=Large;Season=Spring
Copyright © 2018 Attunity Ltd. Appendix I | Metadata File Description | Page 797
J | Supported Platforms and
Endpoints
In addition to listing the platforms on which Attunity Replicate can be installed, this
appendix specifies which source and target endpoint versions can be used in an Attunity
Replicate task.
In this appendix:
Supported Platforms
Supported Source Endpoints
Supported Target Endpoints
Endpoints Supported in Bidirectional Replication
Supported Browsers
The Attunity Preview Program
Supported Platforms
Supported Windows Platforms
Attunity Replicate can be installed on any of the following Windows platforms:
Windows Server 2008 R2 (64-bit)
Windows Server 2012 (64-bit)
Windows Server 2012 R2 (64-bit)
Windows Server 2016 (64-bit)
Copyright © 2018 Attunity Ltd. Appendix J | Supported Platforms and Endpoints | Page 798
Supported Source Endpoints
The table below lists the source endpoint versions supported by Attunity Replicate.
Cloud-Based
Amazon Aurora Compatible with MySQL
Supported via the MySQL 5.6
source endpoint.
Amazon RDS for MySQL 5.6 and 5.7
Supported via the MySQL
source endpoint.
Amazon RDS for Oracle 11.2.0.2.v7
Supported via the Oracle
source endpoint.
ARC-Based
HP Nonstop SQL/MP (AIS) Himalaya:
HP Nonstop Enscribe (AIS) G06.32
Itanium:
H06.22/J06.14
OpenVMS RMS (AIS) Alpha:
8.3
Itanium:
8.3
IBM IMS (ARC) IBM z/OS:
2.1, 2.2, and 2.3
IMS:
13 and 14
IBM VSAM Batch (ARC) IBM z/OS:
2.1, 2.2, and 2.3
File
File N/A
Copyright © 2018 Attunity Ltd. Appendix J | Supported Platforms and Endpoints | Page 799
Endpoint Version Windows Red SUSE
Hat Linux
Linux
Copyright © 2018 Attunity Ltd. Appendix J | Supported Platforms and Endpoints | Page 800
Endpoint Version Windows Red SUSE
Hat Linux
Linux
Copyright © 2018 Attunity Ltd. Appendix J | Supported Platforms and Endpoints | Page 801
Supported Target Endpoints
The table below lists the target endpoint versions supported by Attunity Replicate.
Amazon S3 N/A
Copyright © 2018 Attunity Ltd. Appendix J | Supported Platforms and Endpoints | Page 802
Endpoint Version Windows Red SUSE
Hat Linux
Linux
Microsoft Azure SQL Database N/A
MemSQL 6.0.18
File-Based
File N/A
Copyright © 2018 Attunity Ltd. Appendix J | Supported Platforms and Endpoints | Page 803
Endpoint Version Windows Red SUSE
Hat Linux
Linux
IBM Netezza 6.x and 7.x
Copyright © 2018 Attunity Ltd. Appendix J | Supported Platforms and Endpoints | Page 804
Endpoints Supported in Bidirectional Replication
Bidirectional tasks support the following endpoints:
Source Endpoints:
Oracle
Microsoft SQL Server
MySQL
PostgreSQL
All AIS sources
File Channel
SAP Sybase ASE
IBM DB2 for iSeries
Target Endpoints:
Oracle
Microsoft SQL Server
MySQL
PostgreSQL
ODBC
File Channel
SAP Sybase ASE
Supported Browsers
The following browsers are supported:
Microsoft Internet Explorer version 11 or above
Mozilla Firefox
Google Chrome
Note Displaying the console in a window that spans multiple vertical windows is not
supported.
Copyright © 2018 Attunity Ltd. Appendix J | Supported Platforms and Endpoints | Page 805
K | Best Practices when Working
with Oracle ASM
This appendix provides detailed guidelines for configuring Attunity Replicate to work with
the Oracle source endpoint when the redo logs are stored in Oracle ASM.
When the redo logs are stored in Oracle ASM, it is recommended to use the Copy redo
logs to temporary folder option available in the Advanced tab. This option is only
available when the Attunity Log Reader redo log access method is selected.
Attunity Log Reader is Attunity's proprietary high speed redo log parser for parsing the
Oracle redo logs. Attunity Log Reader provides greatly improved performance and reduces
the load on the Oracle server when compared with other methods such as Oracle LogMiner.
In this appendix:
The "Copy redo logs to temporary folder" Method
Oracle Permissions Required for the Attunity Log Reader and the "Copy redo logs to
temporary folder" Options
Permissions for Deleting the Processed Redo logs from the Temporary Folder
Oracle ASM Access Permissions
Setting up the File Share if the "Direct Access" option was chosen
Configuring the "Copy to Temp Folder" Option in Replicate
Additional Considerations
Copyright © 2018 Attunity Ltd. Appendix K | Best Practices when Working with Oracle ASM | Page 806
Method 2: Directly from the temporary folder after providing Replicate with access to
the temporary folder. Using this method, Replicate reads the physical files directly
from the folder.
Both options are significantly faster than accessing the redo logs directly from Oracle ASM.
However, the "Direct Access" option using a shared network folder is the fastest and has
the least impact on Oracle Server resources. This is because Replicate reads the files
directly from the shared folder, thereby eliminating the need for Oracle to send Replicate
the file content. However, using the "Direct Access" option requires some additional
configuration (as described below).
To prevent old redo logs from accumulating in the temporary folder, Replicate should be
configured to delete the redo log files from the temporary folder once they have been
processed. The delete operation is performed using Oracle file groups and the Oracle
DBMS_FILE_GROUP package.
Copyright © 2018 Attunity Ltd. Appendix K | Best Practices when Working with Oracle ASM | Page 807
READ on the Oracle directory object specified as the source directory (i.e. the
ASM archived redo logs path and the temporary folder in the event that the BFILE
method is used to read from the temporary folder)
WRITE on the directory object specified as the destination directory in the copy
process (i.e. the temporary folder).
Copyright © 2018 Attunity Ltd. Appendix K | Best Practices when Working with Oracle ASM | Page 808
Setting up the File Share if the "Direct Access" option
was chosen
If you use the Replicate has file level access to temporary folder option, you will need to
set up a shared network folder (using NFS or SAMBA for example) that can be accessed
from all Oracle nodes.
The shared folder must allow write access and grant delete permission to the user and
group on which the Oracle database is running. In addition, it must allow read access to
Replicate Server. Make sure you are able to read the contents of the share when logging in
to the Replicate Server machine with the user under which the Attunity Replicate Server
service runs ('Attunity' user).
This configuration should be done by the customer's IT team, but Replicate Support is
always available to assist.
Copyright © 2018 Attunity Ltd. Appendix K | Best Practices when Working with Oracle ASM | Page 809
Additional Considerations
This section describes additional factors that should be taken into consideration when
working with Oracle ASM.
Copyright © 2018 Attunity Ltd. Appendix K | Best Practices when Working with Oracle ASM | Page 810
L | Replicate Loggers
This appendix provides a description of the following Replicate loggers:
ADDONS
ASSERTION
COMMON
COMMUNICATION
DATA_RECORD
DATA_STRUCTURE
FILE_FACTORY
FILE_TRANSFER (AKA CIFTA)
INFRASTRUCTURE
IO
METADATA_CHANGES
METADATA_MANAGER
PERFORMANCE
REST_SERVER
SERVER
SORTER
SORTER_STORAGE
SOURCE_CAPTURE
SOURCE_LOG_DUMP
SOURCE_UNLOAD
STREAM
STREAM_COMPONENT
TABLES_MANAGER
TARGET_APPLY
TARGET_LOAD
TASK_MANAGER
TRANSFORMATION
UTILITIES
ASSERTION
Not implemented at present.
COMMON
Writes low level messages such as network activity.
Note Not recommended to set to "Trace" as it will write a huge amount of data to the
log.
COMMUNICATION
Provides additional information about the communication between Replicate and the
Source and Target components. For example, when using Hadoop, it will print the CURL
debug messages and the "Apply" of the actual files (Mainly CURL and HTTP Client).
DATA_RECORD
Only available for some endpoints and may be implemented differently for each endpoint.
It writes information about each change that occurs. While in Oracle it writes only the
header fields, for some endpoints, such as Sybase ASE and IBM DB2 for LUW sources, it
will also include the changed data. It records when a specific event was captured as well as
the event context.
The content will not be presented; all events will be logged, even when a record is not in
the task scope. (This is not relevant for Oracle LogMiner, as the list of objects are
propagated to the LogMiner session).
Example 15 - Example
Produce INSERT event: object id 93685 context
'0000000003A4649301000001000005190000821F001000010000000003A46427' xid
[000000000f9abd46] timestamp '2017-06-07 09:01:58' thread 1 (oracdc_
reader.c:2178)
FILE_FACTORY
Relevant to Hadoop Target, Amazon Redshift and Microsoft Azure SQL Data Warehouse.
This component is responsible for moving the files from Replicate to the target which, in
the case of Hadoop, is the HDFS stage of the task.
INFRASTRUCTURE
Records infrastructure information related to the infrastructure layers of Replicate code:
ODBC infrastructure, logger infrastructure, PROTO_BUF, REPOSITORY, FILES USE, opening
a new thread, closing a thread, saving the task state, and so on.
IO
Logs all IO operations (i.e. file operations), such as checking directory size, creating
directories, deleting directories, and so on.
Example 16 - Example:
[IO ]T: scanning 'E:\Program Files\Attunity\Replicate\data\tasks\Task_
name/data_files' directory size (at_dir.c:827)
METADATA_CHANGES
Will show the actual DDL changes which are included in the scope (available for specific
endpoints).
PERFORMANCE
Currently used for latency only. Logs latency values for source and target endpoints every
30 seconds.
REST_SERVER
Handles all REST requests (API and UI). Also shows the interaction between Replicate and
Attunity Enterprise Manager.
SERVER
The server thread in the task that communicates with the Replicate Server service on task
start, stop, etc. Includes init functions for the task and the task definition.
SORTER
The main component in CDC that routes the changes captured from the source to the
target.
Responsible for:
Synchronizing Full Load and CDC changes
Deciding which events to apply as cached changes
Storing the transactions that arrive from the source database until they are
committed, and sending them to the target database in the correct order (i.e. by
commit time).
Whenever there is a CDC issue such as missing events, events not applied, or unacceptable
CDC latency, it is recommended to enable "Verbose" for this logger.
SORTER_STORAGE
SORTER_STORAGE is the storage component of the Sorter which stores transactions (i.e.
Changes) in memory and offloads them to disk when the transactions are too large, or
unreasonably long. As this logger records a large amount of information, it should only be
set to "Trace" if you encounter storage issues such as corrupt swap files, poor performance
when offloading changes on disk, and so on.
SOURCE_LOG_DUMP
When using Attunity Log Reader, this component creates additional files with dumps of the
read changes. The logger will write the actual record as it's being captured from the
source.
Note that the data will be stored in a separate file and not in the log itself.
SOURCE_UNLOAD
Records source activity related to Full load operations and includes the SELECT statement
executed against the source tables prior to Full Load.
STREAM
The Stream is the buffer in memory where data and control commands are kept. There are
two types of stream: Data streams and Control streams. In the Data stream, source data is
passed to the target or to the Sorter using this memory buffer. In the Control stream,
Commands such as Start Full Load and Stop Full Load are passed to components.
As it records a large amount of data, this logger should only be set to "Trace" when a
specific stream issue is encountered. Examples of stream issues include poor
performance, issues with Control commands (e.g. commands not being performed), issues
when loading many tables that may overload the control stream with Control commands,
and so on.
STREAM_COMPONENT
Used by the Source, Sorter and Target to interact and communicate with the Stream
component.
Example 17 - Example
Force switch to Transactional Apply mode for Hadoop target
(endpointshell.c:1340)
TARGET_APPLY
Determines which changes are applied to the target during CDC and is relevant to both the
Batch Optimized Apply and Transactional Apply methods. It provides information about all
Apply issues including missing events, bad data, and so on. As it usually does not record a
lot of data, it can be safely set to "Verbose" in order to troubleshoot issues.
The logged messages will differ according to the target database.
TARGET_LOAD
Provides information about Full Load operations on the target side. Depending on the
target, it may also print the metadata of the target table.
TASK_MANAGER
This is the parent task component that manages the other components in the task.
It is responsible for issuing commands to start loading or finish loading a table, create the
different components threads, start or stop tasks, and so on.
It is useful for troubleshooting situations such as tables not loading, tables stuck in loading,
one of the components not stopping or starting properly, and so on.
TRANSFORMATION
Logs information related to transformations. When set to "Trace", it will log the actual
transformations being used by the task.
Example 18 - Example:
In the example below, a new column named "C" was added to the table. The expression is
$AR_H_STREAM_POSITION.
[TRANSFORMATION ]T: Transformation on table USER3.TEST1 exists
(manipulation_manager.c:511)[TRANSFORMATION ]T: Set transformation for
table 'USER3.TEST1' (manipulator.c:596)[TRANSFORMATION ]T: New column 'C',
type: 'kAR_DATA_TYPE_STR' (manipulator.c:828)[TRANSFORMATION ]T:
Transformation expression is '$AR_H_STREAM_POSITION' (manipulator.c:551)
[TRANSFORMATION ]T: Final expression is '$AR_H_STREAM_POSITION'
(expression_calc.c:822)
F T
Full Load Target Endpoint
Creates all defined files or tables at the A collection of files or tables managed
target endpoint, automatically defines by an Endpoint Management System
the metadata that is required at the tar- (DBMS), which may be different from
get, and populates the tables with data the DBMS managing the source end-
from the source. point. It contains data that is derived
from the source. It may contain only a
subset of the tables, columns, or rows
L
that appear in the source. Its tables
Latency may contain columns that do not
Latency can be understood as follows: appear in the source but are trans-
- Source Latency: The gap in seconds formations or computations based on
between the original change in the the source data.
source endpoint and capturing it. - Tar-
get Latency: The gap in seconds
between the original change in the
source endpoint and applying it to the
target endpoint. - Apply Latency: The
gap in seconds between capturing the
change in the source endpoint and
applying it to the target endpoint.
Copyright © 2018
Replicate Loggers | Page 818
Attunity Ltd.
Index
A advanced properties
AIS 315
Accessing the console 77
Amazon Redshift target 457
Actian Vector 445
file channel source 579
account access 446
Hadoop source 365, 371, 385-386,
data types 446
392-393, 403-404
limitations 446
IBM Informix source 242
Linux prerequisites 446
IBM Netezza target 277, 296
security requirements 446
Kafka target 523, 538, 552, 566
Windows prerequisites 445
Microsoft SQL Server source 167
Active Directory groups 759
ODBC target 497
add database 104
Oracle source 141, 143
Amazon Redshift target 455
PostgreSQL source 213
Hadoop source 191
AIS
HP Vertica target 429, 488
advanced properties 315
IBM Netezza target 276, 295
configuring 311
Microsoft APS PDW target 492-493
create in Attunity Studio 311
Microsoft Azure SQL Data Ware-
prerequisites 306
house target 503, 505, 509-
510 required permission 308
Microsoft SQL Server (target) 331 security 308
Microsoft SQL Server target 331 source data type mapping 310
MySQL source 186 AIS CDC agent endpoint 306
MySQL target 352, 358 AIS CDC agents 71
ODBC source 201, 233 AIS sources
Oracle target 323 adding 312
PostgreSQL target 409 alerts 686
SAP Sybase ASE target 346 alternate backup folder 168-169
add databases Amazon RDS
AIS 312 Oracle 138
source 107 Amazon Redshift 451
target 107 advanced properties (target) 457
add tables 108 Amazon Redshift target, adding
a 455
advance license request options 745
Cloud prerequisites 452
Copyright © 2018
Replicate Loggers | Page 819
Attunity Ltd.
data types 275, 294, 453 configure log files 751
prerequisites 452 configuring tasks 653
Amazon Redshift registration 452 control tables
Amazon Redshift requirements 452 creating on target 658
apply changes task settings 662 create a notification message 720,
apply changes tuning settings 667 732, 739
apply global transformation rule 608 create notifications 714, 727, 736
ARCHIVELOG (Oracle source) 136 creating expressions for
transforms 592
Attunity Studio
customizing tasks 583
create AIS endpoint 311
D
B
data enrichment 645
backup
data errors settings 671
Microsoft SQL Server 163
data type mapping
Bidirectional Tab 658
AIS source 310
data types
C
Actian Vector 446
CDC
Amazon Redshift 275, 294, 453
monitoring 698
Hadoop source data types 190, 363,
monitoring tables 700 384, 391
processes 37 IBM DB2 for iSeries source data
change processing 37 types 254
monitoring 698 IBM DB2 for LUW source data
monitoring tables 700 types 246
change processing, query based IBM DB2 for z/OS source data
types 266
Teradata Database source 202,
234, 277 IBM Informix source data types 239
Copyright © 2018
Replicate Loggers | Page 820
Attunity Ltd.
ODBC source 199, 229, 299 ODBC 298, 494
ODBC target 494 Oracle 318
Oracle Pivotal Greenplum 432
not supported 135 architecture 433
Oracle source data types 132 PostgreSQL 205, 406
Pivotal Greenplum 437 SAP Sybase ASE 172, 344
PostgreSQL 407 SAP Sybase IQ 423
PostgreSQL source 208 Teradata Database 198, 396
SAP Sybase ASE view information 105
not supported 174, 346 working with 104
SAP Sybase ASE source data default recipient list 742
types 173 default SSL certificates, replacing
SAP Sybase ASE target data the 61
types 345 define changes that trigger the noti-
Teradata Database 400 fication 716, 728
Data Types 72 define errors that trigger a
database configuration notification 717, 730
Microsoft SQL Server source 162 define the notification distribution prop-
erties 718, 731, 738
databases 71
define the notification message 720,
Actian Vector 445
731, 738
adding 104
define trigger to send notification 715,
Amazon Redshift 451 727, 737
editing 105 define what to transform (global trans-
File 215, 411, 459, 473 formation) 608
file channel 572 delete global transformation rule 630
files 572 deleting a notification 741
Hadoop 189, 361, 382 design mode 83
HP Vertica 292, 428, 485 designing tasks 99
IBM DB2 for LUW 244, 251 determine email message recipients
IBM DB2 for z/OS 259 for the notification 719
IBM Informix 238
IBM Netezza 275, 506 E
managing 104 edit global transformation rule 630
Microsoft APS PDW 490 editing a notification 740
Microsoft Azure SQL Data Ware- editing database 105
house 499
endpoint connections, securing 70
Microsoft SQL Server 151, 327, 336
MySQL 178, 349, 355
Copyright © 2018
Replicate Loggers | Page 821
Attunity Ltd.
endpoints 71 input columns 636
Actian Vector 445 inputs 636
AIS 71, 306 LOBs 642
Amazon Redshift 451 logical operators 638
File 215, 411, 459, 473 mathematical operators 640
file channel 572 metadata
files 572 expression builder
Hadoop 189, 361, 382 using variables 636
HP Vertica 292, 428, 485 null check functions 643
IBM DB2 for LUW 244, 251 numeric functions 643
IBM DB2 for z/OS 259 operations 649
IBM Informix 238 operators 636-637
IBM Netezza 275, 506 other functions 649-651
Kafka 511, 530, 544, 558 stings 637
Microsoft APS PDW 490 strings 641
Microsoft Azure SQL Data Ware- test expression 634
house 499 using elements 636
Microsoft SQL Server 151, 327, 336 expression builder for transforms and
MySQL 178, 349, 355 filters 630
ODBC 298, 494
Oracle 318 F
Pivotal Greenplum 432
File 215, 411, 459, 473
architecture 433
file-channel directory structure 575
PostgreSQL 205, 406
file-channel files, working with 574
SAP Sybase ASE 172, 344
file channel 572
SAP Sybase IQ 423
directory structure 575
Teradata Database 198, 396
distribution 573
environmental errors settings 671
file-channel files 575
error handling 748
directory structure 575
error handling settings 670
file-channel files, working with 574
expression builder 630
installation requirements 576
build expression 632
limitations 577
data enrichment 645
local tasks 572
date and time functions 644
remote tasks 572-573
functions 636, 641
source 577
global transformations 636
target 580
header columns 636, 651
tasks 572-573
Copyright © 2018
Replicate Loggers | Page 822
Attunity Ltd.
file channel source transformation rules list 629
advanced properties 579 transformation type 607
file transfer service gpfdist
settings 753 as a service 439
files 572 multiple gpfdist programs 440
filters 594 troubleshooting 775
expression builder 630
range builder 597 H
SQLite syntax 599
Hadoop 189, 361, 382
full load 37
add as source 191
monitoring 690
advanced properties (source) 365,
monitoring tables 691 371, 385-386, 392-393, 403-
full load task settings 659 404
full load tuning 661 limitations 189, 362, 383, 390
function source data types 190, 363, 384,
data enrichment 645 391
Hadoop database
G using as a target 389
Hadoop source
general properties
security 363
Kafka target 516, 535, 548, 563
Hadoop source data types 190, 363,
general settings 384, 391
default recipient list 742 header columns 636, 651
mail parameters 741 headers 763
getting started 87 high availability
global transformations 605 different configurations 780
apply rule 608 history 707, 711
delete transformation rule 630 HP NonStop SQL/MP target
edit transformation rule 630 prerequisites 789
expression builder 630 table settings 791
new rule wizard 606 task setting limitations 791
transformation rule HP Vertica 292, 428, 485
add column 622 add HP Vertica target 429, 488
convert data type 623 HP Vertica target data types 428,
drop column 622 486
rename column 619 HP Vertica target
rename schema 611, 615-616 security requirements 428, 486
rename table 616, 623, 626 HP Vertica target data types 428, 486
Copyright © 2018
Replicate Loggers | Page 823
Attunity Ltd.
HTTPS support Linux 49
Server 61 uninstall 56
Web Console 60 Oracle 122
Windows 43
I installation requirements
Pivotal Greenplum 435, 772
IBM DB2 for iSeries
Teradata Database 397
source data types 254
IBM DB2 for iSeries source data
types 254 K
IBM DB2 for LUW 244, 251 Kafka 511, 530, 544, 558
limitations 246 Kafka target
source data types 246 advanced properties 523, 538, 552,
IBM DB2 for LUW source data 566
types 246 general properties 516, 535, 548,
IBM DB2 for z/OS 259 563
source data types 266
IBM DB2 for z/OS source data L
types 266
license settings 743
IBM Informix 238
licensing 743
advanced properties (source) 242
advanced license request
limitations 239
options 745
source data types 239
registering 746
IBM Informix data types
request a license 743
unsupported 241
viewing a license 748
IBM Informix source data types 239
limitations
IBM Netezza 275, 506
Actian Vector 446
add IBM Netezza target 276, 295
file channel 577
advanced properties (target) 277,
Hadoop 189, 362, 383, 390
296
IBM DB2 for LUW 246
IBM Netezza target data types 507
IBM Informix 239
IBM Netezza target
Microsoft SQL Server 153, 329, 338
security requirements 294, 507
MYSQL 181, 350, 356
IBM Netezza target data types 507
ODBC 229, 299
input columns (for expressions) 636
Oracle 123, 319
installation
Pivotal Greenplum 437
file channel 576
SAP Sybase ASE 172, 288, 344
Copyright © 2018
Replicate Loggers | Page 824
Attunity Ltd.
Linux house target, adding a 503,
required software 41 505, 509-510
Linux prereqisites prerequisites 500
Pivotal Greenplum 436, 772 Microsoft Azure SQL Data Warehouse
requirements 500
Linux prerequisites
Microsoft SQL server
Actian Vector 446
alternate backup folder 168-169
Linux uninstall 56
Microsoft SQL Server 151, 327, 336
list of notifications 740
advanced properties (source) 167
log file 689
backup and recovery 163
log file actions (task) 710
data types
log messages (task) 688
not supported 160
log viewer 689
limitations 153, 329, 338
logging
source data types 157
task log settings 674-675
supported versions 151, 327
logging settings (server) 749
target data types 329, 338
Microsoft SQL Server file 572
M
Microsoft SQL Server source
mail parameters 741
database configuration 162
manage databases 104-105
Microsoft SQL Server source data
master key types 157
changing and protecting 66 Microsoft SQL Server target
messages 686, 706 add Microsoft Microsoft SQL
log messages (task) 688 Server 331
notifications 686 Microsoft SQL Server target data
Microsoft APS PDW 490 types 329, 338
Copyright © 2018
Replicate Loggers | Page 825
Attunity Ltd.
incoming changes 700 MySQL target
latency 704 security 350, 356
tables 700 MySQL target data types 350, 356
throughput 703
full load N
all tables 692
new task 99
completed loading 693
notification list 740
loading tables 694
notification rule wizard 714, 727, 736
queued 696
notification message page 720,
tables 691 731, 738
througput 697 notify how/when? page 719
total completion 692 notify how/who? page 718, 731,
messages 706 738
run options 680 Notify When? page (changes of
running a task 679 status) 716, 728
Copyright © 2018
Replicate Loggers | Page 826
Attunity Ltd.
review the notification rule 727, Oracle on Amazon RDS
736, 740 working with 138
set values for latency, disk util- Oracle source data types 132
ization, memory
Oracle target
utilization 716, 729
security requirements 319
using variables 720, 732, 738
Oracle target data types 321
notifications settings 713
P
O
passwords, protecting 65
ODBC
Pivotal Greenplum 432
advanced properties (target) 497
account access 436
limitations 229, 299
apply changes 435
target 494
data types 437
ODBC data source 298, 494
installation requirements 435, 772
ODBC prerequisites 228, 298
limitations 437
ODBC source
Linux prereqisites 436, 772
adding a 201, 233
required configuration and envir-
data types 199, 229, 299
onment 436, 773
ODBC target
security requirements 436
data types 494
troubleshooting gfdist 775
Oracle 318
Windows prerequisites 436, 772
add Oracle target 323
Pivotal Greenplum target
advanced properties (source) 141,
security requirements 437
143
PostgreSQL 205, 406
Amazon RDS 138
add PostgreSQL target 409
ARCHIVELOG (source) 136
advanced properties (source) 213
data types
data types 407
not supported 135
PostgreSQL source
installation 122
data types 208
limitations 123, 319
prerequisites
multitenant support 140
AIS 306
Oracle source data types 132
Oracle target data types 321
R
supplemental logging 136
supported versions 122 recovery
Oracle file 572 Microsoft SQL Server 163
registering a license 746
Copyright © 2018
Replicate Loggers | Page 827
Attunity Ltd.
remote file channel task security
adding tables to 574 Actian Vector 446
requesting a license 743 AIS source 308
advance license request Hadoop source 363
options 745 MySQL target 350, 356
required configuration and envir- Pivotal Greenplum 436
onment for Pivotal
SAP Sybase ASE source 173
Greenplum 436, 773
SAP Sybase ASE target 345
required software 40-41
Teradata Database 399
review the notification rule 727, 736,
740 security requirements
SAP Sybase ASE target data types 345 default recipient list 742
Copyright © 2018
Replicate Loggers | Page 828
Attunity Ltd.
software requirements 40-41 Amazon Redshift 451
source database File 215, 411, 459, 473
File 215, 411, 459, 473 file channel 572
file channel 572 Microsoft Azure SQL Data Ware-
Hadoop 189, 361, 382 house 499
HP Vertica 292, 428, 485 Microsoft SQL Server 151, 327, 336
IBM DB2 for LUW 244, 251 ODBC 494
IBM DB2 for z/OS 259 Pivotal Greenplum 432
IBM Informix 238 PostgreSQL 205, 406
IBM Netezza 275, 506 Teradata Database 198, 396
Microsoft SQL Server 151, 327, 336 target databases
MySQL 178, 349, 355 adding 107
Oracle 318 files 572
SAP Sybase ASE 172, 344 Hadoop 189, 361, 382
SAP Sybase IQ 423 HP Vertica 292, 428, 485
source databases IBM Netezza 275, 506
adding 107 Microsoft APS PDW 490
files 572 MySQL 178, 349, 355
source endpoint Oracle 318
file channel 577 SAP Sybase ASE 172, 344
SQLite SAP Sybase IQ 423
for transforms 593 target endpoint
SQLite syntax file channel 580
for filters 599 task
SSL certificate, checking if installed 60 log 689
supplemental logging 136 task configurations 653
supported databases 71 task logging
supported Linux versions 41 log file actions 710
supported Windows versions 40 task logging settings 674-675
system architecture 36 task settings 653
apply changes 662, 667
T apply changes settings sub-tab 662
apply changes tuning sub-tab 667
table errors settings 672
Control Tables tab 657
table settings 583
data error sub-tab 671
filters 594
environmental errors sub-tab 671
target database
error handling 670-672
Actian Vector 445
Copyright © 2018
Replicate Loggers | Page 829
Attunity Ltd.
error handling settings sub-tab 670 Teradata Database target
full load 659, 661 security requirements 399
full load settings sub-tab 659 Transform Tab
full load tuning sub-tab 661 unique index, designating on
logging 674-675 target 588
table error sub-tab 672 transforms
Target Metadata tab 654 creating expressions 592
task status 685 expression builder 630
tasks 81, 99, 583, 679 SQLite syntax 593
add filters 594 tutorial 87
add tables 108
creating 99 U
Copyright © 2018
Replicate Loggers | Page 830
Attunity Ltd.
Windows prerequisites
Actian Vector 445
Pivotal Greenplum 436, 772
working with file-channel files 574
Copyright © 2018
Replicate Loggers | Page 831
Attunity Ltd.