ヤマムギ

growing hard days.

*

Amazon Keyspacesのキースペースを作成してみました

   

Amazon Keyspaces(Apache Cassandra互換のマネージドデータベースサービス)開発者ガイドのチュートリアルをやってみました。

キースペースの作成

マネジメントコンソールのAmazon Keyspacesにアクセスして、[キースペースの作成]ボタンをクリックしました。

キースペースの名前をcatalogにしました。
単一リージョンとして作成しました。
リージョン内の複数AZ(アベイラビリティゾーン)で自動レプリケートされます。
デフォルトで高可用性が実装されていますね。
マルチリージョンにすると最大5つのリージョンへのレプリケーションもできます。

タグをつけて、下にスクロールすると、設定した値込みでCQL(Cassandra クエリ言語)で作成する場合が出力されていました。
キースペースを作成しました。

テーブルの作成

作成したキースペースを選択して[テーブルを作成]をクリックしました。

テーブル名、列名、列タイプを設定しました。

プライマリキーとしてパーティションキーと、ソート可能なクラスタリング列を設定しました。

こちらもCQLが生成されていて、テーブルを作成しました。
マネジメントコンソールで設定してCQLを生成して実行しているイメージですね。

CRUD操作

データを操作するCRUD操作はCQLで実行します。
CloudShellから実行します。

cqlshのインストール

CloudShellにCQlを実行するためのcalshをインストールします。

出力例
Collecting cqlsh-expansion
Downloading cqlsh_expansion-0.9.6-py3-none-any.whl (153 kB)
|████████████████████████████████| 153 kB 1.2 MB/s
Requirement already satisfied: boto3 in /usr/local/lib/python3.9/site-packages (from cqlsh-expansion) (1.35.45)
Collecting cassandra-driver
Downloading cassandra_driver-3.29.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB)
|████████████████████████████████| 4.1 MB 6.1 MB/s
Requirement already satisfied: six>=1.12.0 in /usr/local/lib/python3.9/site-packages (from cqlsh-expansion) (1.16.0)
Collecting cassandra-sigv4>=4.0.2
Downloading cassandra_sigv4-4.0.2-py2.py3-none-any.whl (9.8 kB)
Requirement already satisfied: botocore<1.36.0,>=1.35.45 in /usr/local/lib/python3.9/site-packages (from boto3->cqlsh-expansion) (1.35.45)
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /usr/local/lib/python3.9/site-packages (from boto3->cqlsh-expansion) (1.0.1)
Requirement already satisfied: s3transfer<0.11.0,>=0.10.0 in /usr/local/lib/python3.9/site-packages (from boto3->cqlsh-expansion) (0.10.3)
Collecting geomet<0.3,>=0.1
Downloading geomet-0.2.1.post1-py3-none-any.whl (18 kB)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in /usr/local/lib/python3.9/site-packages (from botocore<1.36.0,>=1.35.45->boto3->cqlsh-expansion) (1.26.20)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /usr/local/lib/python3.9/site-packages (from botocore<1.36.0,>=1.35.45->boto3->cqlsh-expansion) (2.9.0.post0)
Requirement already satisfied: click in /usr/local/lib/python3.9/site-packages (from geomet<0.3,>=0.1->cassandra-driver->cqlsh-expansion) (8.1.7)
Installing collected packages: geomet, cassandra-driver, cassandra-sigv4, cqlsh-expansion
Successfully installed cassandra-driver-3.29.2 cassandra-sigv4-4.0.2 cqlsh-expansion-0.9.6 geomet-0.2.1.post1

バージョン確認しました。
出力
cqlsh 6.1.0

設定完了のスクリプトを実行しました。
出力例
Initializing .cassandra directory with SSL cert and cqlshrc file in user directory
Directory already exists /home/cloudshell-user/.cassandra
Copying cert from /home/cloudshell-user/.local/lib/python3.9/site-packages/cqlsh_expansion/sf-class2-root.crt to /home/cloudshell-user/.cassandra/sf-class2-root.crt
Copying cqlshrc from /home/cloudshell-user/.local/lib/python3.9/site-packages/cqlsh_expansion/cqlshrc_template to /home/cloudshell-user/.cassandra/cqlshrc
Post installation configuration for expansion utility completed

接続しました。

出力例
Connected to Amazon Keyspaces at cassandra.us-east-1.amazonaws.com:9142
[cqlsh 6.1.0 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh current consistency level is ONE.
cqlsh>

整合性の指定

出力例
Consistency level set to LOCAL_QUORUM.

作成

1つのレコード挿入

挿入確認

挿入できました。

サンプルファイルをダウンロード

接続します。

キースペースの指定

cqlsh:catalog> となります。

整合性の指定

CSVからの挿入実行

エラーは出ましたが成功しました。
出力

cqlsh current consistency level is LOCAL_QUORUM.
Reading options from /home/cloudshell-user/.cassandra/cqlshrc:[copy]: {‘numprocesses’: ’16’, ‘maxattempts’: ‘1000’}
Reading options from /home/cloudshell-user/.cassandra/cqlshrc:[copy-from]: {‘ingestrate’: ‘1500’, ‘maxparseerrors’: ‘1000’, ‘maxinserterrors’: ‘-1’, ‘maxbatchsize’: ’10’, ‘minbatchsize’: ‘1’, ‘chunksize’: ’30’}
Reading options from the command line: {‘header’: ‘TRUE’}
Using 16 child processes

Starting copy of catalog.book_awards with columns [award, year, category, rank, author, book_title, publisher].
OSError: handle is closed 0 rows/s; Avg. rate: 0 rows/s
OSError: handle is closed
OSError: [Errno 9] Bad file descriptor
OSError: handle is closed
Processed: 9 rows; Rate: 0 rows/s; Avg. rate: 0 rows/s
9 rows imported from 1 files in 0 day, 0 hour, 0 minute, and 28.110 seconds (0 skipped).

確認できました。

読み取り

特定の列

特定の行

更新

削除

cqlも通常のSQLとほぼ変わりなく実行できました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS ,

ad

ad

  関連記事

T2.microからT3.nanoに変更(メモリエラーも対応)

このブログのEC2インスタンスをT2.micro 1インスタンスからT3.nan …

Amazon Location Service入門ワークショップ-マップの操作

関連記事 Amazon Location Service入門ワークショップの前提 …

EC2 プレイスメントグループを試してみました

やったことないのでやってみたやつです。 プレイスメントグループの作成 まず、EC …

WordPressの年ごとのブログ投稿数を調べるSQL

毎年年末に使いそうなのでメモです。 [crayon-678f4402d47da5 …

「JAWS-UG in AWS Cloud Roadshow 2017 大阪」で運営をしました

AWS Cloud Roadshow 2017 大阪のナイトイベントで、「JAW …

AWS Backupで取得したAMIとスナップショットの削除

個人で使っているAWSリソースの断捨離をしてました。 Cloud9も複数アカウン …

AWS CDK とにかくサンプルでやってみる

Cloud9でAWS CDK環境で作った環境でサンプルプロジェクトからのデプロイ …

ヤマムギ vol.8 (AWS)EC2でLinuxサーバー構築ハンズオン 手順

ヤマムギとは from Mitsuhiro Yamashita 「AWSではじめ …

AWS Storage Gatewayボリュームゲートウェイを作成してWindowsから使用

ボリュームゲートウェイの作成 Storage Gateway作成メニューからボリ …

AWS Toolkit for Eclipseをセットアップする

AWSでそろそろ課金がされつつありますので、夜中はインスタンスを自動停止して朝自 …