Publicado el :
ETL EXTERNE

Extracción y consolidación de datos fiscales a través de API REST

Este código también está disponible en: Deutsch English Français
En espera de validación
El script define una macro '%json' que itera sobre un rango de años y páginas de resultados. Para cada iteración, llama a una API REST a través de PROC HTTP, lee el flujo JSON devuelto a través del motor LIBNAME JSON y consolida los resultados en una tabla única a través de PROC SQL (UNION). Finalmente, un Data Step aplica etiquetas (labels) en coreano y filtra los registros no válidos. Nota: La ruta 'C:\json\' deberá adaptarse para un entorno SAS© Viya (Linux).
Análisis de datos

Type : EXTERNE


Los datos provienen de la URL 'http://openapi.openfiscaldata.go.kr/RevenuesSettled' (API pública).

1 Bloque de código
SETUP
Explicación :
Definición de variables macro (ruta, librería, clave API) y asignación de la librería de salida.
¡Copiado!
1%let dir=C:\json\;
2%let lib=json;
3%let String01=WBQMR1000052520180323030651FWHGU;/*apiKey*/
4 
5LIBNAME &lib "&dir";
2 Bloque de código
PROC HTTP Data
Explicación :
Definición de la macro principal. Inicializa la tabla con la primera consulta, luego itera sobre los años y las páginas para acumular datos a través de solicitudes HTTP GET y uniones SQL.
¡Copiado!
1%macro json(data_final, String05, date_s, date_e);
2 
3 %let url=&string05?FSCL_YY=&date_s.&key=&string01&type=json&pindex=1&psize=1000;
4 
5 filename out temp;PROC HTTP url="&url" method="get" out=out;RUN;
6 LIBNAME raw json fileref=out;
7 
8 DATA &lib .&data_final;SET raw.Revenuessettled_row;RUN;
9 
10 %DO date_want=&date_s %to &date_e;
11 %DO string02=1 %to 4;
12 
13 %let url=&string05?FSCL_YY=&date_want.&key=&string01&type=json&pindex=&string02&psize=1000;
14 
15 filename out temp;PROC HTTP url="&url" method="get" out=out;RUN;
16 LIBNAME raw json fileref=out;
17 
18 PROC SQL;
19 create TABLE &lib .&data_final as
20 select distinct * from
21 (select a.* from &lib .&data_final as a union select b.* from raw.Revenuessettled_row as b)
22 QUIT;
23 RUN;
24 
25 %END;
26 %END;
27%mend;
3 Bloque de código
MACRO CALL Data
Explicación :
Llamada a la macro para extraer datos de 2012 a 2015.
¡Copiado!
1%json(data_final=longdata_002, String05=http://openapi.openfiscaldata.go.kr/RevenuesSettled, date_s=2012, date_e=2015);
2 
4 Bloque de código
DATA STEP Data
Explicación :
Limpieza de la tabla final (eliminación de años faltantes) y aplicación de metadatos (etiquetas de columnas) en coreano.
¡Copiado!
1DATA &lib .longdata_002;
2SET &lib .longdata_002;
3IF FSCL_YY="" THEN delete;
4label FSCL_YY=회계연도;
5/* ... (otros labels omis para brièveté) ... */
6label NRC_AMT =미수납액(원);
7RUN;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.