-
Notifications
You must be signed in to change notification settings - Fork 38
Description
🚀 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+
- Configurable Package Size Settings: New options to adjust chunk sizes for large file uploads
- Improved Timeout Handling: Better default timeouts and configurable timeout parameters
- Enhanced Error Messages: More detailed feedback for troubleshooting upload issues
- Performance Optimizations: More efficient handling of large data transfers
- 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.0Key Features in v0.38
chunk_sizeparameter for controlling upload segments- Enhanced
timeoutconfiguration options - Better handling of large extract files (>100MB)
- Improved connection pooling and retry logic
Steps to Reproduce Current Issue
- Use Koheesio with current tableauserverclient version
- Attempt to publish a Tableau extract larger than ~50-100MB to Nike's Tableau Server
- Observe timeout error during upload:
TimeoutError: Request timed out after XX seconds - Retry fails consistently for larger extracts
Expected Behavior After Update
- Large extracts (100MB+) publish successfully
- Configurable timeout and chunk size parameters prevent premature timeouts
- More informative error messages if issues occur
- 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
- Unit tests for Tableau Server connection steps
- Integration tests with various extract sizes (10MB, 50MB, 100MB, 500MB+)
- Verify timeout configuration options work as expected
- Test with Nike's Tableau Server environment (dev/staging)
Documentation Updates Needed
- Update dependency version in
requirements.txtorpyproject.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:
- tableauserverclient v0.38 Release Notes: https://github.com/tableau/server-client-python/releases
- Tableau Server Client Documentation: https://tableau.github.io/server-client-python/
Priority
High - Affecting multiple teams and blocking scaling of data operations
Labels
enhancement, dependencies, tableau, priority:high