自分メモ:SBS30003データベース形式

Kineticが発売したSBSシリーズで使われるPort30003の通信形式は、事実上の業界標準となっています。

Port30003のデータを管理するためのデータベース(テーブル)を作成した際のメモです。

Port30003の通信(30003.log)

MSG,1,0,0,AB7613,0,2021/03/19,08:50:22.751,2021/03/19,08:50:22.751,AAL9733,,,,,,,,,,,0
MSG,3,0,0,AB7613,0,2021/03/19,08:50:23.457,2021/03/19,08:50:23.457,,38000,,,,,,,,,,0
MSG,4,0,0,AB7613,0,2021/03/19,08:50:23.635,2021/03/19,08:50:23.635,,,450.4,221.8,,,-64,,,,,0
MSG,8,0,0,AB7613,0,2021/03/19,08:50:24.032,2021/03/19,08:50:24.032,,,,,,,,,,,,0
MSG,5,0,0,AB7613,0,2021/03/19,08:50:24.242,2021/03/19,08:50:24.242,,38000,,,,,,,,,0,0
MSG,3,0,0,AB7613,0,2021/03/19,08:50:24.506,2021/03/19,08:50:24.506,,38000,,,,,,,,,,0
MSG,4,0,0,AB7613,0,2021/03/19,08:50:24.698,2021/03/19,08:50:24.698,,,450.4,221.8,,,-64,,,,,0
MSG,8,0,0,AB7613,0,2021/03/19,08:50:24.880,2021/03/19,08:50:24.880,,,,,,,,,,,,0
MSG,8,0,0,AB7613,0,2021/03/19,08:50:24.880,2021/03/19,08:50:24.880,,,,,,,,,,,,0
MSG,8,0,0,AB7613,0,2021/03/19,08:50:24.880,2021/03/19,08:50:24.880,,,,,,,,,,,,0

SBS30003テーブルの作成

Query used to create this table

CREATE TABLE SBS30003(
MES varchar(4),
TYPE integer,
SessionID integer,
AircraftID integer,
ModeS varchar(6),
FlightID integer,
DateMsgCreated datetime,
TimeMsgCreated datetime,
DateMsgLogged integer,
TimeMsgLogged integer,
Callsign varchar(8),
Altitude integer,
GroundSpeed integer, 
Track integer,
Latitude varchar(12),
Longitude varchar(12),
VerticalRate varchar(6),
Squawk varchar(4),
Alert varchar(4),
Emergency varchar(12),
SPI integer,
IsOnGround integer
);
CREATE TABLE T_ModeS(
ModeS varchar(6) PRIMARY KEY,
flgMail integer,
flgWeb integer,
flgFoundToday integer,
UpdDate datetime,
mTo varchar(50),
mSub varchar(50),
mBody varchar(250),
Remarks varchar(250)
);

データのCSVファイルからのインポート

書式)

sqlite3 -separator 区切り文字 対象DBファイル “.import CSVファイル名 Table名”

sqlite3 -separator , ./sbs30003.sqb ".import ./30003.log SBS30003"

Table dump (Aircraftテーブルをzzz.txtへ出力)

sqlite3 ./BaseStation.sqb
SQLite version 3.27.2 2019-02-25 16:06:06
Enter ".help" for usage hints.
sqlite> .output ./zzz.txt
sqlite> .dump Aircraft

sqliteの管理にphpliteadminを利用したのですが、とても便利でしたが、

細かなSQL文は(ホスティングサーバによっては)インジェクションとして扱われる場合もあるようなので、phpliteadminを利用するときには注意したほうが良いです。

参考にさせていただきました。ありがとうございます。

以前書いたとおり、運営しているサイトの中で比較的アクセス数の少ないサイトから徐々にMySQL→SQLiteの移行作業をしています。 関連記事 PHPでWordPressの投稿データをsqliteへ

参照:Port30003データ形式