【Linux】setコマンド

■ はじめに https://dk521123.hatenablog.com/entry/2021/09/23/223401 で触れた「set -- xxxx」について よく分からなかったので調べてみた。 【0】set コマンド 【1】シェルの設定を確認、変更する 1)エラーがあった場合、そこで打ち止める 【2】現在…

【Linux】リダイレクト・パイプライン

■ はじめに https://dk521123.hatenablog.com/entry/2021/09/11/000000 https://dk521123.hatenablog.com/entry/2021/09/12/000000 https://dk521123.hatenablog.com/entry/2021/09/23/223401 で、パイプラインに関して、少し触れたが、 今回は、掘り下げて…

【Linux】shoptコマンド

■ はじめに https://dk521123.hatenablog.com/entry/2021/09/23/223401 で触れた「shopt -s lastpipe」について よく分からなかったので調べてみた。 目次 【1】shoptコマンド 【2】構文 【3】主なオプション 【1】shoptコマンド * bashのシェルオプショ…

【Shell】シェル ~ 基本編 / 連想配列 - ディクショナリ ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/08/11/000000 の続き。 今回は、連想配列を扱う。 目次 【1】連想配列 - ディクショナリ 【2】構文 1)定義方法 2)キーが存在しているか確認 【3】サンプル 例1:Hello world 例2:キーの存…

【SQL】Window関数 / 分析関数 ~ LAG / LEAD ~

SQL

■ はじめに SQL の Window関数 (分析関数) について扱う。 PostgeSQLだけでなく、Redshiftでも使える。 今回は、その中で、 LAG / LEAD に絞る。 なお、ROW_NUMBER / RANK については、 以前やった以下の関連記事を参照のこと。 ROW_NUMBER / RANK + PARTITI…

【AWS】Amazon Redshift ~ 文字列結合 ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/09/08/202004 の続き。 Redshiftは、PostgreSQL互換と言われているが ちょこちょこ異なっていること見つかる今日この頃。 今回は、文字列結合について扱い、 PostgreSQLとの差異についても扱う。 目…

【AWS】Amazon Redshift ~ キャスト ~

■ はじめに 小ネタ。 Amazon Redshiftを使っていて、 キャストの仕方が色々あるようなので、纏めてみた。 特に、「2)「::」 を使用したキャスト」が知らなかったので、 自戒の意味を込めて、記しておく。 目次 【0】公式サイト 【1】Amazon Redshiftでの…

【PostgreSQL】文字列関数 ~ split_part ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/08/21/000000 の続き。 今回は、split_part について、扱う。 目次 【1】split_part 【2】構文 【3】サンプル 例1:Hello world 【1】split_part * 指定した区切り文字「delimiter」で分割する …

【Linux】cat ~ ファイルの結合 / 閲覧 ~

■ はじめに ファイルを結合する必要がでてきたので、 cat で簡単にできたので、メモしておく。 目次 【1】cat 【2】使い方 1)閲覧 2)ファイル結合 3)空ファイルを作成する 【3】サンプル 例1:ファイル結合 例2:指定フォルダのテキストを全て結…

【AWS】Amazon Redshift ~ VACUUM ~

AWS

■ はじめに https://dk521123.hatenablog.com/entry/2021/09/04/172021 において 「3)インターリーブソートキー(Interleaved SortKey)」 の「デメリット」より ~~~~~~~~~~~ * インターリーブソートキーの性能を維持するためには 定期的に VACUUM REINDEX…

【AWS】Amazon Redshift ~ DistStyle / DistKey / SortKey ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/08/29/000000 で、PostgreSQL と Amazon Redshift との違いに触れたが 「【0】サンプルテーブル」をPostgreSQLで実行したら いくつもエラーになった。 その中で、「distkey(listid)」「compound sor…

【トラブル】【AWS】Hiveテーブルデータ を Redshift に移行時のCOPYコマンドエラー

■ はじめに https://dk521123.hatenablog.com/entry/2021/09/01/200818 において、Hiveテーブルデータ を Redshift に移行する際に COPYコマンドにおいていくつかトラブルが発生したので まとめておく。 目次 【1】COPYコマンド時にエラー「Forbidden: HTTP…

【Shell】シェルで split するには

■ はじめに シェルで、split する必要がでてきたので、メモしておく。 目次 【1】サンプル 例1:Hello world 【1】サンプル 例1:Hello world #!/bin/bash # Ex1 val="Hello,World,!!!" # ${変数名//置換前文字列/置換後文字列} list=(${val//,/ }) echo…

【AWS】Hiveテーブルデータ を Redshift に移行するには

■ はじめに Hiveテーブルデータ を Redshift に移行することをやったので ざっくり方針などをメモ。 目次 【1】Hiveテーブルデータ を Redshift に移行するには 1)移行手順案 2)トラブルについて 【2】サンプル 1)HiveのExternal TableでS3上に保存…

【AWS】Amazon Redshift ~ 自動採番 / IDENTITY ~

AWS

■ はじめに https://dk521123.hatenablog.com/entry/2021/08/29/000000 で、PostgreSQL において 自動採番IDしてくれる「SERIAL / BIGSERIAL / SMALLSERIAL」(※)は、 Redshiftでは対応していないと記載した。 そこで、Redshift は、自動採番をどう対応する…

【トラブル】【AWS】AWS Glue Job で DB timeout が発生する

AWS

■ はじめに AWS Glueで DB にアクセスした時にタイムアウトした際の トラブルについて、まとめる 目次 【1】概要 【2】動作環境 【3】エラー内容 【4】原因 【5】解決案 【1】概要 AWS Glue Job の 開始して、DB(今回は、Redshift)にアクセスしたら …

【AWS】Amazon Redshift ~ 他DB・サービスとの違い ~

AWS

■ はじめに https://dk521123.hatenablog.com/entry/2020/02/22/002139 が長くなったので分冊。 また、インデックスがサポートされていなかったという基本的なことも 分からなかった自分への戒め的にメモしておく。 目次 【1】一般的なDB との違い メモ:イ…

【Shell】シェル ~ 基本編・eval ~

■ サンプル シェルで、変数名に val1,val2, ... って番号が振ってあって その変数をいちいち参照したくないからって探してたら eval(イーバル)があったので、メモしておく 目次 【1】eval コマンド 【2】使用上の注意 【3】サンプル 例1:Hello world …

【SQL】SQLで変化(増加/変化なし/減少)について考える

SQL

■ はじめに SQLで変化(増加/変化なし/減少)について考える 目次 【1】ポイント 1)過去データと比較するために自己結合する 2)データ仕様上、歯抜けがあるかどうかを確認 【2】Oracle 11g 例1:年間売上の変化(増加/変化なし/減少) 例2:年間売上…

【PostgreSQL】文字列関数 ~ string_agg ~

■ はじめに 小ネタ。 RedshiftのLISTAGG 関数を調べている際に PostgreSQLのstring_agg が見つかったので メモっておく 目次 【1】string_agg 補足:Redshift / LISTAGG 【2】構文 【3】サンプル 例1:Hello world 【1】string_agg * グルーピングした…

【Shell】【PostgreSQL】シェルでSQL結果を受け取る ~ エラーハンドリング編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/08/16/231459 の続き。 先日行ったシェルではエラーハンドリングまで考慮されていなかったので EMR上でStepごとにシェル実行した際に、そのStep内でエラーが発生しても、 途中でキャンセルにならずに…

【トラブル】【AWS】Amazon EMR の クローン 時の トラブル

■ はじめに https://dk521123.hatenablog.com/entry/2020/08/05/144724 にEMRのトラブルを纏めていたが、 また違うトラブルが発生したので、メモしておく トラブルってゆーかー、そういう設定してるから起こったことだが。 目次 【1】EMR起動後にエラー「Eb…

【PostgreSQL】PostgreSQLのスキーマあれこれ

■ はじめに 恥ずかしながら、PostgreSQLのスキーマとDBが一緒なものだと 思っていた、、、 そんな自戒な意味を込めて、PostgreSQLのスキーマについて 学んでおく。 目次 【1】スキーマ (Schema) 【2】構文 【1】スキーマ (Schema) * 名前空間 を設定する…

【Git】 Git ~ 改行コード自動変換 core.autocrlf ~

Git

■ はじめに https://dk521123.hatenablog.com/entry/2020/08/05/144724 の「【2】エラー「Terminated with errors Bootstrap failure」が表示」で シェルスクリプトの改行がCRLFだと、Amazon EMRがうまく動かなかったことがあった。 で、また、エラー表示は…

【Shell】【PostgreSQL】シェルでSQL結果を受け取る

■ はじめに Amazon EMR で シェル経由で Amazon Redshift に対して SQL を実行し、 そのシェルが実行結果を受け取り、 結果によって、エラーにするか / 正常終了にするか ってことを実装したい。 そこで、まずは、Amazon Redshift の元となっている PostgreS…

【PostgreSQL】PostgreSQLのインデックスあれこれ

■ はじめに PostgreSQL で インデックス (index) を使う必要が出てきたので メモっておく。 目次 【1】インデックス 【2】構文 【3】インデックスの種類 【1】インデックス * 以下を参照。 インデックス ~ 入門編 ~ https://dk521123.hatenablog.com/e…

【Shell】ファイルへの書き出し

■ はじめに 小ネタ。 ファイルの書き出しについて、意外と使うのでメモ。 Dockerなんかの簡単な設定ファイル作成にも便利。 目次 【1】ファイル出力 1)echo を使ったファイル出力 2)printf を使ったファイル出力 【2】使用上の注意 - printf 1)「%」…

【Shell】シェル ~ CSV / TSVファイルの読み込み ~

■ はじめに シェルで、ヘッダー付きのCSV / TSVファイルの読み込み その一部を列を配列として扱いたいので、調べてメモっておく。 目次 【1】CSVファイルを読み込み出力する 【2】ヘッダー(1行目)を除外して出力する 【3】TSVファイルを読み込む 【4】…

【Shell】シェル ~ 基本編 / 配列 ~

■ はじめに シェルの配列に関して、まとめておく。 目次 【0】シェルの配列種類 【1】配列 - リスト 1)定義方法 2)要素の追加 3)要素の削除 4)関数の引数・戻り値 5)配列のソート 【2】連想配列 - ディクショナリ 【0】シェルの配列種類 シェ…

【PostgreSQL】自動ID付与 ~ SERIAL / BIGSERIAL / SMALLSERIAL ~

■ はじめに MySQL でいう AUTO_INCREMENT 属性みたいに 自動的に ID を付与してくれるテーブルを作る必要ができたので 調べてメモる。 目次 【1】自動ID付与 【2】連番型「SERIAL / BIGSERIAL / SMALLSERIAL」 【3】サンプル 【4】おまけ:Amazon Redshi…