Publié le :
ETL EXTERNE

Extraction et consolidation de données fiscales via API REST

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script définit une macro '%json' qui effectue une boucle sur une plage d'années et de pages de résultats. Pour chaque itération, il appelle une API REST via PROC HTTP, lit le flux JSON retourné via le moteur LIBNAME JSON, et consolide les résultats dans une table unique via PROC SQL (UNION). Enfin, un Data Step applique des étiquettes (labels) en coréen et filtre les enregistrements invalides. Note : Le chemin 'C:\json\' devra être adapté pour un environnement SAS© Viya (Linux).
Analyse des données

Type : EXTERNE


Les données proviennent de l'URL 'http://openapi.openfiscaldata.go.kr/RevenuesSettled' (API publique).

1 Bloc de code
SETUP
Explication :
Définition des variables macro (chemin, librairie, clé API) et assignation de la librairie de sortie.
Copié !
1%let dir=C:\json\;
2%let lib=json;
3%let String01=WBQMR1000052520180323030651FWHGU;/*apiKey*/
4 
5LIBNAME &lib "&dir";
2 Bloc de code
PROC HTTP Data
Explication :
Définition de la macro principale. Elle initialise la table avec la première requête, puis boucle sur les années et les pages pour accumuler les données via des requêtes HTTP GET et des unions SQL.
Copié !
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 Bloc de code
MACRO CALL Data
Explication :
Appel de la macro pour extraire les données de 2012 à 2015.
Copié !
1%json(data_final=longdata_002, String05=http://openapi.openfiscaldata.go.kr/RevenuesSettled, date_s=2012, date_e=2015);
2 
4 Bloc de code
DATA STEP Data
Explication :
Nettoyage de la table finale (suppression des années manquantes) et application des métadonnées (labels des colonnes) en coréen.
Copié !
1DATA &lib .longdata_002;
2SET &lib .longdata_002;
3IF FSCL_YY="" THEN delete;
4label FSCL_YY=회계연도;
5/* ... (autres labels omis pour brièveté) ... */
6label NRC_AMT =미수납액(원);
7RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.