Нет хорошего способа сделать это, но есть некоторые хакерские обходные пути.
Вариант 1: отдельные серверы БД для каждого клиента, одна и та же схема
Если у каждого клиента есть отдельный сервер базы данных с той же схемой, вы можете использовать API REST сервера таблиц , чтобы дублировать рабочую книгу и источник данных для каждого клиента, а затем использовать конечную точку Обновление соединения с источником данных, чтобы измените сервер базы данных, на который указывает источник данных, на новый клиент.
Вариант 2: тот же сервер базы данных и схема
- Создайте столбец в таблице базы данных с именем «client» и установите для него идентификатор клиента или имя клиента во всех ваших строках
- Создать параметр в вашей рабочей таблице Tableau с именем «Клиент»
- При подключении к базе данных и таблице в Tableau вы можете использовать пользовательский оператор SQL, например:
SELECT * FROM table WHERE client=<Parameters.Client>
- После загрузки рабочей книги вы можете использовать метод API JS Метод Workbook.changeParameterValueAsync () , чтобы установить для параметра Client соответствующий идентификатор клиента
Это имеет некоторые критические проблемы безопасности: Если пользователь может определить идентификатор клиента другого клиента, он может получить свои данные. Они также могут грубо форсировать это, вызывая changeParameterValueAsync сами.