どうも、AWS勉強中のとがみんです。
QLDBを利用する機会があるので、この記事では、Go言語で、QLDBの読み書き動作の確認を行い、その動作確認し、整理してみました。
今回作成するもの
今回作成するものはQLDBに対して、データの読み出しと表示、データの追加を行う処理をGo言語で書いていきます。
ローカル端末でGo言語で書いたコードを実行し、QLDBにあらかじめ用意しておいたデータの読み取りができるのかの確認を行なっていきます。
作業手順概要
- QLDBの作成
- QLDB読み出しコードの作成
- プログラム実行結果の確認
作業手順の詳細
QLDBの作成
QLDBの作成に関しては、下記の記事と同じように、テーブル、レコードを作成しました。
QLDB_TEST_TABLEというテーブルを作成し、下記のようなデータを挿入しています。
QLDB読み出しコードの作成
ディレクトリとファイルの作成
qldb-testというディレクトリを作成し、main.goというファイルを作成します。
また、下記コマンドを実行し、go.modファイルを作成します。
├── go.mod
└── main.go
QLDBドライバーのインスタンス化
上記のようにコードを記載し、指定したQLDBの台帳名に接続するドライバーのインスタンスを作成します。
~/.aws/credentialsにある接続情報を参照し、AWSサービスと接続するためのセッションを作成し、QLDBを活用するためのqldbSessionを作成します。
その後、QLDBに対してPartQLステートメントを実行するためのドライバーをインスタンス化します。
ドライバー:アプリケーションによるAPI呼び出しを、データベースが処理可能なコマンドへと変換する。
AWS SDK の裏側を見てみよう !~AWS SDK for Go (v1) のコードとともに (前編)
aws-sdk-go/aws/session/session.go session.Must()
aws-sdk-go/aws/session/session.go session.NewSession()
aws-sdk-go/aws/config.go/ awsNewConfig()
awslabs/amazon-qldb-driver-go/qldbdriver/qldbdriver.go QLDBDriver
必要パッケージのインストール
上記のようにコードを追加すると、必要なモジュールがないというエラーが出るため、下記コマンドを実行し、必要なモジュールを追加します。
$ go get github.com/aws/aws-sdk-go/aws/session
$ go get github.com/aws/aws-sdk-go/service/qldbsession
$ go get github.com/awslabs/amazon-qldb-driver-go/qldbdriver
QLDBからデータを読み出しの処理
driver.Execute(context.Background(), func(txn qldbdriver.Transaction) (interface{}, error) {}で新しいQLDBトランザクションを提供し、その中で呼び出された関数を実行します。
result, err := txn.Execute(“SELECT * FROM QLDB_TEST_TABLE WHERE ID = ?”, “1”)にて、この記事で最初に投入したレコードを取得するクエリを実行します。
プログラムの実行
go run main.goのコマンドを実行すると、QLDBに挿入しておいたデータが取得されたことを確認できました。
QLDBへのアクセステスト
map[AMOUNT:1000 ID:1 NAME:togamin]
まとめ
Go言語でQLDBへアクセスしデータを読み出す処理についてまとめました。
作成したサンプルコードは下記に記載しています。