Lindorm-cli是Lindorm提供的簡易命令列工具,用於串連和管理Lindorm資料庫。您可以通過Lindorm-cli完成基本的SQL操作,例如建表、資料查詢、資料寫入和匯出等。本文介紹通過Lindorm-cli串連並使用Lindorm寬表引擎的方法。
前提條件
我們定義運行 lindorm-cli 的環境為用戶端環境。在實際運行 lindorm-cli 訪問 Lindorm 寬表引擎前,必須確認以下內容:
已將用戶端IP地址添加至Lindorm 的白名單,具體操作請參見設定白名單。
用戶端環境與 Lindorm 之間的網路類型是哪種。
lindorm-cli 串連寬表引擎可使用的網路類型如下:
網路類型
說明
Virtual Private Cloud(Virtual Private Cloud)是您自己的雲上私人網路,不同的專用網路之間二層邏輯隔離,具有較高的安全性。Lindorm-cli部署在ECS執行個體上時,通過專用網路串連至Lindorm寬表,可獲得更高的安全性和更低的網路延遲。
公網
公網即互連網,當本地裝置需要測試或管理Lindorm寬表時,可在本地裝置上部署Lindorm-cli,然後通過公網串連至Lindorm寬表。
說明通過公網串連不會產生流量費用,但存在一定的安全風險,推薦通過專用網路串連以擷取更高的安全性。
公網地址需要在控制台開通。如何開通,請參見操作步驟。
安裝方法
根據您的作業系統,下載對應的Lindorm-cli安裝包,下載連結如下表所示。
說明下表中SHA256校正和可用於驗證下載的Lindorm-cli安裝包的完整性和真實性。
作業系統
下載連結
SHA256校正和
Linux
命令直接下載:
wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/lindorm-cli-linux-latest.tar.gz0f4ccaf214b41fdf8d3dd5f0ed4f92f1d5e6b0a11da3d217c9df6d382f0080df
Linux-arm64
命令直接下載:
wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/lindorm-cli-linux-arm64-latest.tar.gz1bfb992853a26c703b2d9e2bd50e4d7e31f88992bcb7e70ac30331f5998c269e
Mac(Intel晶片)
af8a78bfe8ef53d1df25df99b5803ef3f55da7e943d730a1a6d44cd918f28842
Mac(Arm晶片)
5bdc8600055432a9275a0d52e5d26e6c2cfc7a553961c09681d0388a5a5e9a62
Windows
7721748744edc551d43fec6bb19ab40eb514bb6043a3d21afa38f353833259ce
解壓Lindorm-cli壓縮包。
在不同的作業系統上,使用該作業系統解壓縮包的常用方法解開先前所下載的壓縮包。
以Linux作業系統為例,執行以下命令解壓。解壓後可得到
lindorm-cli檔案。它是一個可執行檔,無需額外安裝操作即可在 Shell 終端中直接執行。tar zxvf lindorm-cli-linux-latest.tar.gz
串連方法
lindorm-cli 同時支援以 MySQL 協議或者 Avatica 協議串連 Lindorm 寬表引擎,優先推薦使用 MySQL 協議來串連寬表引擎。
僅2.0.0以上版本的lindorm-cli支援通過MySQL協議串連寬表引擎。
通過MySQL協議串連寬表引擎(推薦)
用戶端部署在Linux或Mac系統
跳轉至
Lindorm-cli所在目錄。cd <Lindorm-cli所在目錄>執行以下語句串連寬表引擎。
./lindorm-cli -url <mysql url> -username <使用者名稱> -password <密碼>參數說明
參數
說明
mysql url
使用者名稱
串連Lindorm寬表引擎的使用者名稱。
密碼
串連Lindorm寬表引擎的密碼。
重要如果忘記密碼,可以通過Lindorm寬表引擎的叢集管理系統修改使用者密碼。
修改密碼後,請通過控制台重啟引擎。
串連配置說明
支援的串連配置
說明
mysql://協議頭支援在mysql url前添加
mysql://協議頭。例如:
mysql://ld-8vbn68478unu8****-proxy-sql-lindorm.lindorm.rds.aliyuncs.com:33060。服務端自訂串連參數
您可以在mysql url後設定服務端自訂串連參數,格式為
key1=value1&key2=value2。目前支援的參數如下:
operationTimeout:表示查詢逾時時間。格式為
<mysql url>?operationTimeout=<逾時時間>,其中逾時時間單位為毫秒(ms)。例如:ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060?operationTimeout=120000。串連樣本
./lindorm-cli -url ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password test --添加mysql://協議頭串連 ./lindorm-cli -url mysql://ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password test --指定查詢逾時時間 ./lindorm-cli -url mysql://ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060?operationTimeout=120000 -username user -password test串連成功將返回以下結果:
lindorm-cli version: 2.0.x其中,
2.0.x為Lindorm-cli的版本號碼。
用戶端部署在Windows系統
方法一
開啟命令提示字元(CMD),跳轉至
lindorm-cli.exe的所在目錄下。cd <lindorm-cli.exe所在目錄>在CMD上執行以下語句串連寬表引擎。
lindorm-cli -url <mysql url> -username <使用者名稱> -password <密碼>參數說明
參數
樣本值
擷取方法
mysql url
ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060
使用者名稱
user
串連Lindorm寬表引擎的使用者名稱。
密碼
test
串連Lindorm寬表引擎的密碼。
重要如果忘記密碼,可以通過Lindorm寬表引擎的叢集管理系統修改使用者密碼。
修改密碼後,請通過控制台重啟引擎。
串連配置說明
支援的串連配置
說明
mysql://協議頭支援在mysql url前添加
mysql://協議頭。例如:
mysql://ld-8vbn68478unu8****-proxy-sql-lindorm.lindorm.rds.aliyuncs.com:33060。服務端自訂串連參數
您可以在mysql url後設定服務端自訂串連參數,格式為
key1=value1&key2=value2。目前支援的參數如下:
operationTimeout:表示查詢逾時時間。格式為
<mysql url>?operationTimeout=<逾時時間>,其中逾時時間單位為毫秒(ms)。例如:ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060?operationTimeout=120000。串連樣本
lindorm-cli -url ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password test --添加mysql://協議頭串連 lindorm-cli -url mysql://ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password test --指定查詢逾時時間 lindorm-cli -url mysql://ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060?operationTimeout=120000 -username user -password test串連成功將返回如下結果:
Connected to ld-bp187uwcx5f40****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com:33060 lindorm-cli version: 2.0.x其中,
2.0.x為Lindorm-cli的版本號碼。
方法二
雙擊開啟Lindorm-cli.exe程式,執行以下語句:
connect <mysql url> <使用者名稱> <密碼>串連樣本
connect ld-bp13y790c91f4****-proxy-lindorm-pub.lindorm.aliyuncs.com:33060 user test串連成功無結果返回。
通過Avatica協議串連寬表引擎
用戶端部署在Linux或Mac系統
跳轉至
Lindorm-cli所在目錄。cd <Lindorm-cli所在目錄>執行以下語句串連寬表引擎。
./lindorm-cli -url <url> -username <使用者名稱> -password <密碼>參數說明
參數
樣本值
擷取方法
jdbc url
jdbc:lindorm:table:url=http://ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060
Lindorm寬表引擎的寬表SQL地址。
使用者名稱
user
串連Lindorm寬表引擎的使用者名稱。
密碼
test
串連Lindorm寬表引擎的密碼。
重要如果忘記密碼,可以通過Lindorm寬表引擎的叢集管理系統修改使用者密碼。
修改密碼後,請通過控制台重啟引擎。
串連樣本
./lindorm-cli -url jdbc:lindorm:table:url=http://ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060 -username user -password test串連成功將返回以下結果:
lindorm-cli version: 2.0.xx其中,
2.0.xx為Lindorm-cli的版本號碼。
用戶端部署在Windows系統
方法一
開啟命令提示字元(CMD),跳轉至
lindorm-cli.exe的所在目錄下。cd <lindorm-cli.exe所在目錄>在CMD上執行以下語句串連寬表引擎。
lindorm-cli -url <jdbc url> -username <使用者名稱> -password <密碼>參數說明
參數
樣本值
擷取方法
jdbc url
jdbc:lindorm:table:url=http://ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060
Lindorm寬表引擎的寬表SQL地址。
使用者名稱
user
串連Lindorm寬表引擎的使用者名稱。
密碼
test
串連Lindorm寬表引擎的密碼。
重要如果忘記密碼,可以通過Lindorm寬表引擎的叢集管理系統修改使用者密碼。
修改密碼後,請通過控制台重啟引擎。
串連樣本
lindorm-cli -url jdbc:lindorm:table:url=http://ld-bp13y790c91f4****-proxy-lindorm-pub.lindorm.aliyuncs.com:30060 -username user -password test串連成功將返回如下結果:
Connected to jdbc:lindorm:table:url=http://ld-bp13y790c91f4****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060 lindorm-cli version: 2.0.xx其中,
2.0.xx為Lindorm-cli的版本號碼。
方法二
雙擊開啟Lindorm-cli.exe程式,執行以下語句:
connect <jdbc url> <使用者名稱> <密碼>串連樣本
connect jdbc:lindorm:table:url=http://ld-bp13y790c91f4****-proxy-lindorm-pub.lindorm.aliyuncs.com:30060 user test串連成功無結果返回。
使用方法
lindorm-cli 同時支援以“互動式”及“非互動式”的模式來執行 SQL 訪問寬表引擎。
互動式模式下執行 SQL 的方法
大多數情況下我們都是以互動式模式啟動 lindorm-cli 並操作寬表引擎。它的執行流程如下:
啟動 lindorm-cli
比如通過上一章節【串連方法】中的任一協議串連到 Lindorm 寬表引擎後,客戶的終端便會進入 lindorm-cli 的互動介面,並等待使用者輸入進一步的命令。
說明在 Windows 下直接雙擊 lindorm-cli.exe 後,Windows 會彈出一個 cmd 終端介面。此時實際上是先啟動了 lindorm-cli 的互動式介面,但尚未建立起與 Lindorm 寬表引擎的串連。此時需要通過 connect 子命令建立串連後才能執行後續的 SQL。詳見上文的用戶端部署在Windows系統中的方法二。
輸入 SQL 陳述式訪問寬表引擎
lindorm-cli 建立好串連進入互動式介面後,使用者便可以輸入 SQL 訪問寬表引擎。以下便是在互動模式下依次執行建庫、建表、寫入、查詢語句操作寬表引擎的效果。
說明寬表引擎支援的 SQL 陳述式可查閱SQL參考。
退出 lindorm-cli
在 lindorm-cli 的互動式介面中執行完所要操作的語句後,通過exit子命令或者ctrl+d快速鍵退出 lindorm-cli。
在互動式模式下啟動 lindorm-cli 並成功串連寬表引擎後,直到退出該模式前,用戶端與寬表引擎始終維持一個串連會話。此期間所有 SQL 操作均在同一會話中執行(但需注意:若會話長時間無操作,系統會自動中斷連線以回收資源)。
非互動式模式下執行 SQL 的方法
在編寫營運指令碼時,若需直接執行Lindorm SQL語句而不進入互動式命令列,可使用lindorm-cli的非互動模式操作寬表引擎。該模式通過命令參數直接運行SQL並返回結果,適用於自動化任務情境,如執行查詢或統計操作。
要在 Shell 終端中通過 lindorm-cli 非互動模式執行 SQL 陳述式,請基於串連方法中的串連參數(如主機地址、連接埠等),追加 -execute 參數後接單引號或雙引號包裹的 SQL 陳述式,即可快速建立短串連並執行命令。例如:
lindorm-cli -url mysql://ld-xxxxxx-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password XXXX -execute "CREATE TABLE tb (id VARCHAR, name VARCHAR, address VARCHAR, PRIMARY KEY(id, name));"
此外,若要匯出寬表查詢結果至CSV檔案,也可通過非互動模式直接執行匯出。
匯出CSV檔案功能需使用 lindorm-cli 2.2.0 或更高版本。查看目前的版本方法:
命令列直接查詢:執行
lindorm-cli -version擷取版本號碼互動模式啟動提示:進入互動介面時,初始歡迎資訊會顯示版本號碼。
lindorm-cli -url mysql://ld-xxxxxx-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password XXXX -format csv -output ~/result.csv -execute "SELECT * FROM tb;"短串連機制:在非互動模式下執行每條 SQL 陳述式時,lindorm-cli 會獨立建立串連並在執行結束後立即關閉。
輸出控制:執行結果預設輸出至終端螢幕(stdout);如需指定重新導向的檔案路徑,請使用
-output參數。
命令列參數與子命令
命令列參數
在終端啟動 lindorm-cli 的同時,支援同時指定以下命令列參數:
參數名 | 是否需跟參數值 | 參數值 | 詳細說明 |
url | 是 | 協議名+ lindorm 寬表引擎的 SQL 串連串(含連接埠) | 用於指定 lindorm-cli 串連寬表引擎時所用的協議以及對應的串連串資訊。 |
username | 是 | 串連所用的使用者名稱 | 指定的使用者名稱必須是在寬表引擎中事先已經建立好的 Lindorm 使用者。 |
password | 是 | 使用者名稱對應的密碼 | - |
database | 是 | 串連的資料庫名 | 預設不指定時串連的是 default 庫。如果指定的話,必須要是寬表引擎中已經事先建立好的 database。 |
execute | 是 | 要執行的 SQL 陳述式 | 指定 execute 參數後,lindorm-cli 將以非互動式模式運行。參數值中指定的 SQL 陳述式需要用雙引號或單引號包裹。 說明 在用雙引號引用 SQL 陳述式時,SQL 中自身的雙引號可通過反斜線 |
output | 是 | 非互動模式下,SQL 執行結果的輸出位置 | 在非互動模式下,output 預設不指定時,SQL 執行結果將被直接輸出到標準輸出。指定了 output 時,SQL 執行結果將會輸出到指定路徑下的指定檔案;若檔案不存在,還會嘗試建立檔案。 |
format | 是 | 以下幾種之一: horizontal, vertical, csv, json, column | 改變寬表引擎服務端返回的 SQL 執行結果的格式,預設不指定時實際是 column。
|
pretty | 否 | - | 需要與 format 為 JSON 時一併使用。 開啟 pretty 開關時,服務端返回的資訊將按 Pretty-printed JSON 的形式輸出;預設不指定時,將按壓縮形態的 JSON 輸出。 |
csvNoHeader | 否 | - | 需要與 format 為 CSV 時一併使用。 開啟 csvNoHeader 開關時,服務端返回的資訊以 CSV 形式輸出,不會帶上結果集的表頭資訊(列名)。 |
nullString | 是 | 用於替代 NULL 的字串 | 需要與 format 為 CSV 時一併使用。 指定 nullString 時,服務端返回的查詢結果中包含的 NULL 值將會被指定的字串替換。 預設不指定nullString 的時候,服務端返回的查詢結果中包含的 NULL 值將預設按以下形式輸出:
|
version | 否 | - | 顯示 lindorm-cli 的版本資訊,此時 lindorm-cli 並不會真正被啟動,也不會進入 lindorm-cli 的互動模式。 |
lindorm-cli 的命令列參數都需要通過虛線 -來指定。
常用子命令
當以互動式模式啟動了 lindorm-cli 工具後,除了指示 lindorm-cli向 Lindorm 寬表引擎發送 SQL之外,還可以在互動式介面中輸入執行一些 lindorm-cli 自身的子命令來控制 lindorm-cli 的行為。常用的子命令如下所示:
子命令 | 命令參數 | 說明 |
connect | <url> <username> <password> | 當 lindorm-cli 只是單純被啟動並進入互動模式時,可以通過 connect 子命令建立起與 Lindorm 寬表引擎的串連。 url, username, password 三個欄位的含義同命令列參數的 |
format | 以下種類之一: horizontal, vertical, csv, json | 含義同參數 |
help | 無 | 查看常用子命令集合。 |
history | 無 | 查看最近執行的SQL 或子命令。 |
exit 或 quit | 無 | 退出 lindorm-cli,斷開與 Lindorm 寬表引擎的串連。 |
常見問題
為什麼會連線逾時或失敗?
連線逾時或失敗時會報錯Failed to connect to <寬表串連地址> connection check failed或connection timeout。
可能存在的原因具體如下,請您依次排查:
原因 | 解決方案 |
使用公網串連,但未將公網IP地址添加至白名單中。 | 將用戶端公網IP地址添加至Lindorm白名單。 查詢用戶端公網IP地址的方式:在Windows命令提示字元(CMD)中輸入 |
已將公網地址添加至白名單,仍舊連線逾時。 | 可能存在網路環境不穩定等因素,建議您更換為專用網路串連。 |
使用ECS訪問,未將ECS的IP地址添加至Lindorm白名單。 | |
未使用正確的串連地址。 | Lindorm串連地址區分專用網路地址和公網地址,請根據網路環境使用正確的串連地址。 |
如果以上方案仍無法解決您的問題,請聯絡Lindorm支援人員(DingTalk號:s0s3eg3)。
相關文檔
關於Lindorm寬表SQL的文法使用說明:SQL參考。
其他串連方式:通過MySQL命令列串連並使用寬表引擎、使用MySQL協議(推薦)。