問題タブ [amazon-redshift]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - PostgreSql クエリを最適化して、見つかったレコードの総数を取得し、複数のグループ化に基づいてページネーションに必要な限られた数の行を取得する
指定されたフィルターに基づいてレコードの総数を取得しようとしているこのクエリがあり、単一のクエリでページネーションに必要な限られた数のデータを取得しようとしています。以前は、複数のグループ化フィールドに対してPostgreSqlの行数を最適化することに基づいて最初にレコード数を計算し 、次にページサイズに基づいて別のクエリで必要な行数を取得する2段階のプロセスでこれを行っていました。必要なオフセット
バージョン詳細
ありがとう
amazon-web-services - 大規模なデータを vertica から redshift に移行する最良の方法は何ですか?
AWS で vertica をホストしており、データベースの合計サイズは 500 GB です。では、データを vertica から redshift に移行する最速の方法は何ですか?
1 つのアプローチは、
1. vertica データを S3 にエクスポートします。2
. S3 からデータを redshift にロードします。
より良いアプローチはありますか?
amazon-redshift - RedShift Postgresql はバインド変数をサポートしていますか?
DBI と Perl のモジュールを介して AWS RedShift にアクセスDBD::Pg
していますが、SQL バインド変数に問題があります。最初にSQLステートメント(?
変数の代わりに)で準備を呼び出し、次にマップする必要がある変数配列で実行を呼び出します?
が、機能しません。それは単に「構文エラー」を吐き出します。
私の理解では、このバインド変数はドライバーとデータベース自体でサポートされる必要があるため、それがドライバーの問題なのか RedShift の問題なのかはわかりませんが、私の理解 (バインド変数のサポートはドライバーに依存する) かどうかはわかりませんおよび基礎となるデータベース) は正しいです。誰かが明確にできれば、それは素晴らしいことです。
mysql - MySql から Amazon RedShift へのデータの同期
Amazon RedShift で巨大なデータセットの集計を行い、MySQL には比較的少量のデータがあります。RedShift の一部の結合では、MySQL のデータが必要です。MySql データを RedShift に同期する最良の方法は何ですか? オラクルのリモートビューのようなものは赤方偏移にありますか? または、プログラムで MySql にクエリを実行し、RedShift で挿入/更新する必要がありますか?
amazon-web-services - amazon redshift での同時クエリ パフォーマンス
Amazon Redshift では、同時クエリは相互のパフォーマンスに影響しますか?
たとえば、2 つのクエリがあるとします。1 つは比較的小さなテーブル (~5m 行) ですべての行を取得し、もう 1 つは大きなテーブル (~500m) の行を取得します。どちらのテーブルにも同じフィールドがあり、どちらも圧縮されていません。どちらのクエリも、それぞれのテーブルのすべてのデータを取得して結果を計算します。結合やフィルターはありません。どちらのクエリも、計算のために約 2 ~ 4 個のフィールドを取得します。
単独で実行すると、小さなクエリは約 700 ミリ秒で返されます。ただし、大きなクエリが実行されている間 (それ自体で数分かかります)、小さなクエリは 4 ~ 6 秒で返されます。
これは、単一の XL ノードを持つクラスターで観察された動作です。
これは予想される動作ですか?大きなクエリが実行されている場合でも、小さなクエリのパフォーマンスの一貫性を約束する構成設定はありますか?
amazon-web-services - Amazon Redshift Equality フィルターのパフォーマンスとソートキー
Redshift は、条件 A= を持つクエリの列 A で並べ替えられたテーブルのブロックを効率的に (つまり、バイナリ検索で) 見つけますか?
例として、フィールド A に分散およびソートされた、最大 5 億行、最大 50 フィールドのテーブル T があるとします。 T: 値ごとに最大 100 行。
単一の XL ノードを持つ redshift クラスターを想定します。
フィールド A は圧縮されません。ANALYZE COMPRESSION で提案されているように、他のすべてのフィールドには何らかのフォーム圧縮があります。圧縮されていないテーブルと比較して、1:20 の比率が指定されました。
簡単なクエリが与えられた場合:
VACUUM と ANALYZE の後、次の説明プランが提供されます。
このクエリが完了するまでに 39 秒かかります。
主な質問は次のとおりです。これは赤方偏移の予想される動作ですか?
最適なソートキーの選択のドキュメントによると、
「1 つの列で頻繁に範囲フィルタリングまたは等価フィルタリングを行う場合は、その列をソートキーとして指定します。Redshiftは、最小値を追跡するため、その列のデータブロック全体の読み取りをスキップできます。各ブロックに格納されている列の最大値と、述語範囲に適用されないブロックをスキップできます。」
ソートキーの選択: 「ソートされたデータに依存するもう 1 つの最適化は
、範囲制限された述語の効率的な処理です。Amazon Redshift は、列データを 1 MB のディスク ブロックに格納します。各ブロックの最小値と最大値は、メタデータの一部として格納されます。 If range-restricted column is a sort key, the query processor is able to use the min and max values to immediately skip over large numbers of blocks during table scans. たとえば、テーブルに日付で並べ替えられた 5 年間のデータが格納されている場合、クエリで 1 か月の日付範囲を指定すると、最大 98% のディスク ブロックをスキャンから除外できます. データが並べ替えられていない場合は、より多くのディスク ブロック (おそらくすべて) をスキャンする必要があります.これらの最適化に関する情報については、配布キーの選択を参照してください。 "
二次的な質問:
ソート キーでの前述のスキッピング スキャンの複雑さは何ですか? それは線形 ( O(n) ) ですか、それとも二分探索 ( O(logn) ) の変形ですか?
キーがソートされている場合 - 利用可能な唯一の最適化をスキップしていますか?
説明計画では、この「スキップ」最適化はどのように見えるでしょうか?
上記の説明は、このクエリで可能な最良の説明ですか?
このシナリオを考えると、赤方偏移が提供することが期待できる最速の結果は何ですか?
このユース ケースでは、バニラの ParAccel は異なる動作をしますか?
java - JDBC 経由で AWS Redshift から挿入された ID 値を取得する
AWS Redshift を使用しているときに、JDBC ドライバーを介して ID 列を持つテーブルから最後に挿入された ID を取得することは、次のいずれの方法でも実行できないことに注意しました。
また
スタック オーバーフロー エントリで述べたように:
Redshift (2013 年 10 月 17 日現在) は PostgreSQL バージョン 8.0.2 で構築されているため、上記の方法は使用できません。次のリンクにある次のドキュメントを参照してください。
http://docs.aws.amazon.com/redshift/latest/dg/c_high_level_system_architecture.html
Redshift を RDBMS として使用する場合は、以下も読む価値があります。
http://docs.aws.amazon.com/redshift/latest/dg/c_redshift-and-postgres-sql.html
質問:
PostgreSQL JDBC ドライバーを介して Redshift の自動インクリメント/シリアル/ID 列に最後に挿入された ID を取得するための最良の戦略は何ですか?
amazon-web-services - RedShift / ParAccel でディスク上のテーブルスペースを測定する方法
RedShift にテーブルがあります。使用しているディスク容量を確認するにはどうすればよいですか?