다른 GTFS & 피드를 사용하는 Im의 소비.이 데이터를 SQL 데이터베이스에 저장합니다.고정 GTFS와 GTFS-RT 트립 업데이트를 일치시키는 방법
정적 GTFS 데이터를 GTFS-RT 여행 업데이트와 어떻게 연결/링크해야합니까?
특정 stop_id에 대한 중지 시간을 표시하려고합니다. 임 정적 GTFS에서 시간을 얻을 수 있지만 GTFS-RT 여행 업데이트 시간을 업데이 트와 함께이 시간을 "패치"싶어요.
GTFS-RT가 매우 느슨하게 지정된 것처럼 보이지만 일부 필드 만 필수입니다. 사용중인 GTFS-RT 피드 중 하나가 트립 업데이트에 trip_id가 있고 다른 피드에 trip_id가 없습니다. 2017년 4월 11일
업데이트 나는 아래 쿼리를 사용하여 정적 GTFS에 GTFS-RT 여행 업데이트를 일치하도록 관리. 어떤 이유로 든 모든 여행 업데이트에 대해 trip_id를 얻을 수 없습니다. 어쩌면 문제는 데이터 자체에 있습니다. 내 쿼리에 문제가 있습니까?
const trip = await knex('trips')
.select('trips.trip_id')
.innerJoin('routes', 'routes.route_id', 'trips.route_id')
.innerJoin('stop_times', 'stop_times.trip_id', 'trips.trip_id')
.whereIn('trips.service_id', *day active service ids*)
.andwhere('routes.route_id', tripUpdate.route_id)
.andWhere('stop_times.departure_time', tripUpdate.trip_start_time)
.andWhere('trips.direction_id', tripUpdate.direction_id)
.orderBy('stop_times.stop_sequence')
.first();
예, 느슨하게 정의 된 표준입니다. 최근의 GTFS-rt 2.0 스펙은이를 분명하게 설명하고 있지만 여전히 허용됩니다. 왜? 단기간의 혼란에 대한 서비스 정보를 제공 할 수있는 유스 케이스가 있습니다. 이것은 그것이 정상이되는 많은 사료에 의해 악용되고 있습니다. 피드와 GTFS 간의 일치를 수행 할 수있는 논리를 작성해야 할 수 있습니다. 그러나 그것이 당신이 말하는 어떤 피드를 알지 못해도 가능한지 말할 수 없습니다. –
어떤 [DBMS] (https://en.wikipedia.org/wiki/DBMS) 제품을 사용하고 있습니까? 포스트그레스? 신탁? "_SQL_"은 쿼리 언어 일뿐 특정 데이터베이스 제품의 이름은 아닙니다. –
mariadb를 사용하고 있습니다. – devha