Go

【AWS】Go言語でQLDBからデータを読み出す処理の動作確認

どうも、AWS勉強中のとがみんです。

QLDBを利用する機会があるので、この記事では、Go言語で、QLDBの読み書き動作の確認を行い、その動作確認し、整理してみました。

今回作成するもの

今回作成するものはQLDBに対して、データの読み出しと表示、データの追加を行う処理をGo言語で書いていきます。

ローカル端末でGo言語で書いたコードを実行し、QLDBにあらかじめ用意しておいたデータの読み取りができるのかの確認を行なっていきます。

作業手順概要

  1. QLDBの作成
  2. QLDB読み出しコードの作成
  3. プログラム実行結果の確認

作業手順の詳細

QLDBの作成

QLDBの作成に関しては、下記の記事と同じように、テーブル、レコードを作成しました。

QLDB_TEST_TABLEというテーブルを作成し、下記のようなデータを挿入しています。

QLDB読み出しコードの作成

ディレクトリとファイルの作成

qldb-testというディレクトリを作成し、main.goというファイルを作成します。

また、下記コマンドを実行し、go.modファイルを作成します。

$ go mod init qldb
.
├── go.mod
└── main.go

QLDBドライバーのインスタンス化

上記のようにコードを記載し、指定したQLDBの台帳名に接続するドライバーのインスタンスを作成します。

~/.aws/credentialsにある接続情報を参照し、AWSサービスと接続するためのセッションを作成し、QLDBを活用するためのqldbSessionを作成します。

その後、QLDBに対してPartQLステートメントを実行するためのドライバーをインスタンス化します。

ドライバー:アプリケーションによるAPI呼び出しを、データベースが処理可能なコマンドへと変換する。

必要パッケージのインストール

上記のようにコードを追加すると、必要なモジュールがないというエラーが出るため、下記コマンドを実行し、必要なモジュールを追加します。

$ go get github.com/aws/aws-sdk-go/aws
$ 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に挿入しておいたデータが取得されたことを確認できました。

$ go run main.go
QLDBへのアクセステスト
map[AMOUNT:1000 ID:1 NAME:togamin]

まとめ

Go言語でQLDBへアクセスしデータを読み出す処理についてまとめました。
作成したサンプルコードは下記に記載しています。