問題タブ [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.
apache - amazon redshift での apache ログのロード
COPY コマンド ( http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html )を使用して、Apache スタイルのログを Amazon Redshift クラスターにロードしようとしていますが、いくつかの問題があります。日付の解析。私の日付は次のようになります。
[10/Oct/2000:13:55:36 -0700]
Redshift [時刻形式ドキュメントhttp://docs.aws.amazon.com/redshift/latest/dg/r_DATEFORMAT_and_TIMEFORMAT_strings.html には、「日付と時刻のセクションの間にスペース文字を指定する必要があります」と書かれています。実際にはそれらの間にコロンがあるので、それを時間形式で使用するとどうなるかを確認しました。結果は名目上の成功ですが、分と秒はゼロに設定されています。
(タイムゾーンは別問題ですが、現状対応するつもりはないようですので別途対応します)
だから、私の質問:
COPY を使用してこれを解析する方法はありますか?
それ以外の場合は、EC2 でログ ファイルを前処理するか、日付を文字列として読み込んで、redshift の適切なタイムスタンプ列に解析する必要があると思います。どちらが好ましいかについて何かアドバイスはありますか?
amazon-redshift - amazon redshift での SQL Server の isNumeric() 相当
- データ ウェアハウスとして amazon redshift を使用しています
- 文字列型のフィールド (field1) があります。4 つの数字で始まる文字列もあれば、文字で始まる文字列もあります。
「テスト アルファ」
「1382 テスト ベータ」
- 文字列が 4 つの数字で始まらない行を除外したい
- redshift のドキュメントを見ると、 isnumber または isnumeric が関数であるとは思えません。「いいね」機能が一番可能性が高いようです。
私は試した
where left(field1, 4) like '[0-9][0-9][0-9][0-9]'
これは機能しませんでした。以下のリンクから、redshift がそれをサポートしていないようです:
https://forums.aws.amazon.com/message.jspa?messageID=439850
「where」句に誤りがありますか? そうでなく、その句がredshiftでサポートされていない場合、フィルタリングする方法はありますか? キャストを使おうと思っていた
エラーが発生した場合は行を渡しますが、Amazon redshift でこれを行う方法がわかりません。または、isnumeric フィルター用の他のプロキシがあります。
ありがとう
postgresql - postgresql データベースから値を選択し、完全なクエリが必要であることに基づいて挿入/更新します
これをクエリ レベルで設計する必要があります。これは、テーブル内のバージョン、削除、フラグ列に対して実行できます。
src_emp----> ソーステーブル
ターゲット テーブルへの最初のロード trg_emp 出力は以下のようになります
これを行った後、empno=3 の給与を sal=4000 に変更します。次に、ターゲット テーブルを更新すると、次のようになります。
上記では、empno=3 のバージョンが 2 に増加し、最後の行のフラグが "Y" に変更され、前の行が empno=3 の "N" に変更されていることがわかります。バージョンとフラグが機能すると、3 番目のレコードが削除されます。ソースで削除された場合、そのフラグは「Y」になる必要がありますソーステーブルでempno = 2を削除すると、最終的なターゲットテーブルは次の形式のようになるはずです
ターゲット テーブルの 2 行目のフラグは、削除されたフラグの値を "Y" として更新する必要があります。
postgresql - redshift postgresqlでは、コピー機能で列をスキップできますか
- 列を持つ .csv テーブル (t1) があります: Amazon S3 ストレージに c1、c2、c3
- それをAmazon redshiftにコピーしたい
- すべての列がnull可能であるc1、c2、c3の列を持つテーブルを作成します
コマンドでコピーします:
t1 から t1a (c1,c3) をコピー
t1 から c1 と c3 をコピーし、デフォルトの null 値を c2 に配置して、t1a の行が (c1_rowX, null, c3_rowX) のようになると予想しました。
代わりに、t1 の c2 (文字列型) データを t1a の c3 (int 型) にコピーしているため、型エラーが発生します。
列を指定しないと、コピー コマンドは正常に機能します。
t1からt1aをコピー
redshift copy コマンド ドキュメントへのリンクを含めました。
http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html
- 主な質問は、列の指定の使用に問題があるということです。ありがとう
amazon-web-services - Amazon Redshift で列のデータ型を変更する
Amazon Redshift データベースで列のデータ型を変更するには?
Redshift で列のデータ型を変更できません。Amazon Redshift でデータ型を変更する方法はありますか?
amazon-redshift - 複数のソートキー列があるとはどういう意味ですか?
Redshift では、複数の列を列として指定できますSORTKEY
が、ほとんどのベスト プラクティス ドキュメントは、SORTKEY が 1 つしかないかのように記述されています。
でテーブルを作成するとSORTKEY (COL1, COL2)
、すべての列が COL1、次に COL2 でソートされて保存されるということですか? それとも、カラム型ストアであるため、各カラムが異なる順序で格納されるのでしょうか? つまり、COL1 の順序で COL1、COL2 の順序で COL2、および順序付けされていない他の列ですか?
私の状況は、(とりわけ)type_idとtimestamp列を持つテーブルがあるということです。データはほぼタイムスタンプ順に到着します。ほとんどのクエリは、type_id とタイムスタンプの両方に対して結合/制限されます。通常、type_id 句はより具体的です。つまり、timestamp 句を確認するよりも type_id 句を確認することで、より多くの行を除外できます。このため、type_id は DISTKEY です。SORTKEY (type_id)
、、、SORTKEY (stamp)
の長所と短所SORTKEY (type_id,stamp)
を理解しようとしていSORTKEY (stamp,type_id)
ます。
ありがとう。