表格存储面向Go语言database/sql
包的驱动。
通过go get
命令安装:
go get github.com/aliyun/aliyun-tablestore-go-sql-driver
表格存储的Go语言驱动是database/sql/driver
接口的实现,导入包之后即可使用database/sql
访问表格存储.
使用 ots
作为驱动名称,使用有效的DSN作为dataSourceName
:
import (
"database/sql"
"fmt"
_ "github.com/aliyun/aliyun-tablestore-go-sql-driver"
)
// ...
db, err := sql.Open("ots", "https://access_key_id:access_key_secret@endpoint/instance_name")
if err != nil {
panic(err)
}
rows, err := db.Query("SELECT trip_id, duration, bike_number, is_member FROM trips WHERE trip_id = ?", 1688)
if err != nil {
panic(err)
}
for rows.Next() {
var (
tripId int64
duration float64
bikeNumber string
isMember bool
)
err = rows.Scan(&tripId, &duration, &bikeNumber, &isMember)
if err != nil {
panic(err)
}
fmt.Printf("trip_id: %v, duration: %v, bike_number = %v, is_member = %v\n", tripId, duration, bikeNumber, isMember)
}
表格存储的DSN(数据源名称)格式定义如下,其中方括号之内为可选部分:
schema://access_key_id:access_key_secret@endpoint/instance_name[?param1=value1&...¶mN=valueN]
schema
为访问表格存储服务的协议,通常为https
access_key_id
为表格存储服务的AccessKey IDaccess_key_secret
为表格存储服务的AccessKey Secretendpoint
为表格存储服务的域名地址instance_name
为表格存储服务的实例名称
另外,DSN中支持传入以下配置项:
retryTimes
为重试次数connectionTimeout
为连接超时时间requestTimeout
为请求超时时间maxRetryTime
为最大触发重试时间maxIdleConnections
为最大空闲连接数
- 我们非常欢迎大家为TableStore Go SQL Driver以及其他阿里云SDK贡献代码