Миграции из Ruhavik в Traccar

kaket07a year ago

Очень грустно что воспринимаете как подход в виде атаки. Можно трактовать по разному. Тем более, что как простому пользователю получить ответ, как отворот в сторону "есть платная поддержка" очень неприятно (речи об отдельных доработках или иного действия в программировании не идет), а с отсутствием нужных знаний, понимать с полу слова просто невозможно. Теперь просто скептично отношусь от такого к платной поддержке (что в рамках форума ответ не исчерпывающий).

Касаемо предоставленного совета, не мною сказано "Ну вы таблицу посмотрели? Сравните что ближе всего подходит.", посмотрел, очень отличается структура (в зависимости с чем сравнивать). Как с этим работать вообще не понимаю (равносильно тому, что открыл книгу на Китайском, без знания языка)...

Traccar - *.sql

INSERT INTO `tc_positions` (`id`, `protocol`, `deviceid`, `servertime`, `devicetime`, `fixtime`, `valid`, `latitude`, `longitude`, `altitude`, `speed`, `course`, `address`, `attributes`, `accuracy`, `network`) VALUES
(1, 'osmand', 1, '2022-12-25 13:40:59', '2022-12-25 13:41:15', '2022-12-25 13:41:15', b'1', 55.5277746, 37.5850507, 205.3, 0, 0, NULL, '{\"batteryLevel\":74.0,\"distance\":0.0,\"totalDistance\":0.0,\"motion\":false}', 16.190000534057617, 'null'),

Ruhavik (вар. 1) - *.csv

"timestamp","server.timestamp","ident","position.latitude","position.longitude","position.altitude","position.speed"
1672473593,1672473669.77945,"9172791997",55.527677,37.585112,,0

Ruhavik (вар. 2) - *.csv

"timestamp","server.timestamp","ident","position.latitude","position.longitude","position.altitude","position.speed"
"31/12/2022 10:59:53","31/12/2022 11:01:09","9172791997",55.527677,37.585112,,0

Ruhavik (вар. 3) - *.csv

"timestamp","battery.level","battery.low.alarm","beidou.satellites.status","channel.id","city.id","crash.event","device.id","device.name","device.type.id","engine.ignition.status","event.seqnum","fatigue.driving.status","galileo.satellites.status","glonass.satellites.status","gps.satellites.status","gsm.cellid","gsm.lac","gsm.mcc","gsm.mnc","ident","manufacturer.code","manufacturer.device.code","message.type","overspeeding.event","peer","position.altitude","position.direction","position.latitude","position.longitude","position.speed","position.valid","power.cut.alarm","protocol.id","province.id","rollover.event","server.timestamp","sos.alarm","vehicle.mileage","vehicle.state","vehicle.state.bitmask","vendor.code"
1672473593,,,,55649,,,4732540,"Aveo",872,true,,,,,,,,,,"9172791997",,,"V1",,"31.173.86.128:14254",,0,55.527677,37.585112,0,true,,291,,,1672473669.77945,,,"fbffffff",4227858431,"HQ"

Ruhavik (вар. 4) - *.csv

"timestamp","battery.level","battery.low.alarm","beidou.satellites.status","channel.id","city.id","crash.event","device.id","device.name","device.type.id","engine.ignition.status","event.seqnum","fatigue.driving.status","galileo.satellites.status","glonass.satellites.status","gps.satellites.status","gsm.cellid","gsm.lac","gsm.mcc","gsm.mnc","ident","manufacturer.code","manufacturer.device.code","message.type","overspeeding.event","peer","position.altitude","position.direction","position.latitude","position.longitude","position.speed","position.valid","power.cut.alarm","protocol.id","province.id","rollover.event","server.timestamp","sos.alarm","vehicle.mileage","vehicle.state","vehicle.state.bitmask","vendor.code"
"31/12/2022 10:59:53",,,,55649,,,4732540,"Aveo",872,true,,,,,,,,,,"9172791997",,,"V1",,"31.173.86.128:14254",,0,55.527677,37.585112,0,true,,291,,,"31/12/2022 11:01:09",,,"fbffffff",4227858431,"HQ"
kaket07a year ago

Всем Здравствуйте.

Как и ожидалось, для простого пользователя, понадобилось много времени чтобы разобраться с CSV из Ruhavik (с инструментом ToolBox) для последующей загрузки в БД SQL для Traccar - 4 дня.
Каждый раз выгружались CSV с разделениями через "," или ";".
Использовать файл решил CSV с содержимым как из прошлого сообщения - Ruhavik (вар. 2) - *.csv
Потратил на это 2 дня, чтобы соединить правильно и нужной кодировке с 4 периодами в один файл.

Непонятное поведение было при последующем импорте в БД MariaDB через phpMyAdmin, так каждый раз получался сдвиг на столбец, не все ячейки даты и времени принимались, отказывал принимать данные больше 10 000 строк. В итоге пришлось воспользоваться программным обеспечением - HeidiSQL, SQLyog, Navicat 15 for MariaDB. Navicat 15 for MariaDB (триал), только с ней смог залить в БД файл из 350 000 строк.

Но самая веселая ситуация была из-за часового пояса. Ruhavik выгрузил исходные данные в GMT+03, БД эти данные приняла как по GMT00. И при просмотре через Traccar получалось, что история отображалась на 3 часа вперед. По итогу в исходных CSV исправлял все время ( а так же даты если были данные переходящие в сутках) на минус три часа. Очищал БД и по новой заливал данные.

Меня спасало только одно, что все данные проверял на Traccar установленный в Windows c отдельной БД MariaDB 10. Все данные от живой БД на Synolodgy не потерял и дополнил их к загрузке с прошлой историей, после чего удачно загрузил на Synolodgy в БД MariaDB 10.

kaket07a year ago

Уважаемый Anton Tananaev.
Хотелось бы извинится за критику в Ваш адрес и адрес проекта.
Но вы тоже должны понимать, что многое не надо воспринимать в серьез.
Мне грустно от того, что так произошло и полагаю, что я получил свой урок, намучившись с данными (разными исходниками, типу данных, разного программного обеспечения, отсутствием нужных знаний и использованием топорных действий) которых обычный пользователь в принципе ни когда не видит и не работает напрямую, а так же без советов и помощи не разберется во всем этом.

Надеюсь, что меня простят.

Anton Tananaeva year ago

По поводу неправильного времени, это должно быть легко поправить в базе. Просто добавьте или вычтите с помощью DATEADD.

kaket07a year ago

Доброго времени Anton.

К большому сожалению я не знаю (не понимаю) как это делать и при помощи чего. В исходных данных скопировал все аккуратно в Excel, вернее в OpenOffice Calc (так как через него я все и правил), при помощи формулы скорректировал (проверил), заменил на верное в исходнике. Как и сказал, что выполнил топорными способами (для простого пользователя).

Спасибо что подсказали куда необходимо данные импортировать.