Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

항공편에서 일별 시계열 만들기

원래 시계열이 아닌 항공편 이벤트를 일별 지표로 집계하여 Carrier, Route와 Airport의 TSP에 공급합니다. 이미 센서나 historian에서 같은 시계열 데이터를 받고 있다면 집계 단계 대신 필요한 동기화 스키마부터 준비할 수 있습니다.

입력과 결과

입력 열자료형의미
flight_idString항공편 및 행의 고유 ID
dateDate항공편의 기준 일자
destination_airport_idString도착 공항 ID
airline_idString항공사 ID
origin_airport_idString출발 공항 ID
dep_delayInteger출발 지연 분
arr_delayInteger도착 지연 분
route_idString노선 ID

일별 기준은 입력 date를 따릅니다. 다음 표들의 수치는 가상 집계 예시입니다.

Carrier와 Route 지표

각각 date와 airline_id 또는 date와 route_id로 그룹화합니다. 평균 출발 지연, 평균 도착 지연과 행 수를 집계합니다.

route_iddatedaily_avg_dep_delaydaily_avg_arr_delaydaily_count_of_flights
ATL -> SFO2023-06-1233.45454545454540.011
ATL -> FLL2023-08-2429.72727272727219.40909090909122
ATL -> TVC2023-07-05-8.0-8.01

Cast로 date를 Timestamp로 바꿉니다. 세 지표를 같은 값 열로 묶기 위해 항공편 수도 평균 지연과 같은 Double로 변환합니다.

Unpivot에서 지표 이름을 series_name, 값을 series_value로 내보냅니다.

series_nameseries_valueroute_iddate
daily_avg_dep_delay33.454545454545ATL -> SFO2023-06-12T00:00:00.000Z
daily_avg_arr_delay40.0ATL -> SFO2023-06-12T00:00:00.000Z
daily_count_of_flights11.0ATL -> SFO2023-06-12T00:00:00.000Z

Concatenate strings로 객체 ID, 구분자 _와 series_name을 연결합니다. 예를 들어 ATL -> SFO의 출발 지연 ID는 ATL -> SFO_daily_avg_dep_delay입니다. 항공사도 airline_id에 같은 규칙을 적용합니다.

마지막에 series_id, series_value와 date만 남깁니다.

series_idseries_valuedate
ATL -> SFO_daily_avg_dep_delay33.4545454545452023-06-12T00:00:00.000Z
ATL -> SFO_daily_avg_arr_delay40.02023-06-12T00:00:00.000Z
ATL -> SFO_daily_count_of_flights11.02023-06-12T00:00:00.000Z

공항의 출발 및 도착 지표

출발 branch는 date와 origin_airport_id로 그룹화하여 dep_delay 평균과 출발 항공편 수를 구합니다. 도착 branch는 date와 destination_airport_id로 그룹화하여 arr_delay 평균과 도착 항공편 수를 구합니다. 조인 화면과 같은 이름을 쓰려면 도착 키를 dest_airport_id로 바꿉니다.

두 branch의 date를 Timestamp로 변환합니다.

두 방향 결합

출발 지표를 왼쪽, 도착 지표를 오른쪽으로 Left join합니다. date끼리, origin_airport_id와 dest_airport_id끼리 모두 일치시키고 왼쪽 열 전체 및 오른쪽의 평균 도착 지연과 도착 항공편 수를 선택합니다.

이 구성은 출발 지표에 있는 공항과 일자를 유지합니다. 도착 기록만 있는 공항과 일자도 결과에 포함해야 한다면 Full outer join을 사용하고 양쪽의 공항 ID 및 date를 합쳐 하나의 키로 정리합니다. 해당 방향의 기록이 없는 경우 건수는 0으로 계산할 수 있지만, 관측이 없는 평균 지연은 값 없음으로 구분합니다.

다음은 양쪽 지표가 있는 행의 예시입니다.

dateorigin_airport_iddaily_avg_dep_delaydeparting flightsdaily_avg_arr_delayarriving flights
2023-07-02102999.343753318.52941176470634
2023-09-0610431-2.3333333333336-8.06
2023-01-1210620-7.0256.52

origin_airport_id를 airport_id로 바꿉니다.

숫자 형식과 합계

두 건수 열을 Double로 변환하고 Add numbers로 daily_count_of_flights를 만듭니다. 이 지표는 공항의 도착과 출발 건수를 합친 값입니다.

airport_id출발 건수도착 건수daily_count_of_flights
10299333467
104316612
10620224

전체 항공편의 고유 개수를 세는 것과 공항에서 처리한 도착 및 출발 건수를 합하는 것은 다릅니다.

세 지표 daily_count_of_flights, daily_avg_dep_delay, daily_avg_arr_delay를 Unpivot하여 series_name과 series_value로 만듭니다.

airport_id, _와 series_name을 연결합니다. 10299의 합계 ID는 10299_daily_count_of_flights입니다.

series_id, series_value와 date만 남깁니다.

series_idseries_valuedate
10299_daily_count_of_flights67.02023-07-02T00:00:00.000Z
10299_daily_avg_dep_delay9.343752023-07-02T00:00:00.000Z
10299_daily_avg_arr_delay18.5294117647062023-07-02T00:00:00.000Z

세 객체 유형의 값 결합

Carrier, Route와 Airport 결과를 Union by name으로 합칩니다.

세 입력의 series_id가 서로 다른 측정을 고유하게 구분해야 합니다. 서로 다른 객체 유형의 키 공간이 겹치면 유형 접두어 등을 ID 규칙에 포함하고 객체의 TSP 값에도 같은 규칙을 적용합니다.

합친 데이터에는 다음과 같이 서로 다른 객체 유형의 지표가 함께 들어갑니다.

series_idseries_valuedate
10299_daily_count_of_flights67.02023-07-02T00:00:00.000Z
10299_daily_avg_dep_delay9.343752023-07-02T00:00:00.000Z
10299_daily_avg_arr_delay18.5294117647062023-07-02T00:00:00.000Z
CMH -> IAH_daily_avg_dep_delay-8.02023-03-21T00:00:00.000Z
20304_daily_avg_arr_delay9.1252023-08-13T00:00:00.000Z

동기화 출력

date와 series_value가 null이 아닌 행을 남깁니다. series_id도 유효한 문자열로 생성되어 있어야 합니다.

출력 패널에서 Add의 Time series sync를 선택하고 다음과 같이 매핑합니다.

동기화 필드입력 열
Series IDseries_id
Timedate
Valueseries_value

리소스 이름을 정하고 파이프라인을 저장 및 빌드합니다. 생성된 출력은 파이프라인과 같은 폴더에서 찾습니다. 이어서 객체의 TSP에 같은 ID를 연결합니다.