MaxCompute (previously known as ODPS) is a general purpose, fully managed, multi-tenancy data processing platform for large-scale data warehousing.
This connector allows users to use MaxCompute as datasource in Tableau.
This connector is developed under the Tableau official guidance and TDVT passed.
- Install TDVT:
python3 -m pip install tdvt-1.5.14.tar.gz
- Setup MaxCompute project and prepare tables for TDVT(check
dataset/maxcompute/*.sql
), runsetproject.sql
as project owner and the output ofsetproject;
should containsodps.sql.validate.orderby.limit=false odps.sql.decimal.odps2=true odps.sql.type.system.odps2=true odps.sql.timezone=UTC odps.sql.hive.compatible=true
- Update config/odps_config.ini, set 'CommandLineOverride' to be the path to unzipped 'plugin' directory
- Update config/odps_config.ini, set 'tablePrefix' to be your maxcompute project name
- Edit config/tdvt/tdvt.ini and set the path to tabquerytool
- Move MaxCompute jdbc driver (
lib/odps-jdbc-*.jar
) to the tableau driver directory (eg.~/Library/Tableau/Drivers
on MacOS) - Setup dataset, see dataset directory and TDVT guidance for detail
- Follow the TDVT guidance to run tests
- Since TDVT has a fixed 60 minutes timeout, and MaxCompute takes about 140 minutes, please install TDVT using the archive provided by us
- The log of jdbc is in the same directory of jdbc driver
- To generate tds file,
scripts/start.sh
provides an example to start Tableau desktop with MaxCompute connector. You need to modify the path to make the script run correctly
The connector is open sourced under the MIT License.
MaxCompute provides command line tool named odpscmd
as an interactive shell, which is also open-sourced.
Here's some hints about how to setup and use odpscmd
:
- Download odpscmd package and finish all necessary configuration refer to official document
- each command has to be ended with a ';'
- view the metadata of a table with 'desc' command (like 'desc calcs;')
- execute SQL statements generated by TDVT directly (like 'SELECT * FROM TBL LIMIT 50;')
- use 'help;' command for more advanced commands