-- 1. EX2(Amazon Linux2)へのcqlsh のインストール
python --version
wget https://dlcdn.apache.org/cassandra/3.11.11/apache-cassandra-3.11.11-bin.tar.gz
tar xvzf apache-cassandra-3.11.11-bin.tar.gz
cd apache-cassandra-3.11.11
./bin/cqlsh --version
curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
mkdir /home/ec2-user/.cassandra
vim /home/ec2-user/.cassandra/cqlshrc
-------------------------------------------------
[connection]
port = 9142
factory = cqlshlib.ssl.ssl_transport_factory
[ssl]
validate = true
certfile = /home/ec2-user/apache-cassandra-3.11.11/sf-class2-root.crt
version = TLSv1_2
[copy]
NUMPROCESSES=16
MAXATTEMPTS=25
[copy-from]
CHUNKSIZE=50
INGESTRATE=1500
MAXINSERTERRORS=-1
MAXPARSEERRORS=-1
MINBATCHSIZE=1
MAXBATCHSIZE=10
[csv]
field_size_limit=999999
-------------------------------------------------
-- 2. サービス固有の認証情報を生成する
aws iam create-service-specific-credential \
--user-name iamuser \
--service-name cassandra.amazonaws.com
-- 3. DB接続
cd /home/ec2-user/apache-cassandra-3.11.11
./bin/cqlsh cassandra.ap-northeast-1.amazonaws.com 9142 -u "iamuser-at-999999999999" -p "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" --ssl
-- 4. Keyspace の作成
CREATE KEYSPACE IF NOT EXISTS "ks01"
WITH REPLICATION = {'class': 'SingleRegionStrategy'};
SELECT * from system_schema.keyspaces ;
-- 5. テーブルの作成
USE "ks01" ;
CREATE TABLE IF NOT EXISTS "ks01".tab1 (
col1 text,
col2 text,
col3 int,
col4 text,
PRIMARY KEY (col1,col2))
WITH CLUSTERING ORDER BY (col2 ASC) ;
SELECT * from system_schema.tables WHERE keyspace_name='ks01' ;
SELECT * FROM system_schema.columns WHERE keyspace_name = 'ks01' AND table_name = 'tab1' ;
-- 6. データの作成、読み込み、更新、削除
USE "ks01" ;
CONSISTENCY LOCAL_QUORUM;
INSERT INTO "ks01".tab1 (col1, col2, col3, col4)
VALUES ('000-00','Engineering',10,'200-00') ;
SELECT * FROM "ks01".tab1 ;
col1,col2,col3,col4
100-00,Engineering,11,200-00
200-00,Engineering,12,700-00
300-00,Engineering,13,200-00
400-00,Engineering,14,200-00
500-00,Marketing,15,600-00
600-00,Marketing,16,700-00
700-00,Executive,17,None
※最後の行に改行があるとエラーとなる
COPY tab1 (col1,col2,col3,col4)
FROM '/home/ec2-user/tab1.csv' WITH delimiter=',' AND header=TRUE ;
SELECT * FROM tab1 ;
SELECT * FROM "ks01".tab1 ;
SELECT col1, col2, col4 FROM "ks01".tab1 ;
SELECT * FROM "ks01".tab1 WHERE col1='200-00' ;
SELECT * FROM "ks01".tab1 WHERE col1='500-00' ;
UPDATE "ks01".tab1 SET col3=5 WHERE col1='500-00' AND col2='Marketing' ;
SELECT * FROM "ks01".tab1 WHERE col1='500-00' ;
SELECT * FROM "ks01".tab1 WHERE col1='700-00' AND col2='Executive';
DELETE col4 FROM "ks01".tab1 WHERE col1='700-00' AND col2='Executive';
SELECT * FROM "ks01".tab1 WHERE col1='700-00' AND col2='Executive';
SELECT * FROM "ks01".tab1 WHERE col1='400-00' AND col2='Engineering';
DELETE FROM "ks01".tab1 WHERE col1='400-00' AND col2='Engineering';
SELECT * FROM "ks01".tab1 WHERE col1='400-00' AND col2='Engineering';
-- 7. テーブルの削除
DROP TABLE IF EXISTS "ks01".tab1 ;
SELECT * FROM system_schema.tables WHERE keyspace_name = 'ks01' ;
-- 8. Keyspaceの削除
DROP KEYSPACE IF EXISTS "ks01" ;
SELECT * from system_schema.keyspaces ;
-- 9. クリーンアップ
-- サービス固有の認証情報一覧
aws iam list-service-specific-credentials
-- サービス固有の認証情報の削除
aws iam delete-service-specific-credential \
--service-specific-credential-id XXXXXXXXXXXXXXXXXXXXX