ablog

不器用で落着きのない技術者のメモ

Amazon Keyspaces 関連のリソース(スライド、ドキュメント、論文など)

Apache Cassandra Cassandra ユーザー向け Bigtable | Google Cloud NoSQLデータベースCassandraの紹介 〜 ヤフーのデータ基盤を支える技術 - Yahoo! JAPAN Tech Blog SSTable Attached Secondary Index(SASI)を使用したインデックス作成 SASI, Cassandra …

Amazon DynamoDB 関連のリソース(スライド、ドキュメント、論文など)

AWS

NoSQL 開発者のためのNoSQL Database の選び方 入門(2021, Momoko Asai) Amazon DynamoDB スライド Amazon DynamoDB Advanced Design Pattern(2018 Dev Day Daichi Egawa) Amazon DynamoDB deep dive: Advanced design patterns(2020, oranie) Amazon Dynamo…

MacBook Pro で Logicool MX ERGO(MXTB1s) のトラックボールが突然反応しなくなった

症状 突然、Logicool MX ERGO(MXTB1s) のトラックボールが突然反応しなくなった。クリックなど他の操作はできる。 解決策 底面にある穴から、指やボールペンの柄などでボールを押すとボールを外してホコリを掃除したら直った。 参考: トラックボールとカーソ…

VPC 内 Glue から別 VPC の Redshift などに接続できるか

AWS

VPC内Glueジョブ(Spark、Python shell)から別VPCの Redshift や RDS などに接続できるか。同一 VPC の別 Subnet は当然接続できる。 別 VPC の場合、VPC ピアリングや Transit Gateway で接続すれば接続できる。 参考 AWS Glue 接続とデータベースで異なる…

macOS に AWS CLI v2 をインストールする

macOS に AWS CLI v2 をインストールした手順。 インストール % curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" % sudo installer -pkg ./AWSCLIV2.pkg -target / 確認 % which aws /usr/local/bin/aws % aws --version aws-cli/2.13.…

macOS Ventura 13.5.2 に Python をインストールしようとすると ModuleNotFoundError: No module named '_lzma' と怒られる

事象 macOS Ventura 13.5.2 に Python をインストールしようとすると ModuleNotFoundError: No module named '_lzma' と怒られる。 % pyenv install 3.11.6 python-build: use readline from homebrew Downloading Python-3.11.6.tar.xz... -> https://www.p…

pandas で df[df[列番号]=='文字列'] と df[df[列番号].isin(['文字列'])] のどちらが速いか(文字列編)

pandas で df[df[列番号]==数値] と df[df[列番号].isin([数値])] のどちらが速いか(数値編) - ablog の文字列版。 サマリー 14MBの CSV ファイルを読んで 1,000 回 df[df[列番号]=='文字列'] または df[df[列番号].isin(['文字列'])] の実行時間を計測す…

pandas で df[df[列番号]==数値] と df[df[列番号].isin([数値])] のどちらが速いか(数値編)

サマリー 14MBの CSV ファイルを読んで 1,000 回 df[df[列番号]==数値] または df[df[列番号].isin([数値])] の実行時間を計測すると、isin のほうが 0.875s(=3.131s-2.256s)遅い結果になった。cProfile でプロファイリングすると df[df[列番号]==数値] の…

PC DJ メモ

ソフトウェア rekordbox(無償) 会員登録して https://rekordbox.com/ja/download/ からダウンロード 楽曲 TIDAL は日本からは登録できない。Beatport は1ヶ月無料でトライアルできる。 ストリーミングDJサービスで邦楽曲を使えるTIDALやBeatsource,beatpor…

Datastax Java Driver for Apache Cassandra でAmazon KeySpaces へのコネクションプールの数を設定する

AWS

Amazon KeySpaces は 1 コネクションあたりの CQL のスループットが 3,000 である。デフォルトでパブリックエンドポイントの場合 9 コネクションなので CQL のスループットは 27,000(=3,000 * 9)、VPC エンドポイントの場合はその VPC のサブネット(AZ)…

S3 と Glue Job の閉域網構成

AWS

S3 Block Public Access*1 をアカウントレベルで設定すれば、アカウントレベルで S3 バケットで Public 公開できなくなるが、さらに S3 バケットポリシー*2 + S3 Access Point(+ S3 Access Point ポリシー)で 特定の IP アドレスや VPC からのみアクセス許…

S3 to S3 でストリーミング圧縮コピーする(boto3版)

AWS

AWS CLI で S3 to S3 で圧縮してストリーミングコピーしたい場合は aws s3 cp s3://... - | gzip | aws s3 cp - s3://...(S3 からローカルにファイルをまるまるダウンロードせずに圧縮して S3 にアップロードする - ablog) のようにパイプで繋げばよいが、…

S3 to S3 でストリーミング圧縮コピーする(AWS CLI版)

AWS

S3 にあるファイルを EC2 などにファイルをまるまるダウンロードせずに圧縮して S3 にアップロードしたい場合、パイプで繋いでやればよい。 例 EC2 のローカルのファイルを圧縮しながら S3 にアプロードする(圧縮したファイルを EC2 にローカルに保存せずに…

MacBook Pro M1 セットアップメモ

14-inch MacBook Pro M1 2021 のセットアップメモ。 チップ: Apple M1 Pro メモリ: 32GB ストレージ: 500GB macOS: Ventura 13.5.2 セットアップ Touch ID の設定 MacでTouch IDを使用する - Apple サポート (日本) マウスとキーボードの設定 [システム設定]…

Amazon KeySpaces で VPC エンドポイントを使用した場合の system.peers のエントリの違い

AWS

結論 VPC エンドポイントを使用すると、system.peers は AZ の数に依存する。 パブリックエンドポイントの場合の 9 から VPCエンドポイントを使用すると 2-5 に減るが、CQL のスループット(QPS)限界が小さくなるわけではない。ただし、VPC エンドポイント…

Linux で設定可能な仮想IPアドレスの最大数

Linux 2.2 Linux 2.2 Issue How many network interfaces aliases does Red Hat Enterprise Linux support? What is the maximum number of interface aliases I can use on Red Hat Enterprise Linux? Resolution There is no practical limit. Root Cause …

cqlsh から Amazon KeySpaces に接続しようとすると "Can't authenticate without a region name" と怒られる

AWS

事象 cqlsh から Amazon KeySpaces に接続しようとすると "Can't authenticate without a region name" と怒られる Connection error: ('Unable to connect to any servers', {'172.31.4.223:9142': ValueError("Can't authenticate without a region name")…

YCSB を Amazon KeySpaces にベンチマークをかけれるようカスタマイズしたメモ

YCSB(Yahoo! Cloud Serving Benchmark)を Amazon KeySpaces にベンチマークをかけれるようカスタマイズしたメモ。 GitHub - yoheia/YCSB: Yahoo! Cloud Serving Benchmark 前提 前提条件および環境セットアップ手順 Amazon Linux 2023 on EC2 Amazon Linux…

リモートリポジトリからブランチを指定して git clone する

git

$ git clone -b 3.x-Driver-Compatible https://github.com/aws/aws-sigv4-auth-cassandra-java-driver-plugin.git 参考 リモートから特定のブランチを指定してcloneする方法 git clone -b ブランチ名 https://リポジトリのアドレス リモートから特定のブラ…

Amazon KeySpaces に SigV4 認証でアクセスするサンプル Java アプリを実行する(DataStax Java Driver 3.x 版)

Amazon KeySpaces に SigV4 認証でアクセスするサンプル Java アプリを実行した手順(DataStax Java Driver 3.x 版)。 Cassandra Java クライアントドライバーを使用した Amazon Keyspaces へのプログラムアクセス - Amazon Keyspaces (Apache Cassandra 向…

YCSB から Amazon KeySpaces に SigV4 認証でアクセスする

AWS

YCSB/cassandra/pom.xml を以下の通り編集 <cassandra.cql.version>3.7.2</cassandra.cql.version> YCSB/cassandra/pom.xml に以下を追記 <dependency> <groupId>software.aws.mcs</groupId> <artifactId>aws-sigv4-auth-cassandra-java-driver-plugin_3</artifactId> <version>3.0.3</version> </dependency> YCSB/cassandra/src/main/ja…

Amazon KeySpaces に SigV4 認証でアクセスするサンプル Java アプリを実行する(DataStax Java Driver 4.x 版)

AWS

Amazon KeySpaces に SigV4 認証でアクセスするサンプル Java アプリを実行した手順。 Amazon Keyspaces のアイデンティティベースポリシーの例 - Amazon Keyspaces (Apache Cassandra 向け) GitHub - aws-samples/aws-sigv4-auth-cassandra-java-driver-exa…

Maven プロジェクトにローカルの jar ファイルを追加する方法

Maven プロジェクトにローカルの jar ファイルを追加する方法。 YCSB にローカルの DataSatax Java Driver for Cassandra を追加した例。 jar をダウンロードする $ pwd /home/ec2-user/YCSB $ mkdir lib $ curl -L -O https://repo1.maven.org/maven2/com/d…

grep で特定のディレクトリを対象外にしたい場合

log ディレクトリ以外を対象として grep する例。 $ grep -Ri --exclude-dir log cassandra * 参考 grepコマンドで特定のディレクトリを検索対象から除外する | 晴耕雨読

YCSB から Amazon KeySpaces に接続エラーになるのでトラブルシューティング

AWS

cqlsh、Java アプリからは接続して CQL の発行に成功するので、strace を取って比較してみた。 事象 YCSB で Amazon KeySpaces にデータをロードしようとすると "NoHostAvailableException: All host(s) tried for query failed" と怒られる。 $ ./bin/ycsb …

YCSB でインストールするモジュールをカスタマイズする

インストールするモジュール(対応DB)を絞る YCSB で以下のファイルで必要ないモジュールをコメントアウトする。 YCSB/pom.xml セクション セクション YCSB/distribution/pom.xml セクション YCSB/bin/bindings.properties XML は propertie ファイルは # …

Amazon Linux 2023 に Python 2.7 をインストールする

AWS

以下の手順で、pyenv と pip をインストールして、 Amazon Linux 2023 に pyenv をインストールする - ablog Amazon Linux 2023 に pip をインストールする - ablogPython 2.7.18 をインストールしようとすると、"patch: command not found" とエラーが発生…

VPC内 Glue Job が使用するIPアドレス数

AWS

VPC内に Spark Job と Python Shell のジョブを作成した際に使用する IP アドレス数を確認した。1ジョブの1回の実行当たり、Spark Job は Worker 数、Python Shell は 1 つのIPアドレスを消費する。 ジョブの種類 使用するIPアドレス数 Worker数/DPU Spark J…

Amazon Linux 2023 に JDK 8 をインストールする

AWS

インストールする $ sudo yum install java-1.8.0-amazon-corretto-devel 使用する JDK を切り替える $ sudo alternatives --config java There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- *…

Amazon Linux 2023 に YCSB をインストールして実行する

AWS

インストール Maven Amazon Linux 2023 に Maven をインストールする - ablog YCSB $ git clone https://github.com/brianfrankcooper/YCSB.git $ cd YCSB/ $ mvn clean package Python 2.7 Amazon Linux 2023 に Python 2.7 をインストールする - ablog テ…