PostgreSQL
◾️はじめに 小ネタ。 友人と飲みに行った時にSQLの質問されて 試しにやってみたら、思ったより勉強になった。 そのついでに出てきた、ゼロ埋めをメモっておく 目次 【1】ゼロ埋め 方法1:TO_CHAR+FM 接頭辞 を使う 方法2:LPAD を使う 【2】サンプル 例…
◾️はじめに https://dk521123.hatenablog.com/entry/2024/09/28/212432 で、Snowflake と PostgreSQL の違いについて扱った。 その際に、Local開発環境はPostgreSQLで 本番環境はSnowflakeで DB(DWH)間には、DBTで吸収していると書いたのだが できれば、DB…
■ はじめに 小ネタ。 PostgreSQL・Redshiftにおいて、 ストアドの内容を確認する方法を調べて忘れそうなので メモっておく (多分、年明けとか、また使いそうなので) 目次 【1】ストアドの内容を確認するには 【2】補足:ストアド名一覧表示 【1】ストア…
■ はじめに https://dk521123.hatenablog.com/entry/2023/03/02/230435 で、以前、テーブル情報を取得したが 今回は、PostgreSQLの統計情報系についてまとめてみる 目次 【1】pg_catalog スキーマ 1)pg_statio_all_tables 2)pg_description 【2】infor…
■ はじめに 今回は、Redshiftの ストアド プロシージャ (Stored Procedure) を 解析しなくてはならなくなり、色々と知らんことがあったのでメモしておく (Redshiftだと手元で弄れないので、代わりにPostgreSQLを使った) SQL Fiddle https://www.db-fiddle.…
■ はじめに PostgreSQLのCOPY FROMでエラー「missing data for column xxxx」 になったのでメモ。 【1】現象 PostgreSQL で 以下の※1のようにCOPY FROMを使った際に 以下の「【2】エラーメッセージ」が表示する なお、PostgreSQLの環境は、以下の関連記事…
■ はじめに Local開発環境はPostgreSQLで 本番環境はSnowflakeで DB(DWH)間には、DBTで吸収しているが 時にそれでも違いでエラーになる場合があったので 原因をメモっておく なお、別記事で以下もある。 Snowflake と PostgreSQL の違い 〜 SQL / 日時 〜 …
■ はじめに https://dk521123.hatenablog.com/entry/2023/07/20/025544 の続き。 PostgreSQL を docker compose で作ったが、 やっぱり開発をスムーズにするには Web UI が欲しいなっと 思ったので、調べてみた。 # PostgreSQL といえば、pgAdmin だと思って…
■ はじめに Docker compose で ローカル開発環境用のPostgreSQLを立ち上げる Web UI が欲しい場合は、以下の関連記事を参照のこと Docker compose ~ Pgweb/pgAdmin ~ https://dk521123.hatenablog.com/entry/2023/08/10/111919 目次 【1】環境確認 1)コ…
■ はじめに システムの マイグレーションを行っているのだが、 PostgreSQL 互換の AWS Redshift のテーブル情報の一覧が欲しい とのことなので調べてみた。 目次 【1】システムが保持しているビュー 0)information_schemaスキーマ内のビュー 1)pg_names…
■ はじめに SQLで個人情報保護のためのマスキングを実装する 可能性がでてきたので、予習。 なお、実行環境は、PostgreSQL。 目次 【0】Tips 1)RPAD / LPAD 【1】電話番号をマスキング 【2】Emailをマスキング 【0】Tips * 使用した文字列関数で、 Sno…
■ はじめに Snowflakeのデータ取り込みで、 重複データの調査を依頼されたのでメモ。 目次 【0】お題 補足:単純にそのデータがユニークどうか調べる場合 【1】関連するSQL 1)GROUP BY 2)HAVING 3)自己相関サブクエリ 4)DISTINCT 【2】サンプル …
■ はじめに https://dk521123.hatenablog.com/entry/2021/09/08/202004 の続き。 Redshiftは、PostgreSQL互換と言われているが ちょこちょこ異なっていること見つかる今日この頃。 今回は、文字列結合について扱い、 PostgreSQLとの差異についても扱う。 目…
■ はじめに 小ネタ。 Amazon Redshiftを使っていて、 キャストの仕方が色々あるようなので、纏めてみた。 特に、「2)「::」 を使用したキャスト」が知らなかったので、 自戒の意味を込めて、記しておく。 目次 【0】公式サイト 【1】Amazon Redshiftでの…
■ はじめに https://dk521123.hatenablog.com/entry/2021/08/21/000000 の続き。 今回は、split_part について、扱う。 目次 【1】split_part 【2】構文 【3】サンプル 例1:Hello world 例2:S3パスのパース 例3:Emailのパース 【1】split_part * …
■ はじめに 小ネタ。 RedshiftのLISTAGG 関数を調べている際に PostgreSQLのstring_agg が見つかったので メモっておく 目次 【1】string_agg 補足:Redshift / LISTAGG 【2】構文 【3】サンプル 例1:Hello world 【1】string_agg * グルーピングした…
■ はじめに https://dk521123.hatenablog.com/entry/2021/08/16/231459 の続き。 先日行ったシェルではエラーハンドリングまで考慮されていなかったので EMR上でStepごとにシェル実行した際に、そのStep内でエラーが発生しても、 途中でキャンセルにならずに…
■ はじめに 恥ずかしながら、PostgreSQLのスキーマとDBが一緒なものだと 思っていた、、、 そんな自戒な意味を込めて、PostgreSQLのスキーマについて 学んでおく。 目次 【1】スキーマ (Schema) 【2】構文 【1】スキーマ (Schema) * 名前空間 を設定する…
■ はじめに Amazon EMR で シェル経由で Amazon Redshift に対して SQL を実行し、 そのシェルが実行結果を受け取り、 結果によって、エラーにするか / 正常終了にするか ってことを実装したい。 そこで、まずは、Amazon Redshift の元となっている PostgreS…
■ はじめに PostgreSQL で インデックス (index) を使う必要が出てきたので メモっておく。 目次 【1】インデックス 【2】構文 【3】インデックスの種類 【1】インデックス * 以下を参照。 インデックス ~ 入門編 ~ https://dk521123.hatenablog.com/e…
■ はじめに MySQL でいう AUTO_INCREMENT 属性みたいに 自動的に ID を付与してくれるテーブルを作る必要ができたので 調べてメモる。 目次 【1】自動ID付与 【2】連番型「SERIAL / BIGSERIAL / SMALLSERIAL」 【3】サンプル 【4】おまけ:Amazon Redshi…
■ はじめに 小ネタ。 ILIKE とかを使ったので、記録しておく。 目次 【0】テストデータ 【1】ILIKE 【0】テストデータ CREATE TABLE IF NOT EXISTS "users" ( "user_id" INTEGER NOT NULL, "user_name" VARCHAR(50) NOT NULL, "created_at" TIMESTAMP NUL…
■ はじめに AWS Redshift を psql コマンドでファイル実行しようと思っていて その際に、Hive の変数(以下の関連記事を参照)のように渡したい。 https://dk521123.hatenablog.com/entry/2021/06/24/094254 その第一段階として、Redshiftの元となっている P…
■ はじめに https://dk521123.hatenablog.com/entry/2015/04/07/001057 https://dk521123.hatenablog.com/entry/2015/04/27/000100 の続き。 目次 【1】エラー「cannot XXXXX in a read-only transaction」が表示 【1】エラー「cannot XXXXX in a read-onl…
■ はじめに PostgreSQLで、Unicode を扱ったので、メモ。 目次 【1】Unicode を扱う 【1】Unicode を扱う U&’文字列’ を使用する => そのままだと文字列として扱われてしまう サンプル -- \xxxx - 16進数 4桁の Unicode 文字コード番号 -- \+xxxxxx - 16進…
■ はじめに https://dk521123.hatenablog.com/entry/2020/02/08/001155 https://dk521123.hatenablog.com/entry/2020/05/08/175525 などで少し触れた PostgreSQL の COPY コマンド だが Redshift でも使えるみたいなので、まとめる Amazon Redshift ~ COPY …
■ はじめに https://dk521123.hatenablog.com/entry/2016/06/16/220624 の「使用上の注意」で触れたが、順番を指定した項目追加において MySQLの場合、AFTER xxxx があるので楽なのだが、 PostgreSQLの場合、項目を追加する際に、 ALTER TABLE ADD COLUMN だ…
■ はじめに データを移行ツールを作成した時に、 移行ツールと元のデータに差異がないことを PostgreSQLにおいて、簡単に確認できるSQL文を考える ■ 解決案 http://www.ajisaba.net/db/postgresql/table_record_diff.html#UNION https://qiita.com/damassima…
■ はじめに https://dk521123.hatenablog.com/entry/2020/05/08/175525 の続き。 今回は、「実装案2:オーソドックスにInsertする」を行う。 ■ 実行メソッドについて 実行メソッドの候補として、以下がある。 1)executemany() ← パフォーマンスがいまいち…
■ はじめに Pythonコードにより、CSVファイルを入力データとして、 PostgreSQLに対してデータをInsertする なお、PostgreSQLライブラリについては、 以下の関連記事の「psycopg2」を使う Python で PostgreSQL を使う ~ psycopg2編 ~ https://dk521123.hat…