
Konteksti
FME on äskettäin esitellyt DuckDB:n SQLExecutorin ja Readerin kautta uusimmissa betaversioissa. Tämä opetusohjelma opastaa sinua SQLExecutorin avulla suorittamaan monimutkaisia ja dynaamisia kyselyitä tehokkaasti. Analysoimme Suomen julkisia tuloja ja tunnistamme FME:n ja DuckDB:n avulla kunkin tulolähteen suurimman vuosittaisen kasvun suhteessa.
Mitä oppia?
- Luodaan väliaikaisia kansioita
- Ominaisuuksien yhdistäminen
- Tietojen kirjoittaminen parkettitiedostoihin
- Monimutkaisten SQL-kyselyjen suorittaminen
- Tietojen kääntäminen ja suodattaminen
Lähdetiedot
127f — Verot ja veronluonteiset maksut, vuosittain, 1975-2023

Ote tiedoista
Ote tiedoista: Jokaisessa vero- tai tulovirrassa on rivi, jossa on sarake kullekin vuodelle 1975–2023.
Vaiheittainen opas
Osa 1 : Tietojen valmistelu

Tässä otamme stat.fi:n syöttötiedot ja valmistelemme sen DuckDB:tä varten väliaikaisena parkettitiedostona.
- Lisää CSV : Tuo data stat.fi:stä FME:n automaattisesti skannaamalla tyypit.
- Luo väliaikaisia kansioita : Luo jaettu väliaikaiskansio käyttämällä Creator- ja TempPathnameCreator-ohjelmaa.
- FeatureMerger : Linkitä kaikki ominaisuudet temp-kansioon 1:1-näppäimellä.
- FeatureWriter : Luo parkettitiedosto temp-kansioon käsitelläksesi tietotyyppejä tehokkaasti.


Osa 2: Analysoi DuckDB:llä SQLExecutorin kautta

- Määritä DuckDB SQLExecutorissa : Tietokanta luodaan lennossa, ja se pystyy muodostamaan yhteyden lähdetietosarjoihin.

- Valmistele SQL-erotin : Käytä FME_SQL_DELIMITER | vahvistusasetuksiin.
FME_SQL_DELIMITER |
- Lataa tiedot : Käytä DuckDB:tä lukeaksesi Parquet-tiedoston:
LUO TAULUKONEEN tulo_raaka AS SELECT * FROM read_parquet("@Arvo(_tietojoukko)/@Arvo(_ominaisuus_tyypit{0}.nimi).parketti");
- Pivot-tiedot : irrota tiedot paremman analyysin saamiseksi:
--Unpivot luo 1 objektin vuodessa. FME voisi tehdä sen, mutta tämä on erittäin nopeaa ja LLM voi tehdä lausunnon puolestasi. LUO TAULUKKO pivoted_revenue_data AS SELECT Sektori, Verolaji, Tiedot, CAST(vuosi AS INTEGER) AS vuosi, tulot tuloista_raaka UNPIVOT ( tulot VUODELTA IN (1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1918, 1918) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2007, 208, 20 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023) );
- Vienti parketille : Testaa prosessia viemällä kierretyt tiedot:
KOPIO (VALITSE * FROM pivoted_revenue_data) TOIMINNAN "@Arvo(_dataset)/@Value(_feature_types{0}.name)_pivoted.parquet";|
- Laske prosentuaalinen lisäys : Laske vuotuinen tulon kasvu SQL-ikkunafunktiolla.
-- SQL:n "ikkunan" käyttö ominaisuuden käyttämiseksi ennen nykyistä tietuetta tai sen jälkeen. Toimii myös FME:ssä. (tiedot pudonneet) CREATE TABLE bevételt_evol AS SELECT Sektori, Verolaji, vuosi, liikevaihto, LAG(tulo) YLI (OSIO Sektori, Verolaji TILAA VUODEN MUKAAN) AS edellinen_tulo, CASE KUN LAG(tulo) OVER (OSIO Sektori, Verolaji TILAUS VUODEN MUKAAN) ON NULL, NIIN NULL MUUT (tulot - LAG(tulo) YLI (OSIO Sektorin, Verolaji TILAUS VUODEN MUKAAN)) / LAG(tulo) YLI (OSIO Sektorin, Verolaji TILAUS VUODEN MUKAAN) * 100 END AS tulon_lisäys_prosentti FROM pivoted_revenue_data;|
- Vie takaisin FME :hen: Käytä yllä olevaa SELECT-käskyä palauttaaksesi tiedot FME-liukuhihnaan:
SELECT * FROM tulot_kehitys;|
Sivuhuomautuksena sinulla voi olla useita valintoja SQLExecutorissa. Jokainen niistä työntää uusia ominaisuuksia takaisin FME-putkistoon.
- Paljasta uusia ominaisuuksia
Koska attribuutit generoi SQL, FME ei ”näe” niitä oletusarvoisesti. Mutta FME antaa sinun paljastaa ne jäsentämällä kyselyä.

- Tarkista lähtö
Tuloksena oli yli 6000 riviä enemmän tai vähemmän odotetulla arvolla.

Osa 3 : Valitse vuosi, jolloin tulovirrat kasvoivat eniten.
Tämä osa voitaisiin tehdä SQL:llä, mutta FME tarjoaa interaktiivisemman kokemuksen kulmakoteloihin, joten käytämme klassisia muuntajia.

- Suodattimen lisäys : Vertaa “tuloja” ja “aiempia tuloja” Testerillä.

- Lajittele tiedot : Lajittele saadaksesi suurimman lisäyksen ensin, ryhmitelty “Verolajin” mukaan.

- Esimerkkitiedot : Ota näyte kunkin ryhmän ensimmäisestä tiedosta.

- Tarkista tiedot

Onnittelut, olet valmis tältä päivältä!
Johtopäätös
FME ja DuckDB täydentävät toisiaan täydellisesti. FME on erinomainen kooditon alusta automatisoitujen, reaaliaikaisten dataputkien luomiseen useissa eri formaateissa. Kevyt DuckDB mahdollistaa tehokkaat muunnokset mittakaavassa. Olemme innoissamme mahdollisuudesta integroida näitä työkaluja entistä tehokkaammin tulevaisuudessa!