新機能まとめ

PostgreSQL 14の変更点をとしては、次のようになります。

それぞれについてはこの下で説明します。

・ 性能向上

・ 新機能(SQL)

・ 運用管理

 

※ ここに記載する内容は、ほぼ次の動画を簡易的にまとめたものになります。詳細を知りたい方は、次の動画を是非ご参照ください(とてもわかりやすい動画でした)。

つづき

新機能編:https://youtu.be/mlo2sJBygo0

運用編 :https://youtu.be/O3QGDXXI4so

 

 

性能向上

① Btree Indexの改善

PostgreSQLは追記型のデータベースのため、更新を繰り返すとデータ量が肥大化していきます。これはテーブル本体だけでなく、インデックスも同様です。そのインデックスの更新時に不要なデータを整理する処理が入り、データの肥大化を防ぐことができるようになりました。

SRA OSS - 「PostgreSQL 14 新機能検証結果報告

 

 

② 式の拡張統計という機能が追加

PostgreSQLは、プランナの統計情報(このテーブルにはこんな情報が入っているよ)を参考にSQLの実行方法を決めています。そして、その統計情報に「こういう情報も取っておいてください」と追加できる「CREATE STATISTICS」という命令があり、そこに「式に関する統計情報」を追加できるようになりました。

 

通常、WHERE文に式が書かれている場合、プランナは式の結果がどうなるかはわからないので、プランナ音行数予測というものはあてにならない。そのため、「この箇所は正確に行数予測しよいプランを作ってほしい」という場合に使うものとなっています。

 

 

③ LZ4によるデータ圧縮技術

PostgreSQLでは可変長データは、暗黙的にデータ圧縮がされています(1レコード2KB超の場合)。そのアルゴリズムは「pglz」というものが採用されていますが、「LZ4」という圧縮アルゴリズムも選択可能になりました。列単位で設定可能。

※設定値は「default_toast_compression」

 

SRA OSSの検証結果によると「2つの圧縮どちらも大差はない」とのことです。検索速度としては「lz4」が良い、圧縮率としては「pglz」がよいと出ましたが、大きな差はなかった様子。またデータ形式によっては、結果もこうなるとは言い切れないとのことです。

 

 

④ postgres_fdw改善

外部テーブルに対して、3つの機能(外部テーブルのTRUNCATE、外部テーブルの非同期スキャン、外部テーブルの一括挿入)が追加されました。外部テーブルというのは、他のデータベースのテーブルを、自分のデータベースのテーブルかのように扱うものです。

 

 

⑤ ロジカルレプリケーション改善

いくつかの機能が追加されました。

従来ロジカルレプリケーション(行、テーブル単位)では、コミット実行後に相手側に情報が送られるという挙動でしたが、「ストリーム送信」というコミット前に送出しSUB側に蓄積、コミットを受けて適用するという流れにすることができるようになりました。その他、初期同期トランザクションの巨大化を防ぐために複数トランザクションにする、バイナリ転送モード(性能向上目的)が可能などが挙げられます。

 

 

⑥ パラレルクエリ改善

パラレルシーケンシャルスキャン(=大きなシーケンシャルスキャンを複数のパラレルワーカーに分けて処理をすること)が、従来1ブロックずつ処理していたものを、複数ブロックずつ処理するように変更されました。その他、これまでパラレル対応していなかった部分が対応されました(RETURN QUERY、REFRESH MATERIALIZED VIEW)。

 

 

新機能(SQL)

① マルチ範囲型

データ型に「マルチ範囲型」が増えました。範囲型は前からありましたが、それが複数連なったイメージです。範囲型同様にGiSTインデックスが使用できます。

 

 

② SEARCH / CYCLE句

WITH RECURSIVE構文(CTE再起問合せ)に、新しいオプションが加わりました。1.幅優先探索/深さ優先探索を指定できるようになる、2.循環参照の検出ができるようになる、また循環参照での検索停止ができるようになりました、3.再起検索の経路データを自分で作らなくてもよくなりました。※動画にSQL実例あり

 

 

③ 添え字構文

添え字構文が配列にしか使えなかったが、hstore型、jsonb型でも使用可能になりました。

 

 

運用管理

① セッション制御機能

セッション制御機能がいくつか追加されました。1つ目として、長期のアイドルセッションを切断できるようになりました(パラメータ:idle_sesson_timeout)。2つ目にクライアント側の切断を早期検知できるようになりました。従来では重いSQLをクライアントが実行し、結果が返ってくる前にクライアント側のプロセスが終了・切断した場合、サーバーは時間のかかるSQLを実行しそれを返そうとした時にエラーを演出していていました(ここでようやく知ることができていた)が、機能が有効になっていると、サーバー側でSQL実行中でもクライアントの切断を検出して、SQL実行を中断することが可能になります。

 

 

②新システムロール

新しいシステムロールが追加されました。
・ pg_read_all_data   …  全てのデータを参照だけできる
・ pg_write_all_data  …  全てのデータを更新だけできる
・ pg_database_owner …  暗黙に現在のデータベース所有者をメンバとしているロール

※「pg_write_all_data」だけ付与するというより、「pg_read_all_data」とセットにし、Read/Writeを付与するための要素として「pg_write_all_data」があると考えると理解しやすいでしょう。

 

 

③ 実行時統計情報の追加

実行時統計情報がいくつか追加されました

・ pg_stat_progress_copyビュー  … copyコマンドの進捗状況が確認できる

・ pg_stat_walビュー       … WAL書き出し情報

・ pg_stat_replication_slotsビュー … ロジカルレプリケーションの統計情報

 

 

④ pg_amcheckコマンドの追加

テーブル、インデックスの内部データ構造を検査し、データが壊れていないかを調べるコマンドです。ここで検査するのは論理的なデータの整合性が正しいか(リンクが正しいかなど)を確認することであり、値自体が変わっている等のチェックには使えません。

 

 

⑤ pg_rewind拡張

pg_rewindコマンドが拡張されました。pg_rewindとは「walを巻き戻すツール」です。レプリケーションを行ったりクラッシュでリカバリをすると、WAL(Write Ahead Log)を適用するということを行います(プライマリのWALをスタンバイに適用することでデータを同じにする)。その適用したものを元にもどすのがpg_rewindです。従来ではスタンバイをターゲットにした巻き戻しに対応していなませんでしたが、今回から対応可能になりました。

 

 

その他(互換性で注意すること)

・pg_hba.confの「clientcert=1」という記法が廃止

・V2プロトコル廃止(プロトコル:クライアントとサーバーの通信プロトコル)

・後置単項演算子(こうちたんこうえんざんし)の廃止

・EXTRACTの戻り値がfloat8型(浮動小数点)からnumeric型に・pg_standby廃止

VLCメディアプレイヤーの進む、戻るの秒数を変更する

VLCメディアプレイヤーでキーボードの「→」、「←」を押したときに、デフォルトであれば10秒進む・10秒戻るとなっていますが、この秒数を変更する手順する手順を紹介します。

 

 

変更手順

① VLCメディアプレイヤーを開き、上部メニュー>ツール>設定

 

 

② 左下の「設定の表示」を「すべて」に変更する

 

 

③ 左のメニューで「ホットキー設定」を選択 > 右下の「ジャンプする長さ」で「少し戻ったり、進んだりする長さ」の秒数を変更し、右下の保存を押す。※画面は5秒に変更

 

手順は以上となります。

 

 

ちなみに、上の「ジャンプする長さ」の違いは、ショートカットキーの違いです。

ほんの少し戻ったり、進んだりする長さ … Shift + → 、 Shift + ←

少し戻ったり、進んだりする長さ … → 、 ←

戻ったり、進んだりする長さ … Ctrl + → 、 Ctrl + ←

かなり戻ったり、進んだりする長さ … Ctrl + Alt + → 、 Ctrl + Alt + ←

 

履歴書・職務経歴書への書き方

G検定の履歴書・職務経歴書への書き方です。※E検定は読み替えをお願いします。

 

■履歴書

①令和X年 XX月 G検定(一般社団法人日本ディープラーニング協会)

②令和X年 XX月 一般社団法人日本ディープラーニング協会 G検定

③令和X年 XX月 JDLA Deep Learning for GENERAL 20XX #X

 

■職務経歴書

①G検定(20XX年XX月)

②一般社団法人日本ディープラーニング協会 G検定(20XX年XX月)

③JDLA Deep Learning for GENERAL 20XX #X(20XX年XX月)

 

 

私は両方②にしました(これでツッコミはなかったです)。

 

正しく書くなら、「JDLA Deep Learning for GENERAL 20XX #X」のような書き方が良いと思いますが、ぱっとわかる②の方が見た目が良いと思ったので。※名称よりも、「この資格はどんな資格なのか」「なぜこれを取得しようと思ったのか」の答えは用意しておきましょう。

 

あと、G検定は有効期限が設定されていませんのでご安心を。

 

※ どんな資格なのか?⇒JDLAのサイトにはこうありました。

『ディープラーニングの基礎知識を有し、適切な活用方針を決定して、事業活用する能力や知識を有しているかを検定する』

 

G検定を受けての感想とこれから受ける人へのアドバイス

こちらも見て頂けるとうれしいです。

 

 

基本情報技術者試験の変更点まとめ

基本情報技術者試験の通年試験化に関して、現行との違い等をまとめました。

新しい方式での試験は2023年4月から開始する予定のためご注意ください。

 

■変更点まとめ

・試験が随時受験できるようなる(今までは一定期間中のみ)

・午前試験免除制度は継続科目A試験免除制度という名前に)

・午前問題は問題数減+時間も短縮されるが、問題内容の変更はなし

・午後問題が情報セキュリティ、データ構造及びアルゴリズム(擬似言語)の二つの分野を中心にした構成に変更される

個別プログラム言語(C、Java、Python、アセンブラ言語、表計算ソフト)による出題がなくなり、普遍的・本質的なプログラミング的思考力を問う擬似言語による出題に統一さ

 

シラバス変更箇所表示版(P9)の抜粋

 

■問題数と解答時間

今まで 2023年4月~

午前(名前:午前試験)

80問 150分(113秒/問)

午前(名前:科目A試験)

60問 90分(90秒/問)

午後(名前:午後試験)

11問中5問解答 150分

※選択問題あり

午後(名前:科目B試験)

20問中20問解答 100分

※全問必須

 

■試験の配点及び基準点

ずっと100点満点だと思っていたが1000点満点だったらしい。

まぁ6割必要と思っておいて下さい。

※ 問題ごとの配点割合については、解答結果から評価点を算出する方式のため、具体的に問○が何点ということは明示されていません。

 

 

サンプル問題の解説

新しい出題方法になるにあたり、IPAのサイト(下部にリンクあります)にサンプル問題が掲載されました。

サンプル問題の解説を作成しましたので是非参考にして下さい。かなりの長文にもなってしまったのでEXCELファイルで公開します。

 

 

IPAサイト

IPAの通年試験化に関する公表サイト載せておきます。(具体的に知りたい場合はこちらを参照)

https://www.jitec.ipa.go.jp/1_00topic/topic_20220425.html

エンジニア向けの技術書を紹介します

新人エンジニアからベテランまで、幅広い方に有益な書籍を厳選しました。

高い書籍も多いですが、自己投資としても損はしないと思います。

amazon等で是非、他の人の評価も参考にしてみて下さい。

 

 

リーダブルコード  - より良いコードを書くためのシンプルで実践的なテクニック

良書中の良書。新人プログラマにもおすすめ。「読みやすいコード」をどうやって実現するかを、具体例を交えながら非常にわかりやすく紹介されています。

 

 

SQL実践入門 高速でわかりやすいクエリの書き方

「実行プランを読み解きボトルネックを解消する」。いろいろなSQLに対して、読み解きながらハイパフォーマンスなSQLを書くためのポイントが学べます。

 

 

達人に学ぶSQL徹底指南書 初級者で終わりたくないあなたへ

初心者には少し難しめの内容。DBの話はなく、ひたすらSQL。標準から特有の構文まで広くカバーしている一冊。

 

 

SQLアンチパターン

入門書というよりもある程度の経験者向け。DB開発に関するNGあるあるを紹介しつつ、どうすれば回避できるのかを教えてくれます。

 

 

失敗から学ぶRDBの正しい歩き方

RDBでのデータベース設計・運用をする中で、どのような失敗事例があるのか。その失敗事例の何が問題だったのか、その失敗をしないようにどのように設計するべきだったのか。が超わかりやすくまとまった良書です。

 

 

ビッグデータ分析・活用のためのSQLレシピ

ここまでできるのかというレベルでSQLの黒魔術がいろいろのっている本。初心者というより中級者以上向け。

 

 

現場で役立つシステム設計の原則

トラブルを起こさないために、どう考え、何をすべきか?が学べる本。難しい表現を用いずに、オブジェクト指向の設計の考え方が自然と身につくように書いてあります。

 

 

Webを支える技術 HTTP、URI、HTML、そしてREST

Webエンジニアが知っておくべき基礎知識が一気に学べる。Webの歴史や仕組み、APIなどに関して分かりやすくまとめられている。

 

 

1冊ですべて身につくHTML & CSSとWebデザイン入門講座

手を動かしながら読む進めていくタイプの本で、やさしく分かりやすい印象。

 

 

テスト駆動開発

テスト駆動開発とは、プログラムの実装前にテストコードを書き、そのテストコードに適合するように実装とリファクタリングを進めていく方法です。本書では実例をもとに、自分がテスト駆動開発を実践する時にどのように進めればいいのかを学ぶことができます。

 

 

プロになるためのWeb技術入門

今のWebの仕組みがどのような歴史的経緯で生まれたのかプログラミング実例付きで紹介されていて、具体的に理解しやすいし実務で生かしやすい。クッキーやログイン認証、DBアクセス時のORマッパーの必要性など実務で必要となる知識が盛りだくさんです。

 

 

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践

Webアプリケーションを開発するにあたって、知っておくべきセキュリティや脆弱性の知識を身に付けることができます。実務で役に立つポイントがまとまっている良書です。

 

 

Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識~

Linuxカーネルの全体像を知るのに最適な本。この本は、難しい概念を、豊富な図で分かりやすく説明されており、非エンジニアでも理解できるほど丁寧に解説している。それでいてLinuxに関する知識を浅すぎず、深すぎずで解説しているので非常にためになる本です。

 

 

この一冊で全部わかるサーバーの基本

サーバーの基本的な概要を知る入門書でsy。見開き毎にテーマがあり、左側に説明、右側に図解という構成。綺麗にまとまっているので、読みやすいと思います。

 

 

Amazon Web Services 基礎からのネットワーク&サーバー構築

いろんな方がAWS学習で初めに読む本として薦める名著。主にEC2周りの、基礎的な流れについて丁寧にわかりやすく説明されています。写真や図が豊富なのもよい点。

 

 

Docker/Kubernetes 実践コンテナ開発入門

実務で必要なDockerの知識が図式も合わせてまとまっていて理解しやすい。チュートリアルとして Docker から Kubernetes まで勉強できるため、まとまった知識が手に入ります。

 

 

オブジェクト指向でなぜつくるのか

オブジェクト指向というものがどのような問題を解決する手法として発展して生まれたのかを紐解き、その上でオブジェクト指向の何が嬉しいのかを理解させてくれる良書。

 

 

人工知能は人間を超えるか

械学習入門者が一番初めに読むべき本。プログラミング要素はなく、誰でも読める入門にはもってこいの書籍。

 

本が嫌という方はこれを聞くだけでもよいかもです。

 

 

退屈なことはPythonにやらせよう

様々な雑用から解放されるような内容がたくさん載っている本。ファイル管理、Excelシート操作、PDF操作、メール送信等々。初心者向けの第1部、本格的な自動化処理の内容を書いた第2部の構成になっています。

 

 

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

著者が日本人であることもあり、解説が非常にわかりやすい良書です。入門書として紹介されていることが多い本書ですが、Pythonの知識と数学の知識がある程度必要ということは承知しておいてください。

 

 

なるほどデザイン 目で見て楽しむデザインの本

様々なシチュエーションでのデザイン例がまとめられていて、視覚的に楽しい内容。著者が日本人なので、いい意味で日本人好みなデザインを目で学ぶことが出来る。

 

 

基本情報技術者試験 問3の解説

2013年(平成25年)春、基本情報技術者試験の午後問3(DB)についての解説です。

説明のしやすさからEXCELファイルにて解説していますのでご了承ください。

 

内容はこんな感じです

 

 

ダウンロード」ボタンよりダウンロードしてください。

 

基本情報技術者試験 問3の解説

2013年(平成25年)秋、基本情報技術者試験の午後問3(DB)についての解説です。

説明のしやすさからEXCELファイルにて解説していますのでご了承ください。

 

内容はこんな感じです

 

 

ダウンロード」ボタンよりダウンロードしてください。

 

基本情報技術者試験 問4の解説

2014年(平成26年)秋、基本情報技術者試験の午後問4(DB)についての解説です。

説明のしやすさからEXCELファイルにて解説していますのでご了承ください。

 

内容はこんな感じです

 

 

ダウンロード」ボタンよりダウンロードしてください。

 

基本情報技術者試験 問3の解説

2015年(平成27年)春、基本情報技術者試験の午後問3(DB)についての解説です。

説明のしやすさからEXCELファイルにて解説していますのでご了承ください。

 

内容はこんな感じです

 

 

ダウンロード」ボタンよりダウンロードしてください。

 

基本情報技術者試験 問3の解説

2015年(平成27年)秋、基本情報技術者試験の午後問3(DB)についての解説です。

説明のしやすさからEXCELファイルにて解説していますのでご了承ください。

 

内容はこんな感じです

 

 

ダウンロード」ボタンよりダウンロードしてください。