如何將Tableau server中的視圖嵌入web頁面

      網(wǎng)友投稿 1202 2025-04-01

      tableau作為可視化數(shù)據(jù)分析軟件中的佼佼者,將數(shù)據(jù)運算與美觀的圖表完美地嫁接在一起。它的程序很容易上手,各公司可以用它將大量數(shù)據(jù)拖放到數(shù)字“畫布”上,轉(zhuǎn)眼間就能創(chuàng)建好各種圖表。

      創(chuàng)建與共享絕妙的數(shù)據(jù)可視化內(nèi)容,tableau 為您呈上唾手可得的可視化分析能力。它幫助您生動地分析實際存在的任何結(jié)構(gòu)化數(shù)據(jù),以在幾分鐘內(nèi)生成美觀的圖表、坐標圖、儀表盤與報告。

      利用 Tableau 簡便的拖放式界面,您可以自定義視圖、布局、形狀、顏色等等,幫助您展現(xiàn)自己的數(shù)據(jù)視角。另外他還適用于多種數(shù)據(jù)文件與數(shù)據(jù)庫,數(shù)據(jù)可擴展性強,不限制您所處理的數(shù)據(jù)大小。

      首先講一下我們今天用到的Tableau的模塊吧:tableau desktop 是用來創(chuàng)建分析,進行數(shù)據(jù)分析的,是分析工具。tableau Server 是用來發(fā)布分析的,發(fā)布給企業(yè)相關(guān)權(quán)限的人,是服務(wù)器。

      接下來就讓我們了解一下tableau嵌入視圖的原理吧。

      1、客戶端請求數(shù)據(jù):當用戶訪問具有嵌入式 Tableau Server 視圖的網(wǎng)頁時,該客戶端會向 Web 服務(wù)器發(fā)送請求,要求返回頁面地址。

      2、Web 服務(wù)器請求Tableau Server:Web 服務(wù)器向受信任的 Tableau Server發(fā)送請求。該請求必須有一個 username 參數(shù)。username 值必須是 Tableau Server 許可用戶的用戶名。如果 Tableau Server 承載多個站點,且視圖在默認站點之外的其他站點上,則 POST 請求還必須包含 target_site 參數(shù)。

      3、Tableau Server 創(chuàng)建票證:Tableau Server 檢查發(fā)送請求的 Web 服務(wù)器的 IP 地址或主機名。如果 Web 服務(wù)器作為受信任主機列出,則 Tableau Server 將以唯一字符串的形式創(chuàng)建一個票證。票證必須在發(fā)出后三分鐘內(nèi)兌換。Tableau Server 使用該票證來響應(yīng) POST 請求。或者,如果存在錯誤并且無法創(chuàng)建票證,則 Tableau Server 將使用值 -1 進行響應(yīng)。

      4、Web 服務(wù)器將 URL 傳遞給客戶端:Web 服務(wù)器將為視圖構(gòu)建 URL,并將其插入網(wǎng)頁的 HTML 中。Web 服務(wù)器將 HTML 傳遞回客戶端的 Web 瀏覽器。

      5、客戶端向Tableau Server 請求視圖:客戶端 Web 瀏覽器將向 Tableau Server 發(fā)送一個請求,該請求包括帶有票證的 URL。

      6、Tableau Server 兌換票證:Tableau Server 兌換票證,創(chuàng)建會話,將用戶登錄,從 URL 中移除票證,然后將嵌入視圖的最終 URL 發(fā)送到客戶端。

      最后讓拋出重要的代碼來講解一下:

      如何將Tableau server中的視圖嵌入web頁面

      服務(wù)端代碼:

      public String index(){ PropertiesUtils props = PropertiesUtils.getInstance(); //tableau server服務(wù)器地址 final String wgserver = props.getProperty("tableau.server.location"); //Tableau Server 許可用戶的用戶名 final String tableAuUser = props.getProperty("tableau.user"); String ticket; String tickUrl = ""; try { ticket = TableauHelper.getTrustedTicket(wgserver, tableAuUser); if ( !ticket.equals("-1") ) { tickUrl = "http://" + wgserver + "/trusted/" + ticket + "/view/names"; } } catch (ServletException e) { logger.error("獲取tableau ticket 失敗。 ",e); } setAttr("tickUrl",tickUrl); render("tableau.html"); } //獲取票證邏輯 public static String getTrustedTicket(String wgserver, String user) throws ServletException { OutputStreamWriter out = null; BufferedReader in = null; try { StringBuilder reqUrl = new StringBuilder(); reqUrl.append(URLEncoder.encode("username", "UTF-8")); reqUrl.append("="); reqUrl.append(URLEncoder.encode(user, "UTF-8")); URL url = new URL("http://" + wgserver + "/trusted"); URLConnection conn = url.openConnection(); conn.setDoOutput(true); out = new OutputStreamWriter(conn.getOutputStream()); out.write(reqUrl.toString()); out.flush(); StringBuilder rsp = new StringBuilder(); in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { rsp.append(line); } return rsp.toString(); } catch (Exception e) { throw new ServletException(e); } finally { try { if (in != null) in.close(); if (out != null) out.close(); } catch (IOException e) { } } }

      前臺代碼

      tableau頁面

      這樣我們就完成了將tableau server中的視圖嵌入自己的頁面中。

      Tableau JavaScript API:https://onlinehelp.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api.htm

      Tableau Server獲取票證:https://onlinehelp.tableau.com/current/server/zh-cn/trusted_auth_webrequ.htm

      Tableau編寫嵌入代碼:https://onlinehelp.tableau.com/current/pro/desktop/zh-cn/embed_code.htm

      嵌入代碼的參數(shù):https://onlinehelp.tableau.com/current/pro/desktop/zh-cn/embed_list.htm

      在這里再說幾個參數(shù)吧

      :alerts(values為yes或者no):隱藏工具欄中的“通知”按鈕,該按鈕使用戶能創(chuàng)建數(shù)據(jù)驅(qū)動型通知。 :customViews(values為yes或者no):隱藏工具欄中的“視圖”按鈕,該按鈕使用戶能保存自定義視圖。 :showShareOptions(values為true或者false):控制是否在嵌入視圖中顯示“共享”選項。 :device(values為desktop、tablet、phone):屏幕大小及布局屬性。

      web前端

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:在Excel中插入數(shù)據(jù)透視表時提示數(shù)據(jù)透視表字段名無效
      下一篇:Word文檔中的圖片自動編號的方法
      相關(guān)文章
      亚洲AV色无码乱码在线观看| 亚洲成年人电影网站| 亚洲熟妇无码AV| 亚洲酒色1314狠狠做| 久久99国产亚洲精品观看| 亚洲VA中文字幕不卡无码| 亚洲精品狼友在线播放| 亚洲精品国产字幕久久不卡 | 亚洲中文无韩国r级电影| www亚洲一级视频com| 亚洲AV无码乱码在线观看| 亚洲电影日韩精品| 亚洲精品动漫人成3d在线| 亚洲欧洲久久av| 国产中文在线亚洲精品官网| 伊人婷婷综合缴情亚洲五月| 亚洲午夜未满十八勿入网站2| 亚洲精品乱码久久久久久按摩| 亚洲国产精品无码一线岛国| 亚洲爆乳无码专区| 亚洲宅男永久在线| 亚洲日韩中文字幕| 亚洲精品国产国语| 亚洲AV无码AV吞精久久| 亚洲黄黄黄网站在线观看| 国产成人A亚洲精V品无码| 精品久久久久久亚洲| 亚洲天堂视频在线观看| 亚洲国产精品成人精品小说| 亚洲国产精品综合久久20| 亚洲精品国产suv一区88| 日韩亚洲精品福利| 精品亚洲一区二区三区在线播放 | 亚洲av无码片在线观看| 亚洲精品无码中文久久字幕| 夜色阁亚洲一区二区三区| 亚洲情侣偷拍精品| 亚洲AV无码第一区二区三区| 亚洲首页在线观看| 亚洲欧美成aⅴ人在线观看| 亚洲国产成人VA在线观看|