Use the FDA Connector (Federated Data Access) to connect Campaign to one or more external databases and process information stored into them without affecting your Campaign Cloud Database data. You can then access external data without changing the structure of Adobe Campaign data.
Compatible databases for FDA are listed in the Compatibility matrix.
In the context of an Enterprise (FFDA) deployment, a specific external account is available to manage communication between Campaign local database and Snowflake cloud database. This external account is set up for you by Adobe and must not be modified.
Campaign FDA option allows you to extend your data model in a third-party database. It will automatically detect the structure of the targeted tables and use data from the SQL sources.
Specific permissions are required on Adobe Campaign and on the external database to interact together. Learn more in this section.
Optimize email personalization with external data
You can pre-process message personalization in a dedicated workflow. To perform this, use the Prepare the personalization data with a workflow option, available in the Analysis tab of the delivery properties.
During the delivery analysis, this option automatically creates and executes a workflow that stores all of the data linked to the target in a temporary table, including data from tables linked in an external database.
This option significantly improves performances when executing the personalization step.
FDA limitations
The FDA option is made to manipulate the data in external databases in batch mode in workflows. To avoid performance issues, it is not recommended to use the FDA module in the context of unitary operations, such as: personalization, interaction, real-time messaging, etc.
Avoid the operations that need to use both the Adobe Campaign and the external database as much as possible. To do this, you can:
Export the Adobe Campaign database to the external database and execute the operations only from the external database before re-importing the results into Adobe Campaign.
Collect the data from the external Adobe Campaign database and execute the operations locally.
If you want to carry out personalization in your deliveries using data from the external database, collect the data to use in a workflow to make it available in a temporary table. Then use the data from the temporary table to personalize your delivery.
The FDA option is subject to the limitations of the external database system that you use.
To set up access to an external database with FDA, configuration steps are:
Note that with Campaign Enterprise (FFDA) deployment, you cannot create a target mapping from a schema stored in an external database accessed by FDA. As a consequence, recipients of your deliveries cannot come from the external database.
You need to create a specific external account to connect your Campaign instance to your external database.
To achieve this, follow the steps below:
From Campaign Explorer, browse to Administration >
Platform >
External accounts.
Click New.
To be active, the Enabled option must be checked. If necessary, uncheck this option to disable access to this database without deleting its configuration.
Select External database as your external account’s Type.
Choose you external database in the drop-down list and configure the external account. You must specify:
Server: URL of the server
Account: Name of the user
Password: User account password
Database: Name of the database
Click the Parameters tab then the Deploy functions button to create functions.
Once the parameters are entered, click the Test the connection button to approve them.
To allow Adobe Campaign to access this database, you must deploy the SQL functions. Click the Parameters tab then the Deploy functions button.
You can define specific work tablespaces for the tables and for the index in the Parameters tab.
For Snowflake, the connector supports the following options:
Option | Description |
---|---|
workschema | Database schema to use for work tables |
warehouse | Name of the default warehouse to use. It will override the user’s default. |
TimeZoneName | By default empty, which means that the system time zone of the Campaign Classic app server is used. The option can be used to force the TIMEZONE session parameter. For more on this, refer to this page. |
WeekStart | WEEK_START session parameter. By default set to 0. For more on this, refer to this page. |
UseCachedResult | USE_CACHED_RESULTS session parameter. By default set to TRUE. This option can be used to disable Snowflake cached results. For more on this, refer to this page. |
To create the schema of the external database in Adobe Campaign, follow the steps below:
Click the New button above the list of data schemas and choose Access external data.
Enter a name and a description for the schema and select the external account which will enable connection to the database. This enables access to the list of tables available in the external base. Choose the table which contains the data to be collected.
Click OK to confirm. Adobe Campaign automatically detects the structure of the selected table and generates the logical schema. Please note that Adobe Campaign does not generate links.
Click Save to confirm creation.
Specific permissions are required on Adobe Campaign and on the external database to interact together.
First, so that the user can carry out operations on an external database via FDA, the operator must have a specific named right in Adobe Campaign.
Select the Administration > Access Management > Named Rights node in the Adobe Campaign explorer.
Create a new right by specifying your chosen label.
Enter the name of the Named right in the following format user:base@server, where :
Save the Named right and link it to your chosen operator from the Administration > Access Management > Operators node of the Adobe Campaign explorer.
Then, to process the data contained in an external database, the Adobe Campaign operator must have at least ‘Write’ permissions on the database to be able to create worktables. These tables are deleted automatically by Adobe Campaign.
The following permissions are necessary:
The database administrator needs to make these rights match with the rights specific to each database engine, as detailed below.
Snowflake | Amazon Redshift | |
---|---|---|
Connecting to remote database | USAGE ON WAREHOUSE, USAGE ON DATABASE and USAGE ON SCHEMA privileges | Creating a user linked to the AWS account |
Creating tables | CREATE TABLE ON SCHEMA privilege | CREATE privilege |
Creating indexes | N/A | CREATE privilege |
Creating functions | CREATE FUNCTION ON SCHEMA privilege | USAGE ON LANGUAGE plpythonu privilege to be able to call external python scripts |
Creating procedures | N/A | USAGE ON LANGUAGE python privilege to be able to call external python scripts |
Removing objects (tables, indexes, functions, procedures) | Owning the object | Owning the object or being a superuser |
Monitoring executions | MONITOR privilege on the required object | No privilege required to use EXPLAIN command |
Writing data | INSERT and/or UPDATE privileges (depending on write operation) | INSERT and UPDATE privileges |
Loading data into tables | CREATE STAGE ON SCHEMA, SELECT and INSERT on the target table privileges | SELECT and INSERT privileges |
Accessing to client data | SELECT on (FUTURE) TABLE(S) or VIEW(S) privilege(s) | SELECT privilege |
Accessing to metadata | SELECT on INFORMATION_SCHEMA SCHEMA privilege | SELECT privilege |
Once the data schema is created, data can be processed in Adobe Campaign workflows.
Multiple activities allow you to interact with data from an external database:
Filter on external data - The Query activity allows you to add external data and use it in the defined filter configurations.
Create sub-sets - The Split activity allows you to create sub-sets. You can use external data to define the filtering criteria to use.
Load external database - You can use the external data in the Data loading (RDBMS) activity.
Adding information and links - The Enrichment activity lets you to add additional data to the worktable of the workflow, and links to an external table. In this context, it can use data from an external database.
You can also directly define a connection to an external database from these workflow activities, for a temporary usage. In this case, it will be on a local external database, reserved to be used within a current workflow: it will not be saved on the external accounts.
This type of configuration must only be used temporary to collect data. The external account configuration should be preferred for any other usage.
For example, in the Query activity, you can define a temporary connection to an external database as follows: