這篇文章主要介紹“Linkis JDBC是怎么適配Tableau”,在日常操作中,相信很多人在Linkis JDBC是怎么適配Tableau問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linkis JDBC是怎么適配Tableau”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:申請域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、昌黎網(wǎng)站維護、網(wǎng)站推廣。
01
—
背景介紹
----為什么我們需要Linkis JDBC去兼容Tableau?
毫無疑問,Tableau在當今商業(yè)化BI產(chǎn)品中有著廣泛的客戶群體,很多商業(yè)機構(gòu)使用Tableau進行數(shù)據(jù)分析和構(gòu)建報表,支持Tableau的兼容方案可以使不懂java的數(shù)據(jù)分析人員依靠托拉拽的可視化方式向Linkis提交任務(wù)。無論對于用戶還是Linkis,實現(xiàn)Tableau兼容都是非常值得去做的一件事。
對于用戶來說,使用JDBC的開發(fā)人員必須掌握JDBC的使用方法,這種限制增加了分析人員的學習成本,為了豐富用戶的使用場景,不僅僅依靠java api的方式去構(gòu)建代碼與Linkis互動,兼容可視化BI工具的想法應(yīng)運而生,而Tableau正是這一想法的其中一個實現(xiàn)目標。
對于Linkis來說,Linkis項目誕生之時便有“連接一切”的愿景,實現(xiàn)豐富的底層計算存儲組件的支持和滿足多樣的上層應(yīng)用接入,通過JDBC的方式連接Linkis拓展了自身的適用場景,將Linkis JDBC適配Tableau本身也是拓展用戶群體的一種體現(xiàn)。
(1)定義JDBC展示屬性的Manifest
<?xml version='1.0' encoding='utf-8' ?><connector-plugin class='linkis_jdbc' superclass='jdbc' plugin-version='1.0' name='Linkis (JDBC)' version='2020.1.0'> <vendor-information> <company name="Linkis"/> <support-link url="https://github.com/WeBankFinTech/Linkis"/> </vendor-information> <connection-customization class="linkis_jdbc" enabled="true" version='2020.1.0'> <vendor name="linkis"/> <driver name="Linkis JDBC Driver"/> <customizations> <customization name="CAP_JDBC_METADATA_READ_PRIMARYKEYS" value="no"/> <customization name="CAP_JDBC_METADATA_READ_FOREIGNKEYS" value="no"/> <customization name="CAP_JDBC_QUERY_ASYNC" value="yes"/> <customization name="CAP_JDBC_QUERY_CANCEL" value="yes"/> <customization name="CAP_FAST_METADATA" value="yes"/> <customization name="CAP_SELECT_INTO" value="no"/> <customization name="CAP_SELECT_TOP_INTO" value="no"/> <customization name="CAP_CREATE_TEMP_TABLES" value="no"/> <customization name="CAP_QUERY_BOOLEXPR_TO_INTEXPR" value="no"/> <customization name="CAP_QUERY_GROUP_BY_DEGREE" value="no"/> <customization name="CAP_QUERY_SORT_BY_DEGREE" value="no"/> <customization name="CAP_QUERY_SUBQUERIES" value="yes"/> <customization name="CAP_QUERY_TOPSTYLE_LIMIT" value="yes"/> <customization name="CAP_QUERY_WHERE_FALSE_METADATA" value="yes"/> <customization name="CAP_QUERY_SUBQUERIES_WITH_TOP" value="yes"/> <customization name="CAP_SUPPORTS_SPLIT_FROM_LEFT" value="yes"/> <customization name="CAP_SUPPORTS_SPLIT_FROM_RIGHT" value="yes"/> <customization name="CAP_SUPPORTS_UNION" value="yes"/> <customization name="CAP_QUERY_ALLOW_PARTIAL_AGGREGATION" value="no"/> <customization name="CAP_QUERY_HAVING_REQUIRES_GROUP_BY" value="yes"/> <customization name='CAP_JDBC_SUPPRESS_ENUMERATE_DATABASES' value='yes' /> <customization name='CAP_JDBC_SUPPRESS_ENUMERATE_SCHEMAS' value='yes' /> <customization name='CAP_QUERY_TOP_N' value='no' /> </customizations> </connection-customization> <connection-dialog file='connection-dialog.tcd'/> <connection-resolver file="connectionResolver.tdr"/> <dialect file='dialect.tdd'/></connector-plugin>
(2)用于定制連接器對話框的tcd文件
<connection-dialog class='linkis_jdbc'> <connection-config> <authentication-mode value='Basic' /> <authentication-options> <option name="UsernameAndPassword" default="true" /> </authentication-options> <db-name-prompt value="Database: " /> <has-pre-connect-database value="true" /> <port-prompt value="Port: " default="9001" /> <show-ssl-checkbox value="true" /> </connection-config> </connection-dialog>
<?xml version='1.0' encoding='utf-8' ?><tdr class='linkis_jdbc'> <connection-resolver> <connection-builder> <script file='connectionBuilder.js'/> </connection-builder> <connection-normalizer> <required-attributes> <setImpersonateAttributes/> <attribute-list> <attr>server</attr> <attr>port</attr> <attr>dbname</attr> <attr>username</attr> <attr>password</attr> <attr>sslmode</attr> </attribute-list> </required-attributes> </connection-normalizer> <connection-properties> <script file='connectionProperties.js'/> </connection-properties> </connection-resolver></tdr>
?
(4)定制SQL方言的tdd文件
<dialect name='HiveDialectSDK'
base='HiveDialect'
class='linkis_jdbc'
version='18.1'>
<function-map>
<function group='numeric' name='LN' return-type='real'>
<formula>(CASE WHEN %1 > 0 THEN LN(%1) ELSE CAST(NULL AS DOUBLE) END)</formula>
<argument type='real' />
</function>
<function group='numeric' name='LOG' return-type='real'>
<formula>(CASE WHEN %1 > 0 THEN LOG10(%1) ELSE CAST(NULL AS DOUBLE) END)</formula>
<argument type='real' />
</function>
<function group='numeric' name='LOG' return-type='real'>
<formula>(CASE WHEN %1 > 0 THEN LOG10(%1) / LOG10(%2) ELSE NULL END)</formula>
<argument type='real' />
<argument type='real' />
</function>
<function group='numeric' name='MAX' return-type='real'>
<formula>(CASE 	WHEN (%1 IS NULL) OR (%2 IS NULL) THEN NULL 	WHEN %1 > %2 THEN %1 	ELSE %2 END)</formula>
<argument type='real' />
<argument type='real' />
</function>
<function group='numeric' name='MAX' return-type='int'>
<formula>(CASE 	WHEN (%1 IS NULL) OR (%2 IS NULL) THEN NULL 	WHEN %1 > %2 THEN %1 	ELSE %2 END)</formula>
<argument type='int' />
<argument type='int' />
</function>
</function-map>
</dialect>
(function dsbuilder(attr) {
var urlBuilder = "jdbc:linkis://" + attr[connectionHelper.attributeServer] + ":" + attr[connectionHelper.attributePort] + "/" + attr[connectionHelper.attributeDatabase];
return [urlBuilder];
})
?
(function propertiesbuilder(attr) {
var props = {};
props["user"] = attr[connectionHelper.attributeUsername];
props["password"] = attr[connectionHelper.attributePassword];
if (attr[connectionHelper.attributeSSLMode] == "require") {
props["ssl"] = "true";
props["sslmode"] = "require";
}
return props;
})
?
上述路徑和文件名是自定義的,不必和本文章完全一致,在啟動時我們需要添加額外參數(shù)-DConnectPluginsPath=/Path定向加載適配文件。在CMD命令行中輸入
E:\tableau\bin\tableau.exe -DConnectPluginsPath=C:\connectors
其中E:\tableau\bin\tableau.exe是Tableau的運行路徑。也可以在Tableau快捷方式中指定運行參數(shù),這樣就可以避免每次通過命令行啟動。
到此,關(guān)于“Linkis JDBC是怎么適配Tableau”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
當前題目:LinkisJDBC是怎么適配Tableau
本文鏈接:http://aaarwkj.com/article0/gppioo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、建站公司、App開發(fā)、云服務(wù)器、定制開發(fā)、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)