
COZYROC Tableau components, part of COZYROC SSIS+ suite, are third-party plug-ins for Microsoft SSIS that make it easy to integrate or migrate data to and from Tableau. You can use any application, service or database supported by SQL Server Integration Services (SSIS) or COZYROC’s toolkit as the source for a Tableau Data Extract (TDE) file. The toolkit is easy to use and follows the same guidelines and principles used by the standard out-of-the-box SSIS components.
The Tableau integration package consists of two parts:
Overview
Configuration is provided for establishing connections with Tableau Server via its REST API. The configuration is used in the REST Connection Manager.
Quick Start
In this guide, we will show you how to create a connection to Tableau service using COZYROC's REST Connection Manager.
Step 1. Run "Visual Studio".
Step 4. From Configuration combo box select "Tableau".
Step 5. Enter server host parameter.
Step 6. Enter user name parameter.
Step 7. Enter password parameter.
- site - If you are connecting to "Tableau Online", the site parameter is mandatory. For on-premise server it is optional and when empty the result is identical to specifying the Default site.
- impersonateId - The LUID of a user to sign in as. For impersonation when a system administrator signs in with user name and password.
In this guide, we will show how to read data from the Tableau service resource using COZYROC REST Source component.
In this guide, we will show how to write data to Tableau service resource using COZYROC REST Destination component.
In this guide, we will provide steps to upload a Tableau TDE file to a server. For novice users, we recommend you first review "Push data to service" guide.
You can upload a Tableau TDE file either to a "Data Source" or "Workbook" resource. This guide will show the "Data Source" use and the process will be similar for the other resource.
Step 1. You have to provide input for the following required columns:
- name - name of the data source.
- project.id - project identifier.
- content - the TDE file content. Use the standard "Import Column" transformation to load the file content into a data flow column. Here you can find one reference how to configure the "Import Column" transformation.
Configuration
Base URL address: https://[pod].online.tableau.com/api/3.4
.
-
The authentication uses a session token.
The authentication has the following user-defined parameters:
- name: Required. Specify user name.
- password: Required. Specify password.
- site:
- impersonateId:
- expiration: Session token expiration in minutes.
The following request parameters will be automatically processed during the authentication process:
-
X-Tableau-Auth:
{{=token.Access}}
For further information, please check here.
- ShortText
Data type: DT_WSTR ( length 255 )
- LongText
Data type: DT_WSTR ( length 1000 )
- Id
Data type: DT_GUID
- DateTime
Data type: DT_DBTIMESTAMP
- Reference
Field components:
-
Uses template:
Id
. - Contains the following components: id, name.
-
Uses template:
- [Read] action
-
The result is extracted from:{{=response[resource.objects][resource.object]}}
.
The result is paginated.The following request parameters will be automatically processed:
-
pageSize:
{{=parameters.batchSize}}
-
pageNumber:
{{=parameters.iterator}}
-
_includeUserParameters:
{{=parameters}}
-
pageSize:
- [Create] action
-
The action uses POST method.The following request parameters will be automatically processed:
-
_includeUserParameters:
{{=parameters}}
-
application/json:
{{=function() { var result = {}; result[resource.object] = item; return result; }()}}
-
_includeUserParameters:
- [Update] action
-
The action uses PUT method.The following request parameters will be automatically processed:
-
_includeUserParameters:
{{=parameters}}
-
application/json:
{{=function() { var result = {}; result[resource.object] = item; return result; }()}}
-
_includeUserParameters:
- [Delete] action
-
The action uses DELETE method.
- [Read] action
-
Endpoint URL address:
/sites
.
The result is extracted from:{{=response.sites.site}}
.
The result is paginated.The following request parameters will be automatically processed:
-
pageSize:
{{=parameters.batchSize}}
-
pageNumber:
{{=parameters.iterator}}
-
_includeUserParameters:
{{=parameters}}
For further information check here.
-
pageSize:
- [Create] action
-
Endpoint URL address:
/sites
.
The action uses POST method.The following request parameters will be automatically processed:
-
_includeUserParameters:
{{=parameters}}
-
application/json:
{{={ site: item } }}
For further information check here.
-
_includeUserParameters:
- [Update] action
-
Endpoint URL address:
/sites/{{=item.id}}
.
The action uses PUT method.The following request parameters will be automatically processed:
-
_includeUserParameters:
{{=parameters}}
-
application/json:
{{={ site: item } }}
For further information check here.
-
_includeUserParameters:
- [Delete] action
-
Endpoint URL address:
/sites/{{=item.id}}
.
The action uses DELETE method.For further information check here.
- id
A key field. Template: Id.
- name
Template: ShortText.
- contentUrl
Template: ShortText.
- adminMode
Template: ShortText.
- disableSubscriptions
Data type: DT_BOOL
- state
Template: ShortText.
- revisionHistoryEnabled
Data type: DT_BOOL
- revisionLimit
Data type: DT_I4
- subscribeOthersEnabled
Data type: DT_BOOL
- guestAccessEnabled
Data type: DT_BOOL
- cacheWarmupEnabled
Data type: DT_BOOL
- commentingEnabled
Data type: DT_BOOL
- flowsEnabled
Data type: DT_BOOL
- userQuota
Data type: DT_I4
- storageQuota
Data type: DT_I4
- [Read site] action
-
Endpoint URL address:
/sites/{{=parameters.site}}/views
.
The result is extracted from:{{=response.views.view}}
.
The result is paginated.The action has the following user-defined parameters:
- site: Required. Specifies site identifier.
The following request parameters will be automatically processed:
-
pageSize:
{{=parameters.batchSize}}
-
pageNumber:
{{=parameters.iterator}}
-
_includeUserParameters:
{{=parameters}}
For further information check here.
- [Read workbook] action
-
Endpoint URL address:
/sites/{{=parameters.site}}/workbooks/{{=parameters.workbook}}/views
.
The result is extracted from:{{=response.views.view}}
.
The result is paginated.The action has the following user-defined parameters:
- site: Required. Specifies site identifier.
- workbook: Required. Specifies workbook identifier.
The following request parameters will be automatically processed:
-
pageSize:
{{=parameters.batchSize}}
-
pageNumber:
{{=parameters.iterator}}
-
_includeUserParameters:
{{=parameters}}
For further information check here.
- id
Template: Id.
- name
Template: ShortText.
- contentUrl
Template: ShortText.
- workbook
Template: Reference.
- owner
Template: Reference.
- usage
Field components:
- Contains the following components: totalViewCount.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/dataAlerts
.For further information check here.
- [Update] action
-
Endpoint URL address:
/dataAlerts/{{=item.id}}
.For further information check here.
- [Delete] action
-
Endpoint URL address:
/dataAlerts/{{=item.id}}
.For further information check here.
- id
A key field. Template: Id.
- subject
Template: ShortText.
- creatorId
Template: Id. A read-only field.
- createdAt
Template: DateTime. A read-only field.
- updatedAt
Template: DateTime. A read-only field.
- frequency
Template: ShortText.
- public
Data type: DT_BOOL
- owner
Template: Reference.
- view
Template: Reference. A read-only field. Field components:
-
Uses template:
Reference
. - Contains the following components: workbook, project.
-
Uses template:
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/projects
.For further information check here.
- [Create] action
-
Endpoint URL address:
/projects
.For further information check here.
- [Update] action
-
Endpoint URL address:
/projects/{{=item.id}}
.For further information check here.
- [Delete] action
-
Endpoint URL address:
/projects/{{=item.id}}
.For further information check here.
- id
A key field. Template: Id.
- name
Template: ShortText.
- description
Template: LongText.
- contentPermissions
Template: ShortText.
- owner
Template: Reference. A read-only field.
- parentProjectId
Template: Id.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/workbooks
.For further information check here.
- [Read user] action
-
Endpoint URL address:
{{=connection.serverHost}}/users/{{=parameters.user}}/workbooks
.The action has the following user-defined parameters:
- user: Required. Specifies user identifier.
For further information check here.
- [Create] action
-
Endpoint URL address:
/workbooks
.The following request parameters will be automatically processed:
-
uploadSessionId:
{{=Tableau.uploadFile(item.content)}}
-
workbookType:
{{=item.type || 'twb'}}
-
multipart/mixed;boundary={{=Tableau.BoundId}}:
{{=Tableau.getRequestBody({ workbook: item })}}
For further information check here.
-
uploadSessionId:
- [Update] action
-
Endpoint URL address:
/workbooks/{{=item.id}}
.For further information check here.
- [Delete] action
-
Endpoint URL address:
/workbooks/{{=item.id}}
.For further information check here.
- id
A key field. Template: Id.
- name
Template: ShortText.
- description
Template: LongText.
- webpageurl
Template: ShortText. A read-only field.
- contentUrl
Template: ShortText. A read-only field.
- showTabs
Data type: DT_BOOL
- size
Data type: DT_I4 A read-only field.
- createdAt
Template: DateTime. A read-only field.
- updatedAt
Template: DateTime. A read-only field.
- project
Template: Reference.
- owner
Template: Reference.
- tags
Field components:
- An array.
- content
Data type: DT_IMAGE The value is gathered from
/workbooks/{{=item.id}}/content
address.Data type: DT_IMAGE A read-only field. The value is gathered from
/workbooks/{{=item.id}}/pdf
address.- type
Template: ShortText.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/workbooks/{{=parameters.workbook}}/connections
.The action has the following user-defined parameters:
- workbook: Required. Specifies workbook identifier.
For further information check here.
- [Update] action
-
Endpoint URL address:
/workbooks/{{=item.workbookId}}/connections
.For further information check here.
- id
A key field. Template: Id.
- type
Template: ShortText.
- serverAddress
Template: ShortText.
- serverPort
Template: ShortText.
- userName
Template: ShortText.
- password
Template: ShortText.
- embedPassword
Data type: DT_BOOL
- workbookId
Template: Id.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/datasources
.For further information check here.
- [Create] action
-
Endpoint URL address:
/datasources
.The following request parameters will be automatically processed:
-
uploadSessionId:
{{=Tableau.uploadFile(item.content)}}
-
datasourceType:
{{=item.type || 'tde'}}
-
multipart/mixed;boundary={{=Tableau.BoundId}}:
{{=Tableau.getRequestBody({ datasource: item })}}
For further information check here.
-
uploadSessionId:
- [Update] action
-
Endpoint URL address:
/datasources/{{=item.id}}
.For further information check here.
- [Delete] action
-
Endpoint URL address:
/datasources/{{=item.id}}
.For further information check here.
- id
A key field. Template: Id.
- name
Template: ShortText.
- contentUrl
Template: ShortText.
- type
Template: ShortText.
- createdAt
Template: DateTime. A read-only field.
- updatedAt
Template: DateTime. A read-only field.
- project
Template: Reference.
- owner
Template: Reference.
- tags
Field components:
- An array.
- isCertified
Data type: DT_BOOL
- certificationNote
Template: ShortText.
- content
Data type: DT_IMAGE The value is gathered from
/datasources/{{=item.id}}/content
address.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/datasources/{{=parameters.datasource}}/connections
.The action has the following user-defined parameters:
- datasource: Required. Specifies data source identifier.
For further information check here.
- [Update] action
-
Endpoint URL address:
/datasources/{{item.datasourceId}}
.For further information check here.
- id
A key field. Template: Id.
- type
Template: ShortText.
- serverAddress
Template: ShortText.
- serverPort
Template: ShortText.
- userName
Template: ShortText.
- password
Template: ShortText.
- embedPassword
Data type: DT_BOOL
- datasourceId
Template: Id.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/groups
.For further information check here.
- [Create] action
-
Endpoint URL address:
/groups
.For further information check here.
- [Update] action
-
Endpoint URL address:
/groups/{{=item.id}}
.For further information check here.
- [Delete] action
-
Endpoint URL address:
/groups/{{=item.id}}
.For further information check here.
- id
A key field. Template: Id.
- name
Template: ShortText.
- domain
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: name.
-
Uses template:
- import
Field components:
-
Uses template:
ShortText
. - Contains the following components: source, domainName, siteRole.
-
Uses template:
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/users
.For further information check here.
- [Read group] action
-
Endpoint URL address:
/groups/{{=parameters.group}}/users
.The action has the following user-defined parameters:
- group: Required. Specifies group identifier.
For further information check here.
- [Create] action
-
Endpoint URL address:
/users
.For further information check here.
- [Update] action
-
Endpoint URL address:
/users/{{=item.id}}
.For further information check here.
- [Delete] action
-
Endpoint URL address:
/users/{{=item.id}}
.For further information check here.
- id
A key field. Template: Id.
- name
Template: ShortText.
- siteRole
Template: ShortText.
- lastLogin
Template: DateTime. A read-only field.
- externalAuthUserId
Template: Id.
- authSetting
Template: ShortText.
- fullName
Template: ShortText.
Template: ShortText.
- password
Template: ShortText.
Based on resource template Base.
- [Read datasource] action
-
Endpoint URL address:
/datasources/{{=parameters.datasource}}/revisions
.The action has the following user-defined parameters:
- datasource: Required. Specifies data source identifier.
For further information check here.
- [Read workbook] action
-
Endpoint URL address:
/workbooks/{{=parameters.workbook}}/revisions
.The action has the following user-defined parameters:
- workbook: Required. Specifies workbook identifier.
For further information check here.
- [Delete] action
-
Endpoint URL address:
{{=(parameters.resource == 'datasource') ? '/datasources/' + item.resourceId + '/revisions/' + item.revisionNumber : '/workbooks/' + item.resourceId + '/revisions/' + item.revisionNumber}}
.The action has the following user-defined parameters:
- resource: Required. Specifies resource type - datasource, workbook.
For further information check here.
- revisionNumber
A key field. Data type: DT_I4
- createdAt
Template: DateTime.
- isDeleted
Data type: DT_BOOL
- user
Template: Reference.
- resource
Template: ShortText. The gathered value is processed with
{{=parameters.get('datasource') ? 'datasource' : 'workbook'}}
expression.- resourceId
Template: Id.
- content
Data type: DT_IMAGE The value is gathered from
{{=parameters.get('datasource') ? '/datasources/' + parameters.datasource + '/revisions/' + item.revisionNumber + '/content' : '/workbooks/' + parameters.workbook + '/revisions/' + item.revisionNumber + '/content'}}
address.
Based on resource template Base.
- [Read datasource] action
-
Endpoint URL address:
/datasources/{{=parameters.datasource}}/permissions
.
The result is extracted from:{{=response.permissions.granteeCapabilities}}
.The action has the following user-defined parameters:
- datasource: Required. Specifies data source identifier.
For further information check here.
- [Read project] action
-
Endpoint URL address:
/projects/{{=parameters.project}}/permissions
.
The result is extracted from:{{=response.permissions.granteeCapabilities}}
.The action has the following user-defined parameters:
- project: Required. Specifies project identifier.
For further information check here.
- [Read] action
-
Endpoint URL address:
/projects/{{=parameters.project}}/default-permissions/{{=parameters.resource}}
.
The result is extracted from:{{=response.permissions.granteeCapabilities}}
.The action has the following user-defined parameters:
- project: Required. Specifies project identifier.
- resource: Required. Specifies resource type - datasources, workbooks, flows
For further information check here.
- [Read view] action
-
Endpoint URL address:
/views/{{=parameters.view}}/permissions
.
The result is extracted from:{{=response.permissions.granteeCapabilities}}
.The action has the following user-defined parameters:
- view: Required. Specifies view identifier.
For further information check here.
- [Read workbook] action
-
Endpoint URL address:
/workbooks/{{=parameters.workbook}}/permissions
.
The result is extracted from:{{=response.permissions.granteeCapabilities}}
.The action has the following user-defined parameters:
- workbook: Required. Specifies workbook identifier.
For further information check here.
- user
Template: Reference.
- group
Template: Reference.
- capabilities
Field components:
- An array.
- Contains the following components: name, mode.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/jobs
.
The result is extracted from:{{=response.backgroundJobs}}
.For further information check here.
- [Delete] action
-
Endpoint URL address:
/jobs/{{=item.id}}
.
The action uses PUT method.For further information check here.
- id
A key field. Template: Id.
- status
Template: ShortText.
- createdAt
Template: DateTime. A read-only field.
- startedAt
Template: DateTime. A read-only field.
- endedAt
Template: DateTime. A read-only field.
- priority
Template: ShortText.
- jobType
Template: ShortText.
- [Read] action
-
Endpoint URL address:
/schedules
.
The result is extracted from:{{=response.schedules.schedule}}
.
The result is paginated.The following request parameters will be automatically processed:
-
pageSize:
{{=parameters.batchSize}}
-
pageNumber:
{{=parameters.iterator}}
-
_includeUserParameters:
{{=parameters}}
For further information check here.
-
pageSize:
- [Create] action
-
Endpoint URL address:
/schedules
.
The action uses POST method.The following request parameters will be automatically processed:
-
_includeUserParameters:
{{=parameters}}
-
application/json:
{{={ schedule: item } }}
For further information check here.
-
_includeUserParameters:
- [Update] action
-
Endpoint URL address:
/schedules/{{=item.id}}
.
The action uses PUT method.The following request parameters will be automatically processed:
-
_includeUserParameters:
{{=parameters}}
-
application/json:
{{={ schedule: item } }}
For further information check here.
-
_includeUserParameters:
- [Delete] action
-
Endpoint URL address:
/schedules/{{=item.id}}
.
The action uses DELETE method.For further information check here.
- id
A key field. Template: Id.
- name
Template: ShortText.
- state
Template: ShortText.
- priority
Template: ShortText.
- createdAt
Template: DateTime. A read-only field.
- updatedAt
Template: DateTime. A read-only field.
- type
Template: ShortText.
- frequency
Template: ShortText.
- nextRunAt
Template: DateTime.
- endScheduleAt
Template: DateTime.
- executionOrder
Template: ShortText.
- frequencyDetails
Field components:
-
Uses template:
ShortText
. - Contains the following components: start, end, intervals.
-
Uses template:
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/subscriptions
.For further information check here.
- [Create] action
-
Endpoint URL address:
/subscriptions
.For further information check here.
- [Update] action
-
Endpoint URL address:
/subscriptions/{{=item.id}}
.For further information check here.
- [Delete] action
-
Endpoint URL address:
/subscriptions/{{=item.id}}
.For further information check here.
- id
A key field. Template: Id.
- subject
Template: ShortText.
- content
Field components:
-
Uses template:
Id
. - Contains the following components: id, type.
-
Uses template:
- schedule
Template: Reference.
- user
Template: Reference.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/favorites/{{=parameters.user}}
.The action has the following user-defined parameters:
- user: Required. Specifies user identifier.
For further information check here.
- [Create] action
-
Endpoint URL address:
/favorites/{{=item.userId}}
.For further information check here.
- [Delete] action
-
Endpoint URL address:
/favorites/{{=item.userId}}/{{= (item.datasource && 'datasources/' + item.datasource.id) || (item.project && 'projects/' + item.project.id) || (item.view && 'views/' + item.view.id) || (item.workbook && 'workbooks/' + item.workbook.id) }}
.For further information check here.
- label
Template: ShortText.
- project
Template: Reference.
- workbook
Template: Reference.
- view
Template: Reference.
- datasource
Template: Reference.
- userId
Template: Id.
Knowledge Base
- Where can I find the documentation for the Tableau Connection?
- How to install the Legacy Extract API for .tde files.
What's New
- Fixed: Incorrect pagination definition (Thank you, Leo).
- New: Introduced connection.
Related documentation
Overview
The Tableau Destination Component is an SSIS Data Flow Component for loading data into a Tableau Data Extract (TDE) file. The configuration parameters are provided in the standard data flow destination component dialog.
Starting in Tableau 10.5 to use the component for hyper format files, you will need to download the Tableau Extract API 2.0 package (for 64bit). This newer package from Tableau only support 64bit machines.
Once you have downloaded the package, follow these steps to deploy it:
- Extract the contents of the package into a convenient folder.
- Create a sub-folder named TDE64 in the COZYROC 32bit installation folder. The default installation folder is: C:\Program Files (x86)\COZYROC\SSIS.
- Copy the contents of the bin sub-folder that was extracted in step 1 into the TDE64 folder.
- Next you will need to add another path to your systems environment variable for the variable named PATH with the following value: "C:\Program Files (x86)\CozyRoc\SSIS\TDE64\hyper". This will point to the .exe that were copied with the hyper folder when you copied files over for TDE64 folder.
For more information how to set the system environment variable see this link here.
Parameters
Configuration
Use the parameters below to configure the component.
Select an existing File connection manager.
Related Topics: File Connection Manager
Indicate the destination table where the data is to be loaded.
Select table collation.
Knowledge Base
- Where can I find the documentation for the Tableau Destination?
- How to install the Legacy Extract API for .tde files.
What's New
- New: A new DestinationTable parameter specifying where to load data.
- Fixed: Incorrect inclusion of excluded columns in a dynamic data flow.
- New: Component now provides better diagnostic information when required third-party modules are not properly deployed.
- New: Support for newer Tableau SDK modules.
- New: Support for Tableau 10.5 Hyper.
- New: Introduced component.
Related documentation
Tableau Connection
- Fixed: Incorrect pagination definition (Thank you, Leo).
- New: Introduced connection.
Tableau Destination
- New: A new DestinationTable parameter specifying where to load data.
- Fixed: Incorrect inclusion of excluded columns in a dynamic data flow.
- New: Component now provides better diagnostic information when required third-party modules are not properly deployed.
- New: Support for newer Tableau SDK modules.
- New: Support for Tableau 10.5 Hyper.
- New: Introduced component.
Knowledge Base
- Where can I find the documentation for the Tableau Connection?
- Where can I find the documentation for the Tableau Destination?
- How to install the Legacy Extract API for .tde files.
Related documentation
COZYROC SSIS+ Components Suite is free for testing in your development environment.
A licensed version can be deployed on-premises, on Azure-SSIS IR and on COZYROC Cloud.