Tech blog

日々の開発業務で培った技術的な知見や、よりよいプロダクト提供のための技術的な取り組みなどを積極的に紹介をしていきます。

Postgresql ただのVacuumでもOSに領域を返却する事が有る

MBL開発部 Nです。

最近、Postgresqlを運用していて気になった所を調べてみました。
どんな事かと言いますと、10GB程度あるテーブルのデータを大量に削除した際にVacuumをFullオプション付きで行っていないのにもかかわらず、テーブルサイズが縮小し、OSのディスク空き容量も増えるということが二回あり、通常vacuumではOSに領域の返却は行われないと思っていたので一度目は見間違いかなと思っていました。

ドキュメントを見てみると9系のVacuumからこのように記載されています。

(FULLが指定されていない)通常のVACUUMは、単に領域を回収し、そこを再利用可能な状態に変更します。 この形式のコマンドでは排他的ロックが取得されていないため、テーブルへの通常の読み書き操作と並行して実行することができます。 しかし余った領域はオペレーティングシステムには(ほとんどの場合)返されません。 同じテーブル内で再利用できるように保持されるだけです。

ほとんどの場合返却されませんとの事ですので、返却されること自体は稀だけどもおかしくないようです。ではどのような場合に返却されるのでしょうか。

続きを読む

複合気象センサーで現場の気象変化を監視する

皆さんこんにちは!
製品開発部エンベデッドグループの本間と申します。

弊社では、様々な計測機器を接続することで、計測データを専用のクラウドサーバーに自動的に
送信し、パソコンやスマートフォンからいつでも確認できるようにする「クラウドロガー」を
開発しております。

クラウドロガー

今回は、このクラウドロガーに「複合気象センサー」を接続した、現場の様々な気象を計測・監視
する気象計測システムをご紹介いたします。

続きを読む

Raspberry PiとWebカメラでストリーミング配信してみた

こんにちは。
コンストラクションソリューション事業部 開発部の向井です。

弊社にはジオスコープやミルモットといった映像や画像で遠隔から確認できるサービスがあるのですが
そのような開発をした経験が無かったので、
今回はラズパイとWebカメラを使用して遠隔から映像確認できる仕組みを作ろうと思います。
ペットの監視とかに使用したら便利かもしれませんね。

続きを読む

業務シーンに応じたBacklogの利用方法

IoTインテグレーション事業部 開発部の古川です。

弊社では、全社スコープのコミュニケーションには、グループウェアであるサイボウズがメインで使われていますが、当開発部のタスク管理では、Backlogをメインで使用しています。
https://backlog.com/ja/

Backlogには、幾つかの利用方法の側面があるため、用途に応じた使い方を行うことが肝要です。
普段はそれほど意識することなく使い分けていますが、本ブログのエントリでは、利用方法の整理も兼ねて、Backlogによるタスク管理方法について紹介します。

続きを読む

PSB-100を利用した簡易型水位計で河川水位を測定

こんにちは、コンストラクションソリューション事業部 開発部の若宮です。

7月になり、暑くなりましたが雨も多くなってきましたね。ここのところ、豪雨による水害や警報のニュースも多く聞かれるようになりました。被災された方々には心からお見舞い申し上げます。

河川の氾濫の危険を察知する方法の一つとして、水位を測定しモニタリングするという方法があります。弊社でも、水位モニタリングのソリューションを提供しております。先日、河川に簡易型水位計を設置する機会がありましたので、本記事で紹介いたします。

続きを読む

パラパラ漫画を作成するアプリを作ってみました

こんにちは!
製品開発部映像AIグループの張朝程です。

最近、ジオスコープやミルモットHDをご利用中のお客様からクラウド録画データの静止画をパラパラ漫画にしたい、というお問い合わせが増えてきました。

そこで、PythonとOpenCVを使えば、静止画を一括で取得し簡単にパラパラ漫画を生成できるので、この課題をクリアできます。

今回、PythonプログラムをWindowsのexeファイルに変換するツールPyInstallerを使い、Python環境がないWindows PCでも動くPythonとOpenCVを組み合わせたアプリを作成してみました。

続きを読む

NitroなEC2でEBSをマウントする(Ubuntu編)

こんにちは!
コンストラクションソリューション事業部 開発部の藤井です。初投稿となります。

弊社ではAWSを用いた案件が多く、私の所属部署でも、AWS用語が解説無しで普通に飛び交います。
私は昨年9月にエコモットへ入社するまでAWS経験歴は無く、最初のころは正直いって焦りました。ですが、社内勉強会などに誘ってもらい参加したり、業務で実際に使ったりしているうちに慣れ、いまは少し世界が広がったように思います。

この記事では、先日、Nitro なEC2でEBSをマウントする際に起きた小さな小さな問題解決までの流れをまとめます。AWSに振り回される業務風景として眺めていただけると幸いです。

続きを読む

DockerでSelenium Gridを構築してクロスブラウザテストを自動化する

皆さんこんにちは、4月で入社2年目になりました。
IoTインテグレーション事業部 開発部の阿部です。

本日は業務の中で、DockerとSelenium Gridを使用して自動クロスブラウザテストの環境構築をしたのでご紹介させていただきます。

ブラウザ上でのwebページ操作をスクリプトから行うためのツールであるSeleniumとSeleniumで実行される動作を管理するツールであるSelenium Gridを利用し、一つのテストスクリプトで複数のブラウザを自動でテストできるようにします。

続きを読む

RDBMSで大規模データを扱うための一検証

こんにちは。モビリティサービス事業部 開発部の対馬です。

私は業務上、GPS端末とそれにかかわるWebアプリケーション開発に携わることが多いのですが、
GPS端末から送られてくるデータは、ロギングする頻度の関係でデータ量が非常に多いため、その保存方法に工夫が必要であると思わされることがしばしばあります。

そのデータ量の多さから、DBですべてを保持することが困難であるため、一部はデータファイルで保存したりもしますが、データ検索のしやすさや、データ保存時のトランザクションの容易さという観点から、やっぱりDBを使いたいと思うことがあります。

そこで、今回は、下記のようなお題で位置情報データを扱う検証をしてみようと思います。
ちなみに弊社ではデータベースとして、RDBMSのPostgreSQLを採用することが多いので、今回の検証もそれに倣ってPostgreSQLの前提で考えます。

続きを読む