VPC環境で利用できます。
Data Queryで提供する Go Clientの使用方法について説明します。
準備事項
Go Clientを使用する環境に Go 1.22以上がインストールされている必要があります。
使用方法
Data Query Go Clientの使用方法について説明します。
1. パッケージのインストール
pkg.go.devに公開されている dataquery-go-clientパッケージをインストールします。
go get github.com/NaverCloudPlatform/dataquery-go-client
2. Go Clientの連携例
認証方式
NCP IAM認証方式をサポートします。
DSN文字列にユーザーの AccessKeyと SecretKeyを入力する必要があります。
クエリの提出と結果確認
コードを作成してクエリを提出し、結果を確認します。
例)
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/NaverCloudPlatform/dataquery-go-client/trino"
)
func main() {
accessKey := "_your_access_key_"
secretKey := "_your_secret_key_"
endpoint := "_dataquery_endpoint_"
dsn := fmt.Sprintf("https://%s:%s@%s?catalog=data_catalog&schema=default", accessKey, secretKey, endpoint)
db, err := sql.Open("dataquery", dsn)
if err != nil {
log.Fatalf("Failed to connect to DataQuery: %v", err)
}
defer db.Close()
if err := db.Ping(); err != nil {
log.Fatalf("Ping failed: %v", err)
}
query := "SELECT * FROM public_data.korea_national_railway.subway_seoul_capital_area LIMIT 10"
rows, err := db.Query(query)
if err != nil {
log.Fatalf("Query failed: %v", err)
}
defer rows.Close()
columns, err := rows.Columns()
if err != nil {
log.Fatalf("Failed to get columns: %v", err)
}
for rows.Next() {
values := make([]interface{}, len(columns))
valuePtrs := make([]interface{}, len(columns))
for i := range values {
valuePtrs[i] = &values[i]
}
if err := rows.Scan(valuePtrs...); err != nil {
log.Fatalf("Failed to scan row: %v", err)
}
for i := range columns {
val := values[i]
if b, ok := val.([]byte); ok {
fmt.Print(string(b))
} else {
fmt.Print(val)
}
if i < len(columns)-1 {
fmt.Print(" ")
}
}
fmt.Println()
}
}
// 結果例
KORAIL 京江線 板橋駅(板橋テクノバレー) 127.111135 37.394798
KORAIL 京江線 二梅駅 127.128272 37.395846
KORAIL 京江線 三洞駅 127.203279 37.408654
KORAIL 京江線 京畿廣州駅 127.253201 37.398974
KORAIL 京江線 草月駅 127.299996 37.373389
KORAIL 京江線 昆池岩駅 127.346193 37.350518
KORAIL 京江線 新屯陶藝村駅 127.405251 37.315499
KORAIL 京江線 利川駅 127.442135 37.264222
KORAIL 京江線 夫鉢駅 127.490303 37.260411
KORAIL 京江線 世宗大王陵駅 127.570764 37.293636
使用可能オプション
- DSN文字列の引数値で入力します。
- 例)
https://_accessKey_:_secretKey_@_endpoint_?catalog=data_catalog&schema=default&reuse_query_result=true&reuse_query_max_age=10
| オプション名 | データタイプ | 入力値 | 必須有無 | 備考 |
|---|---|---|---|---|
| accessKey | String | ユーザー accessKey | Y | |
| secretKey | String | ユーザー secretKey | Y | |
| endpoint | String | Data Query Endpoint | Y | リージョン別 Data Query Service Endpointを参照 |
| reuse_query_result | Boolean | true または false |
N | * default : false |
| reuse_query_max_age | Integer | 1 ~ 10,080 |
N | * default : 60* reuse-query-result値が true の場合にのみ使用されます。(単位: 分) |
リージョン別 Data Query Service Endpoint
現在は KRリージョンのみ使用でき、リージョンを拡大する予定です。
| リージョン | Endpoint |
|---|---|
| KR | kr.dataquery.naverncp.com |
参考
dataquery-go-clientは trino-go-clientをベースに提供します。上記で案内されたオプション以外の追加内容は、Trinoドキュメントをご参照ください。