常見問題
本文介紹在使用圖數(shù)據(jù)庫GDB過程中的常見問題。
產(chǎn)品介紹
問:什么是圖數(shù)據(jù)庫GDB?
答:GDB是Graph Database的簡寫。GDB是一種支持Property Graph圖模型、用于處理高度連接數(shù)據(jù)查詢與存儲的實時、可靠的在線數(shù)據(jù)庫服務(wù)。它支持Apache TinkerPop Gremlin查詢語言,可以幫助用戶快速構(gòu)建基于高度連接的數(shù)據(jù)集的應(yīng)用程序。GDB非常適合社交網(wǎng)絡(luò),欺詐檢測,推薦引擎,實時圖譜,網(wǎng)絡(luò)/IT 運營這類高度互連數(shù)據(jù)集的場景。更是多信息請參見什么是圖數(shù)據(jù)庫GDB?
問:圖數(shù)據(jù)庫GDB支持ACID事務(wù)嗎?
答:支持。區(qū)別于用戶自己控制事務(wù)開始和提交的方式,GDB系統(tǒng)會對每一個DSL開啟一個事務(wù)并在結(jié)束的時候按照運行情況自動提交或者回滾。公測期間,GDB默認(rèn)提供READ COMMITTED隔離級別的事務(wù)支持,后續(xù)商業(yè)化后會開放更多的隔離級別選項。此外,需要注意的是,單個DSL的事務(wù)存在64M總Buffer大小的限制,如果超出將會失敗(清空測試數(shù)據(jù)可以使用數(shù)據(jù)刪除工具,工具詳情請參見GDB數(shù)據(jù)刪除工具)。
實例規(guī)格
問:圖數(shù)據(jù)庫GDB支持變更實例規(guī)格嗎?
答:高可用版本支持變更實例規(guī)格,基礎(chǔ)版本除只讀實例外不支持。
問:圖數(shù)據(jù)庫GDB支持存儲擴(kuò)縮容嗎?
答:高可用與基礎(chǔ)版本均支持。
問:如果實例存儲空間占用滿了會出現(xiàn)怎樣的情況?
答:如果實例的存儲空間已滿,該實例會被自動鎖定,變成只讀狀態(tài)。建議您定期檢查存儲空間的使用情況。
實例使用
問:圖數(shù)據(jù)庫GDB需要用戶自己創(chuàng)建和維護(hù)索引嗎?
答:不需要。GDB系統(tǒng)內(nèi)部會自動創(chuàng)建和維護(hù)索引,用戶不需要感知。
問:圖數(shù)據(jù)庫GDB是否執(zhí)行查詢優(yōu)化?
答:是的,GDB會執(zhí)行查詢優(yōu)化。相關(guān)優(yōu)化方式已經(jīng)過嚴(yán)格測試,保證結(jié)果的準(zhǔn)確性。
問:圖數(shù)據(jù)庫GDB需要用戶主動升級和維護(hù)內(nèi)核小版本嗎?
答:需要。GDB服務(wù)端的數(shù)據(jù)庫小版本會在經(jīng)過嚴(yán)格測試后發(fā)布,用戶可以通過圖數(shù)據(jù)庫GDB控制臺升級內(nèi)核小版本,GDB實例升級的過程中會出現(xiàn)短時間的連接閃斷,用戶需要設(shè)置程序自動重連,具體升級方法請參見升級內(nèi)核小版本。
問:圖數(shù)據(jù)庫GDB的高可用實例支持在故障切換需要感知和注意什么嗎?
答:對于GDB高可用版,當(dāng)主節(jié)點出現(xiàn)故障時,GDB會快速切換到備節(jié)點。切換過程中會出現(xiàn)短時間的連接閃斷(切換很快,主要為主節(jié)點故障診斷和確認(rèn)時間),需要用戶設(shè)置好程序的自動重連,避免因為切換導(dǎo)致服務(wù)不可用。
問:圖數(shù)據(jù)庫GDB支持跨AZ高可用嗎?
答:不支持。
備份與恢復(fù)
問:圖數(shù)據(jù)庫GDB需要用主動執(zhí)行備份嗎?
答:GDB會為每個實例生成一個默認(rèn)備份策略自動執(zhí)行備份,用戶可以修改備份策略,但不需要主動執(zhí)行備份。
問:圖數(shù)據(jù)庫GDB備份有保留時間限制嗎?
答:有,用戶可以在備份設(shè)置里面設(shè)置備份保留天數(shù),取值范圍為7~730天。超期后備份將自動刪除,超期時間以備份設(shè)置天數(shù)(非最長天數(shù))為準(zhǔn)。
實例連接
問:圖數(shù)據(jù)庫GDB是否支持公網(wǎng)訪問?
答:支持,可以在GDB控制臺的實例
基本信息
頁面申請公網(wǎng)地址,申請成功后如果要關(guān)閉公網(wǎng)需要提工單。問:圖數(shù)據(jù)庫GDB無法連接排查?
答:1. 檢查GDB實例白名單配置,確保待訪問的來源IP不會被白名單限制(外網(wǎng)訪問可以用 myip.ipip.net 查看本機(jī)外網(wǎng)IP,配置到實例白名單中,但該IP會變化,也可以添加
0.0.0.0/0
允許所有來源IP訪問,確保自己的開發(fā)機(jī)器可以訪問內(nèi)核,但外網(wǎng)僅用于功能性驗證,不保證服務(wù)性能與穩(wěn)定性); 2. 確保已經(jīng)給GDB實例添加賬號,并保證連接時的賬號信息正確。添加賬號的方法請參見添加賬號; 3. 如果自己的實例是單節(jié)點非只讀實例,以前可以連接但現(xiàn)在鏈接異常,由于單節(jié)點實例無SLA保障,僅用于測試不能用于線上業(yè)務(wù),可以先在控制臺發(fā)起重啟查看是否能夠解決
# 檢查域名是否可以連接(替換成您的實例地址,注意區(qū)分內(nèi)網(wǎng)和外網(wǎng)),正常會輸出ttl和time。
ping gds-uf6j53c35ko13u78129990pub.graphdb.rds.aliyuncs.com
PING gds-uf6j53c35ko13u78129990pub.graphdb.rds.aliyuncs.com (101.xxx.xxx.xxx): 56 data bytes
64 bytes from xxx.xxx.xxx: icmp_seq=0 ttl=91 time=31.061 ms
64 bytes from xxx.xxx.xxx: icmp_seq=1 ttl=91 time=30.576 ms
...
# 檢查實例端口是否可連接(替換成您的實例地址和端口,注意區(qū)分內(nèi)網(wǎng)和外網(wǎng)),正常可以連接上端口
telnet gds-uf6j53c35xxx.graphdb.rds.aliyuncs.com 3734
Trying 101.xxx.xxx.xxx...
Connected to gds-uf6j53c35xxx.graphdb.rds.aliyuncs.com.
Escape character is '^]'.
API、SDK、訪問實例等
問:圖數(shù)據(jù)庫GDB支持什么圖查詢語言?
答:GDB支持開源的Apache TinkerPop Gremlin圖查詢語言,具體的兼容性請參見GDB Gremlin實現(xiàn)的兼容性。GDB支持原生Cypher圖查詢語言,具體的兼容性請參見GDB Cypher實現(xiàn)的兼容性。
問:我可以使用Apache TinkerPop 的開源Driver訪問圖數(shù)據(jù)庫GDB嗎?
答:可以。GDB兼容Apache TinkerPop 3.3.x及3.4.0的Driver,支持通過Java,Python, C#,以及REST的方式來訪問GDB。以Java為例,相關(guān)訪問示例請參見Java SDK訪問示例。
問:SDK中使用過程中的,遇到 Max frame length of 65536 has been exceeded以及 Timed out while waiting for an available host等問題
答:請您參考 該鏈接, 對客戶端的 maxContentLength、maxSize、minSize參數(shù)進(jìn)行設(shè)置
問:SDK使用中出現(xiàn)rejected from java.util.concurrent.ThreadPoolExecutor[Running, pool size = xx, active threads = xx, queued tasks = xx, completed tasks = xx]
答:請您參考 該鏈接, 在submit之后務(wù)必要主動獲取結(jié)果,可以all.join() 獲取全部、one()獲取一個、some()獲取一批
問:訪問實例中遇到 Resource busy: engine write status disable
答:1. 首先在實例詳情頁面查詢【實例到期時間】是否到期,到期后會鎖定實例并關(guān)寫,7天后會釋放實例,此時續(xù)費便可以正常使用。2. 如果是單節(jié)點實例且沒有發(fā)生鎖定,由于單節(jié)點實例無SLA保障,僅用于測試不能用于線上業(yè)務(wù),在控制臺重啟便可以解決
實例監(jiān)控
問:為什么打開實例監(jiān)控界面,提示,暫時無法獲取數(shù)據(jù)?
答:如果您是新建的GDB實例,請稍等幾分鐘。如果您是RAM用戶登錄,需要聯(lián)系阿里云賬號授予AliyunGDBFullAccess與AliyunCloudMonitorFullAccess的權(quán)限,具體請參見為RAM用戶授權(quán)。
數(shù)據(jù)導(dǎo)入
數(shù)據(jù)導(dǎo)入常見問題參考 錯誤信息列表
RAM用戶(子賬號)
問:使用RAM用戶,無法更新GDB實例的名稱、白名單、備份策略等。
答:需要主賬號賦值權(quán)限 RAM用戶(子賬號)使用GDB的準(zhǔn)備工作
可視化
問:為什么我通過DMS執(zhí)行的DSL比程序中的要快?
答:官方DMS,對所有的語句后面加了limit(256),所以通過DMS的執(zhí)行并不代表實際的DSL執(zhí)行性能。
問:目前DMS是否支持Cypher可視化?
答:目前DMS暫不支持Cypher的可視化。
問:GDB是否有自己的可視化工具?
答:開源的 gdb-console,均支持Gremlin與Cypher的可視化,您有較強(qiáng)的可視化需求時,自己也可根據(jù)開源代碼定制開發(fā)
性能分析
問:我如何分析一個Gremlin語句執(zhí)行的性能
答:使用 gremlin-console, 在您要分析的語句后面加上 .profile()