みなさん、こんにちは。 今回は「sqlcmd」をインストールし、コマンドプロンプトからSQL Serverへ接続して操作したいと思います。 sqlcmdのインストール方法 公式ドキュメントを参考にインストールします。 今回はWindows11(64bit環境)にインストールします。 ① ODBCドライバのダウンロード 上記sqlcmdは ODBC Drive 17が指定されているため、今回は以下リ […]
みなさん、こんにちは! 今回は前回の続きとして、騒音計の時系列データをデータベースに保存してみようと思います。 前回の記事↓↓ データを保存する 時間とその時のHzをデータベースに記録していきます。 データ数 時間間隔として1sec毎に書き込みを行うとします。 レコード数は 60sec * 60min * 24 = 86400 となります。 記録先 今回はDB(TimescaleDB)とAPを同一 […]
みなさん、こんにちは! 今回はDBのテーブルを複製する方法を確認します。 ケース テーブルのバックアップを取る事例としては以下のようなケースでしょうか? 以下のようなテーブルがあったとします。 このテーブルには既に100件のデータが入っているのですが、今回新たに列を追加することになりました。 その変更作業のために、一旦バックアップを取りたいと思います。 クエリ 以下のクエリを実行することで、わざわ […]
こんにちは! 今回は前回の記事とは逆に、データベースからCSVデータを「エクスポート」する方法を確認します。 出力データ 前回インポートで利用した「employeesテーブル」から出力を行います。 PosgreSQL CSVの出力には「COPY」コマンドを使用します。 MySQL MySQLの場合は「SELECT * INTO OUTFILE」で出力できます。 MSSQL MSSQLの場合、コマン […]
みなさん、こんにちは。 今回は仕事でもよく利用する CSVデータの一括挿入を検証します。 テストデータ 以下のテストデータを利用します。 ChatGPTに作ってもらいました。 下図のように、社員番号、社員名が入っています。 インポート先のテーブル インポート先のテーブルは以下のように定義します。 PostgreSQLの場合 PostgreSQLの場合は、「COPY」を用います。 SQLサーバ内のt […]
みなさん、こんにちは! PostgreSQLを学ぶ際に、無料で学べる方法を2つご紹介します。 いずれもLPI-Japanが提供されている情報となっています。 OSS-DB道場 コラム形式で基本的な使い方を紹介されています。 PostgreSQL 9の情報が多めとなっていますが、基本的な体系を学ぶには良いかと。 オープンソースデータベース標準教科書 -PostgreSQL- より体系的に、しっかり学 […]
みなさん、こんにちは! 今回は PostgreSQLの冗長化構成を構築します。 サーバ障害発生時に、冗長化構成を組んでおくことで耐障害性を高めます。 構成 今回構築しようとしている構成は以下の通りです。 プライマリ/セカンダリ構成を取り、プライマリ障害時にセカンダリに切り替えれるよう、両者は常に同期処理を図ります。 PostgreSQLの同期の仕組みとして、WAL(Write Ahead Logg […]
クエリのWhere文でたまに見かける「Where 0=0」について備忘録として記載します。 データ取得の条件を作成する 例えば下図のような「商品」テーブルを考えます。 0=0の意味 普段のクエリ作成では利用しないと思いますが、プログラム作成時には意外と便利だったりします。 where 0=0 Select * from 商品 where 0=0 の意味は「条件(0=0)がTrueの時にSelect […]
みなさん、こんにちは! 今回は前回同様で時系列データを扱うためのクエリを紹介します。 イメージ データベース上に下図のように、「1:作業開始時」と「0:停止時」の「時刻」が交互に記録されている状況を考えます。 これを下図のように変換したいと思います。 要は「レコード1行の中に”開始時刻”と”終了時刻”を持たせる」ように変換を掛けます。 LAGの活用 上記の変換で役に立つのが「LAG」です。 LAG […]
今回はデータ解析用のクエリを検証しました。 やってみたこと 例えば、製造業で実績を取得するシステムがあり、以下のようなデータが蓄積されているとします。 時間:実績を入力した時間 実績:完成した製品の数 このデータを「5分単位」でデータを丸める場合のクエリは以下の通りです。 事前準備 今回利用した環境は heroku上の PostgreSQLです。 1:テーブルを作成します 以下のクエリを実行しまし […]