ablog

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

クエリ の検索結果:

Aurora MySQL互換のフェイルオーバー

AWS

障害挿入クエリ(Fault Injection Queries) INSTANCE はMySQLインスタンスをクラッシュさせる。 DISPATCHER はクラスターボリュームに書込むディスパッチャをクラッシュさせる。 NODEはMySQLインスタンスとディスパッチャの両方をクラッシュさせ、キャッシュが削除される。 Syntax ALTER SYSTEM CRASH [ INSTANCE | DISPATCHER | NODE ]; Options This fault inj…

Hive で Parquet にクエリすると ParquetDecodingException: Can not read value at 0 in block -1 in file

AWS

… Parquet にクエリすると "java.io.IOException: org.apache.parquet.io.ParquetDecodingException: Can not read value at 0 in block -1 in file" と怒られる。 $ hive Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j2.properties Asy…

QuickSight で Athena にクエリしようとすると Access Denied と怒られる

AWS

…Athenaから直接クエリを実行できるが、QuickSightから同じテーブルにクエリすると "Access Denied" と怒られる。 [Simba][AthenaJDBC](100071) An error has been thrown from the AWS Athena client. Access Denied 原因 QuickSight でユーザー作成時にS3へのアクセス許可設定をしていない。 解決策 以下の通り設定する。当然の設定だが、この事象が発生してい…

DNS の TTL はキャッシュサーバとリゾルバキャッシュで使われる

AWS

…NSサーバに対する再クエリーは行われない(キャッシュされる)。ただしこの有効時間は(デフォルトでは)最大で1日(8万6400秒)に制限されており、1日以上経過すれば、元のDNSレコードのTTLにかかわらず、キャッシュから破棄される。否定応答の場合は、最大300秒キャッシュされ、その後キャッシュから破棄される。 Windowsの名前解決のトラブルシューティング(DNSリゾルバーキャッシュ編):Tech TIPS - @IT 「DNS浸透いうな」と言うけれど… (#ssmjp 2…

Presto でParquet にクエリするとjava.lang.UnsupportedOperationException: com.facebook.presto.spi.type.LongDecimalType

…て、Presto でクエリすると、"java.lang.UnsupportedOperationException: com.facebook.presto.spi.type.LongDecimalType" という例外が発生する。 $ hive CREATE EXTERNAL TABLE IF NOT EXISTS sh10.sales( prod_id DECIMAL(38,0), cust_id DECIMAL(38,0), time_id TIMESTAMP, cha…

Hive on EMR で S3 Select を有効化してI/O量を削減する

AWS

…t" = "json" ); Example SELECT TABLE Statement SET s3select.filter=true; SELECT * FROM mys3selecttable WHERE col2 > 10; Using S3 Select with Hive to Improve Performance - Amazon EMR *1:当り前の話ですが、クエリで絞り込みの効くフィルタ条件が指定されて push down されるケースで効果が出ます

CloudFormation で EMR クラスター作成時に Presto の S3 Select Pushdown を有効化する

AWS

…び Presto のクエリ実行時に EMR クラスターに転送してプロセスされる必要のあるデータ量が減るため、パフォーマンスが向上します。これらの機能の詳細については、S3 Select with Hive および S3 Select with Presto のページをご覧ください。 Amazon EMR リリース 5.18.0 にて、Flink 1.6.0、Zeppelin 0.8.0、S3 Select と Hive および Presto の併用をサポート Enabling…

Presto on EMR で "deserializer does not exist: org.openx.data.jsonserde.JsonSerDe" と怒られる

AWS

…N の外部テーブルにクエリを実行すると "deserializer does not exist: org.openx.data.jsonserde.JsonSerDe" と怒られる。 $ hive hive> CREATE EXTERNAL TABLE IF NOT EXISTS sh10.json_sales( (中略) ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION 's3://バケット名…

Parquet ファイルに Presto でクエリ時の Column Projection について調べた

…et on S3 にクエリを発行してスキャンサイズ、実行時間、ブロックI/O量を確認する。 # クエリ 1 select count(*) from amazon_reviews_parquet 2 select count(year) from amazon_reviews_parquet 3 select count(review_body) from amazon_reviews_parquet 4 select * from amazon_reviews_parque…

Aurora PostgreSQL互換でクエリログを取得する

AWS

…QL 9.6 互換でクエリログを取得してみた。 設定 DB Parameter Group をパラメータグループファミリー"aurora-postgresql9.6" で作成する log_statement=1 log_min_duration_statement=0 log_destination=csvlog log_duration=1 log_error_verbosity=verbose DBインスタンスの DB Parameter Group を作成したものに変え…

Aurora MySQL互換でスロークエリログを取得する

AWS

…5.7互換で、スロークエリログを CloudWatch Logs に出力してみた。 設定 DB Parameter Group をパラメータグループファミリー"aurora-mysql5.7" で作成する slow_query_log=1 long_query_time=0 # 全てのクエリーを出力する DBインスタンスの DB Parameter Group を作成したものに変えて再起動する。 スロークエリログを見てみる 5.7.12-log awsuser: [mysql…

Presto で Parquet にクエリするとファイル中の必要な Column chunk のみを読んでいるか

Presto から見ると (parquetの)page単位で IO して、HDFS の API を叩いて、HDFS は DSDataInputStream とかで読んで、OSレイヤーからみると sendfile(2) で xfs などのファイルシステムのファイルを読んでということになってるのではないかと推察。— yohei.az (@yoheia) 2018年10月9日 1)flame graphでhdfsのioシステムコールを発行元コールスタックを特定2)straceでio…

アクティビティ発生後 CloudTrail でログ出力されるまでのタイムラグ

AWS

…は少なそうな感じ。 クエリ select now() AT TIME ZONE 'Asia/Tokyo' as now_tokyo, now() now_utc, eventtime ,eventsource, eventname from default.cloudtrail_logs_cloudtrail_123456789012_do_not_delete order by eventtime desc limit 10 結果 now_tokyo now_utc eve…

Prestoでparquetファイルにクエリをかける

… Presto からクエリを投げてみる コアノードでページキャッシュをクリアする # echo 3 > /proc/sys/vm/drop_caches presto-cli を起動する $ presto-cli データベースとスキーマを指定する。 presto> use hive.parquet; クエリを実行する スキャンサイズが Athenaのとき と一致する。 presto:parquet> select count(*) from amazon_reviews_pa…

PySpark から Parquet ファイル on HFDS にクエリを実行してみる

AWS

準備 EMRクラスターを作成する。 EMR のセキュリティグループで ssh でのアクセスを許可する。 マスターノードに ssh でログインする。 $ ssh -i ~/us-east-1.pem hadoop@ec2-**-***-**-**.compute-1.amazonaws.com HDFS にディレクトリを作成して S3 からデータをコピーする。 $ hadoop fs -mkdir /amazon-reviews-pds-az/ $ s3-dist-cp --s…

Parquet

AWS

… Athena # クエリ 実行時間 I/O量 1 select count(*) from amazon_reviews_parquet 5.6秒 0KB 2 select count(year) from amazon_reviews_parquet 6.63秒 2.58MB 3 select count(review_body) from amazon_reviews_parquet 5.7秒 34.05GB 4 select * from amazon_reviews…

db tech showcase 2018 Day 2

…QLの限界に挑む 〜クエリ処理速度10GB/sを越えて〜 概要 講師: 海外 浩平さん(HeteroDB,Inc - チーフアーキテクト 兼 代表取締役社長) 講師略歴: PostgreSQL開発者コミュニティにおけるMajor Contributorで、セキュリティ機能やFDW、CustomScan等の機能においてコア機能の開発に貢献。数年前からGPUによるクエリ高速化モジュールであるPG-Stromを開発。この技術の実用化を目指し、2017年に HeteroDB 社を設立…

PostgreSQL のクエリーリライトはコストベースではなく一定のルールでリライトされる

…stgreSQL のクエリーリライトはプラン(実行計画)を生成する前に一定のルールで書き換えられる。 http://ikubo.x0.com/PostgreSQL/pdf/IK07_postgres_041214.pdf リライタのエントリポイントは、pg_rewrite_queries() であり、クエリの木のリストをもらってクエリ木のリストを返す。pg_rewrite_queries() の中からリライトモジュールの QueryRewrite() を呼び出し、1つずつクエ…

db tech showcase 2018 Day 1

DB

…っていたチェック用のクエリをプロダクションに乗せている。 RDBの制約などの機能でチェックできるのではないか? データサイズが大きいのでRDBではしんどい。 何に時間が一番がかかるか? データを知るのに時間がかかる。どこに何のデータがあるか。 データディクショナリを作っているか 作っているが、変更が入るので最新には追いつかない。 Pgpool-IIではじめるPostgreSQLのクラスタ運用 概要 講師: 石井 達夫さん(SRA OSS, Inc. 日本支社 - 取締役支社長…

Spark の RDD、DataFrame、DAG と Glue の DynamicFrame などについて

AWS

…resto のようなクエリエンジンでもDAGは採用されており、SQLからDAGのデータ構造が内部で自動生成されています。一方、Spark のようなデータフローのフレームワークでは、プログラミング言語を用いてより直接的にDAGのデータ構造を組み立てます。 (中略) DAGによるプログラミングの特徴が遅延評価(lazy evaluation)です。プログラムの各行は、実際にはDAGのデータ構造を組み立てているだけであり、その場では何の処理も行いません。まずはDAGを構築し、その後…

Athena に JDBC Driver 経由で接続してクエリを発行する

AWS

簡単な Java プログラムを作成して JDBC Driver 経由で Athena に接続してみた。CloudTrail を確認すると、JDBC接続しても JDBC Driver に同梱されている AWS SDK for java から API を実行していることが分かる。 準備 Open JDK をインストールする JDBC Driver をダウンロードする $ wget https://s3.amazonaws.com/athena-downloads/drivers/…

「AWS Cloudtrail Logs を AWS Glue と Amazon Quicksight 使って可視化する」をやってみた

AWS

… AWSGlueServiceRole-Default 一時ディレクトリ: デフォルトのまま Athena でクエリ実行 データベースで cloudtrail を選択する 以下のクエリを実行する select * from cloudtrail.parquettrails where eventtime > '2017-10-23T12:00:00Z' AND eventtime < '2017-10-23T13:00:00Z' order by eventtime asc;

「AWS Glue と Amazon S3 を使用してデータレイクの基礎を構築する」を試してみた

AWS

…a で確認してみる クエリ select eventtime, eventname, requestparameters from cloudtrail_logs_cloudtrail_200000000000_do_not_delete where eventsource = 's3.amazonaws.com' and useragent = '[ElasticMapReduce/1.0.0 emrfs/s3n {}, aws-internal/3]' and awsre…

Amazon Redshift で取得できる監査ログ

AWS

… UTC で表されたクエリの開始時間。 ユーザーアクティビティログ クエリ実行単位のログ 列名 説明 recordtime イベントが発生した時刻。 db データベース名。 ユーザー ユーザー名。 pid ステートメントに関連付けられるプロセス ID。 userid ユーザー ID xid トランザクション ID。 query プレフィックス LOG の後に、改行を含むクエリのテキストが続きます。 100000000000_redshift_ap-northeast-1_ds…

CloudTrail の S3 オブジェクトレベルでロギングできる項目

AWS

…thena で高度なクエリを実行します]をクリックし、分析したい Trail が出力されている S3 バケットを選択して、[テーブルを作成する]をクリックする。 検証結果 実行コマンド $ aws s3 cp s3://az-test-src/test.txt s3://az-test-dst/ Athena でクエリをかける SELECT eventtime, eventsource, eventname, awsregion, sourceipaddress, usera…

sysbench で MySQL にカスタムクエリを同時多重実行して一時ファイルを大量に使ってみる

インストール curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash sudo yum -y install sysbench mysql 準備 初期データロード $ sysbench /usr/share/sysbench/oltp_read_write.lua \ --db-driver=mysql \ --table-size=100…

Amazon Redshift でロックを保持しているセッションとロック待ちしているセッションを確認する方法

AWS

…edshift の「クエリ」タブではロックを保持しているクエリは表示されるがロック待ちしているクエリは表示されない。 準備 テーブルを作成してレコードを insert する。 CREATE TABLE testtab1(id int primary key, name varchar(32)); INSERT INTO testtab1 (id, name) VALUES(1, 'foo'); INSERT INTO testtab1 (id, name) VALUES(2,…

Amazon Redshift に重いクエリを同時多重実行しながら性能情報を見る

AWS

…数を超えると情報取得クエリもキューで待たされるため、負荷かけ実行ユーザーを別に作成してキューを分ける # create group bench; # create user benchuser password '********' in group bench; ベンチマーク用ユーザーのリザルトキャッシュを無効化する # ALTER USER benchuser SET enable_result_cache_for_session = off; # \q ベンチマーク用ユ…

MySQL の InnoDB テーブルの断片化の影響を調べてみた

…limiter ; クエリ実行時間を測定する 1千万件 実行時間は1分15秒程度 mysql> select count(pad) from sbtest1; +------------+ | count(pad) | +------------+ | 10000000 | +------------+ 1 row in set (1 min 15.50 sec) mysql> select count(pad) from sbtest1; +------------+ | …

別アカウントのS3バケットに対して Athena でクエリを実行する

AWS

…MAL(10,2) ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ESCAPED BY '\\' LINES TERMINATED BY '\n' LOCATION 's3://az-swingbench/data/gz/sh10/sales/' ; クエリを実行 select count(*) from sh10_gz_01.sales; 参考 Access Control Policies - Amazon Athena