Skip to content

[BUG] Update tableauserverclient Dependency to v0.38+ #230

@Chemicalwedding

Description

@Chemicalwedding

🚀 Feature Request as BUG reporting: Update tableauserverclient Dependency to v0.38+

Problem Statement

The current version of tableauserverclient library included in Koheesio is severely outdated, causing significant operational issues for Nike data engineers working with Tableau Server. The outdated library cannot properly manage large data package sizes when publishing Tableau extracts, leading to frequent timeout errors that disrupt daily workflows.

Current Impact

Affected Teams:

  • Data Engineers
  • Tableau Server Engineers
  • Support Teams

Symptoms:

  • Frequent timeout errors when updating Tableau extracts
  • Failed publish operations for medium to large extract files
  • Increased support tickets and operational overhead
  • Workflow disruptions and delays in data refresh cycles

Root Cause Analysis

The issue stems from the outdated tableauserverclient library's inability to handle the increasing size of Tableau extracts. As data volumes grow across Nike's analytics ecosystem, the current library version lacks the necessary configuration options to manage larger package sizes effectively.

Key Finding: This is NOT related to Nike's Tableau Server version or configuration. The limitation exists solely in the Python client library used by Koheesio.

Proposed Solution

Upgrade tableauserverclient from current version to v0.38 or higher

Benefits of v0.38+

  1. Configurable Package Size Settings: New options to adjust chunk sizes for large file uploads
  2. Improved Timeout Handling: Better default timeouts and configurable timeout parameters
  3. Enhanced Error Messages: More detailed feedback for troubleshooting upload issues
  4. Performance Optimizations: More efficient handling of large data transfers
  5. Bug Fixes: Numerous stability improvements for production workloads

Technical Details

Current Dependency

# Current (outdated) version in requirements.txt or pyproject.toml
tableauserverclient==0.XX  # (exact current version to be verified)

Proposed Update

# Recommended update
tableauserverclient>=0.38,<1.0

Key Features in v0.38

  • chunk_size parameter for controlling upload segments
  • Enhanced timeout configuration options
  • Better handling of large extract files (>100MB)
  • Improved connection pooling and retry logic

Steps to Reproduce Current Issue

  1. Use Koheesio with current tableauserverclient version
  2. Attempt to publish a Tableau extract larger than ~50-100MB to Nike's Tableau Server
  3. Observe timeout error during upload:
    TimeoutError: Request timed out after XX seconds
    
  4. Retry fails consistently for larger extracts

Expected Behavior After Update

  1. Large extracts (100MB+) publish successfully
  2. Configurable timeout and chunk size parameters prevent premature timeouts
  3. More informative error messages if issues occur
  4. Reduced support tickets related to Tableau publishing failures

Business Justification

  • Operational Efficiency: Reduce failed extract updates and manual interventions
  • Scalability: Support growing data volumes without infrastructure changes
  • Developer Experience: Enable data engineers to work without constant workarounds
  • Support Reduction: Decrease support team burden from recurring timeout issues
  • Data Freshness: Ensure timely data updates for business stakeholders

Breaking Changes Assessment

The tableauserverclient library maintains backward compatibility for most common use cases. The update should be non-breaking for existing Koheesio functionality, but testing is recommended for:

  • All Tableau-related Koheesio steps
  • Custom Tableau publishing workflows
  • Authentication patterns (OAuth, PAT, username/password)

Testing Recommendations

  1. Unit tests for Tableau Server connection steps
  2. Integration tests with various extract sizes (10MB, 50MB, 100MB, 500MB+)
  3. Verify timeout configuration options work as expected
  4. Test with Nike's Tableau Server environment (dev/staging)

Documentation Updates Needed

  • Update dependency version in requirements.txt or pyproject.toml
  • Add migration notes if any API changes affect existing code
  • Document new configuration options for package size settings
  • Update examples showing timeout and chunk_size parameters

Additional Context

This issue has been escalated by multiple teams experiencing production disruptions. The increasing size of business-critical extracts makes this update urgent for maintaining reliable data pipelines.

References:

Priority

High - Affecting multiple teams and blocking scaling of data operations

Labels

enhancement, dependencies, tableau, priority:high

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions