TableauUsageToDatabricks 1.0.3
dotnet add package TableauUsageToDatabricks --version 1.0.3
NuGet\Install-Package TableauUsageToDatabricks -Version 1.0.3
<PackageReference Include="TableauUsageToDatabricks" Version="1.0.3" />
<PackageVersion Include="TableauUsageToDatabricks" Version="1.0.3" />
<PackageReference Include="TableauUsageToDatabricks" />
paket add TableauUsageToDatabricks --version 1.0.3
#r "nuget: TableauUsageToDatabricks, 1.0.3"
#:package TableauUsageToDatabricks@1.0.3
#addin nuget:?package=TableauUsageToDatabricks&version=1.0.3
#tool nuget:?package=TableauUsageToDatabricks&version=1.0.3
TableauUsageToDatabricks
Overview
TableauUsageToDatabricks is a .NET application designed to extract Tableau usage data and upload it to Databricks in a structured format. It parses Tableau XML and JSON files, transforms them into models, and writes the results as Parquet files for analytics and reporting in Databricks.
Prerequisites
For Users
- Windows 64-bit OS
- PowerShell or CMD (Command Prompt) to run the application
- Access to Tableau server with role that has access to required resources
- Databricks workspace and credentials
- No .NET installation required (if using the provided self-contained executable)
How to create tokens and find IDs
- Tableau Server Personal Access Token:
- Log in to Tableau Server.
- Go to your account settings (top right corner).
- Find "Personal Access Tokens" and click "Create a new token".
- Enter a name, generate the token, and copy it. Save the token name and secret for use in
appsettings.json
.
- Databricks Personal Access Token:
- Log in to Databricks workspace.
- Click your user icon (top right) and select "User Settings".
- Go to "Access Tokens" and click "Generate New Token".
- Copy the generated token and use it in
appsettings.json
.
- Databricks SQL Warehouse ID:
- In Databricks workspace, go to "SQL" from the sidebar.
- Click on "SQL Warehouses".
- Select the warehouse you want to use.
- Copy the "Warehouse ID" from the warehouse details page and use it in
appsettings.json
.
For Developers
- Additionally, pre-install .NET 8 SDK (required to build or publish the application)
Configuration: appsettings.json
Before running the application, you must create and configure an appsettings.json
file. This file contains all necessary settings for Tableau and Databricks integration.
Where to place
- Place
appsettings.json
in the same directory asTableauUsageToDatabricks.exe
(the published executable). - Users can edit this file at any time to update configuration without modifying the application.
Example appsettings.json
{
"Tableau": {
"BaseUrl": "https://your-tableau-server.com",
"TokenName": "your-token-name",
"TokenSecret": "your-token-secret"
},
"Databricks": {
"Host": "https://your-databricks-instance.cloud.databricks.com",
"PersonalAccessToken": "your-databricks-token",
"WarehouseId": "your-warehouse-id",
"VolumePath": "/Volumes/your-volume",
"DatabaseName": "your-database-name"
},
"Parquet": {
"DataSourcesFileName": "datasources.parquet",
"WorkbooksFileName": "workbooks.parquet",
"ViewsFileName": "views.parquet",
"WorkbookUsageFileName": "workbook_usage.parquet",
"ViewUsageFileName": "view_usage.parquet",
"WorkbookConnectionsFileName": "workbook_connections.parquet",
"WorkbookDatasourcesFileName": "workbook_datasources.parquet",
"DataSourceConnectionsFileName": "datasource_connections.parquet"
}
}
Required fields
- Tableau: Connection details for your Tableau server and API token.
- Databricks: Host URL, access token, warehouse ID, volume path, and database name for Databricks.
- Parquet: Output file names for each data type.
Edit the values to match your environment and credentials.
Usage
- Edit
appsettings.json
with your Tableau and Databricks configuration. - The application connects to Tableau Server, collects usage statistics, and saves them as Parquet files in Temp folders before uploading to Databricks.
- If Parquet files already exist in Temp, they will be reused.
- Newly created Parquet files will not be overwritten or re-created on the same day.
- Run the application from PowerShell or CMD:
.\TableauUsageToDatabricks.exe
Features
- Collects usage statistics from Tableau workbooks, views, and datasources
- Converts data to Parquet format
- Uploads data to Databricks
- Supports configuration via
appsettings.json
How to Build and Publish (Self-Contained, Win-x64)
Restore dependencies
dotnet restore
Publish a self-contained release build for Windows 64-bit
dotnet publish -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true -o publish
- Output will be in the
publish
folder.
- Output will be in the
Create a ZIP file of the release
Compress-Archive -Path publish\* -DestinationPath TableauUsageToDatabricks-win-x64.zip
Publishing to NuGet
Build the NuGet package:
dotnet pack -c Release
Publish to NuGet.org:
dotnet nuget push .\bin\Release\TableauUsageToDatabricks.1.0.0.nupkg --api-key <your-nuget-api-key> --source https://api.nuget.org/v3/index.json
License
See LICENSE for details.
Support
For issues and feature requests, use the project's issue tracker.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.Configuration.Json (>= 9.0.8)
- Newtonsoft.Json (>= 13.0.2)
- ParquetSharp (>= 20.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.