eurostat

Erweiterung, die das Lesen von Daten aus der EUROSTAT-Datenbank mit SQL unterstützt.

Maintainer: ahuarte47

Installation und Laden

INSTALL eurostat FROM community;
LOAD eurostat;

Beispiel

SELECT * FROM EUROSTAT_DataStructure('ESTAT', 'DEMO_R_D2JAN', language := 'en');
┌─────────────┬──────────────┬──────────┬─────────────┬─────────────────────────────────┐
│ provider_id │ dataflow_id │ position │ dimension │ concept │
varcharvarchar │ int32 │ varcharvarchar
├─────────────┼──────────────┼──────────┼─────────────┼─────────────────────────────────┤
│ ESTAT │ DEMO_R_D2JAN │ 1 │ freq │ Time frequency │
│ ESTAT │ DEMO_R_D2JAN │ 2 │ unit │ Unit of measure │
│ ESTAT │ DEMO_R_D2JAN │ 3 │ sex │ Sex │
│ ESTAT │ DEMO_R_D2JAN │ 4 │ age │ Age class │
│ ESTAT │ DEMO_R_D2JAN │ 5 │ geo │ Geopolitical entity (reporting) │
│ ESTAT │ DEMO_R_D2JAN │ -1 │ geo_level │ NUTS classification level
│ ESTAT │ DEMO_R_D2JAN │ 6 │ time_period │ Time
└─────────────┴──────────────┴──────────┴─────────────┴─────────────────────────────────┘
SELECT * FROM EUROSTAT_Read('ESTAT', 'DEMO_R_D2JAN') LIMIT 5;
┌─────────┬─────────┬─────────┬─────────┬─────────┬───────────┬─────────────┬───────────────────┐
│ freq │ unit │ sex │ age │ geo │ geo_level │ TIME_PERIOD │ observation_value │
varcharvarcharvarcharvarcharvarcharvarcharvarchar │ double │
├─────────┼─────────┼─────────┼─────────┼─────────┼───────────┼─────────────┼───────────────────┤
│ A │ NR │ F │ TOTAL │ AL │ country │ 20001526762.0
│ A │ NR │ F │ TOTAL │ AL │ country │ 20011535822.0
│ A │ NR │ F │ TOTAL │ AL │ country │ 20021532563.0
│ A │ NR │ F │ TOTAL │ AL │ country │ 20031526180.0
│ A │ NR │ F │ TOTAL │ AL │ country │ 20041520481.0
└─────────┴─────────┴─────────┴─────────┴─────────┴───────────┴─────────────┴───────────────────┘

Über eurostat

Dies ist eine DuckDB-Erweiterung zum Lesen von Daten aus der EUROSTAT-Datenbank mit SQL.

Eurostat ist das amtliche statistische Amt der Europäischen Union und zuständig für hochwertige, vergleichbare und harmonisierte Statistiken zu Europas Wirtschaft, Gesellschaft, Umwelt und weiteren Themen.

Eurostat entwickelt harmonisierte Definitionen, Klassifikationen und Methoden für die Erstellung europäischer amtlicher Statistiken in Zusammenarbeit mit den nationalen Statistikbehörden. Es berechnet Aggregatdaten für die Europäische Union und die Eurozone aus den von den nationalen Statistikbehörden nach den harmonisierten Standards erhobenen Daten. Eurostat stellt europäische Statistiken Entscheidungsträgern und Bürgern kostenlos über die Eurostat-Website, soziale Medien und andere Kanäle bereit.

Führen Sie die folgende Abfrage aus, um die verfügbaren Datenanbieter und ihre Beschreibungen zu sehen:

SELECT provider_id, organization, description FROM EUROSTAT_Endpoints();
┌─────────────┬──────────────┬──────────────────────────────────────────────────────┐
│ provider_id │ organization │ description
varcharvarcharvarchar
├─────────────┼──────────────┼──────────────────────────────────────────────────────┤
│ ECFIN │ DG ECFIN │ Economic and Financial Affairs │
│ EMPL │ DG EMPL │ Employment, Social Affairs and Inclusion │
│ ESTAT │ EUROSTAT │ EUROSTAT database
│ GROW │ DG GROW │ Internal Market, Industry, Entrepreneurship and SMEs │
│ TAXUD │ DG TAXUD │ Taxation and Customs Union
└─────────────┴──────────────┴──────────────────────────────────────────────────────┘

Jeder Anbieter hat mehrere Dataflows (Datensätze), die sich mit der folgenden Abfrage auflisten lassen:

SELECT * FROM EUROSTAT_Dataflows();
SELECT * FROM EUROSTAT_Dataflows(providers = ['ESTAT','ECFIN'], language := 'en');
--- You can also filter by specific dataflows:
SELECT
provider_id, dataflow_id, class, version, label
FROM
EUROSTAT_Dataflows(providers = ['ESTAT'], dataflows = ['DEMO_R_D2JAN'], language := 'de')
;
┌─────────────┬──────────────┬─────────┬─────────┬───────────────────────────────────────────────────────────────────┐
│ provider_id │ dataflow_id │ class │ version │ label │
varcharvarcharvarcharvarcharvarchar
├─────────────┼──────────────┼─────────┼─────────┼───────────────────────────────────────────────────────────────────┤
│ ESTAT │ DEMO_R_D2JAN │ dataset │ 1.0 │ Bevölkerung am 1. Januar nach Alter, Geschlecht und NUTS-2-Region │
└─────────────┴──────────────┴─────────┴─────────┴───────────────────────────────────────────────────────────────────┘

Informationen zur Datenstruktur eines EUROSTAT-Dataflows erhalten Sie mit der folgenden Abfrage:

SELECT
provider_id, dataflow_id, position, dimension, concept
FROM
EUROSTAT_DataStructure('ESTAT', 'DEMO_R_D2JAN', language := 'en')
;
┌─────────────┬──────────────┬──────────┬─────────────┬─────────────────────────────────┐
│ provider_id │ dataflow_id │ position │ dimension │ concept │
varcharvarchar │ int32 │ varcharvarchar
├─────────────┼──────────────┼──────────┼─────────────┼─────────────────────────────────┤
│ ESTAT │ DEMO_R_D2JAN │ 1 │ freq │ Time frequency │
│ ESTAT │ DEMO_R_D2JAN │ 2 │ unit │ Unit of measure │
│ ESTAT │ DEMO_R_D2JAN │ 3 │ sex │ Sex │
│ ESTAT │ DEMO_R_D2JAN │ 4 │ age │ Age class │
│ ESTAT │ DEMO_R_D2JAN │ 5 │ geo │ Geopolitical entity (reporting) │
│ ESTAT │ DEMO_R_D2JAN │ -1 │ geo_level │ NUTS classification level
│ ESTAT │ DEMO_R_D2JAN │ 6 │ time_period │ Time
└─────────────┴──────────────┴──────────┴─────────────┴─────────────────────────────────┘

Zum Lesen der Daten eines EUROSTAT-Dataflows führen Sie aus:

SELECT * FROM EUROSTAT_Read('ESTAT', 'DEMO_R_D2JAN') LIMIT 5;
┌─────────┬─────────┬─────────┬─────────┬─────────┬───────────┬─────────────┬───────────────────┐
│ freq │ unit │ sex │ age │ geo │ geo_level │ TIME_PERIOD │ observation_value │
varcharvarcharvarcharvarcharvarcharvarcharvarchar │ double │
├─────────┼─────────┼─────────┼─────────┼─────────┼───────────┼─────────────┼───────────────────┤
│ A │ NR │ F │ TOTAL │ AL │ country │ 20001526762.0
│ A │ NR │ F │ TOTAL │ AL │ country │ 20011535822.0
│ A │ NR │ F │ TOTAL │ AL │ country │ 20021532563.0
│ A │ NR │ F │ TOTAL │ AL │ country │ 20031526180.0
│ A │ NR │ F │ TOTAL │ AL │ country │ 20041520481.0
└─────────┴─────────┴─────────┴─────────┴─────────┴───────────┴─────────────┴───────────────────┘

Die Erweiterung unterstützt das Pushdown von T-SQL-Filtern auf Dimensionen; diese werden kodiert und an die EUROSTAT-API gesendet, um die Daten zu filtern, bevor sie in DuckDB geladen werden.

Die EUROSTAT-API unterstützt das Filtern von Dimensionen nur mit Gleichheitsbedingungen (z. B. WHERE geo = 'DE') oder IN-Bedingungen (z. B. WHERE geo IN ('DE', 'FR')). Andere Filterarten (z. B. WHERE geo LIKE 'D%') werden nicht unterstützt und nach dem Laden der Daten lokal in DuckDB ausgewertet.

Zeitfilter (z. B. WHERE time_period >= '2000' AND time_period <= '2010') werden ebenfalls unterstützt und als Bereichsfilter in der EUROSTAT-API kodiert.

Hinzugefügte Funktionen

function_name function_type description comment examples
EUROSTAT_GetGeoLevelFromGeoCode scalar Returns the level for a GEO code in the NUTS classification or if it is considered aggregates. NULL [SELECT EUROSTAT_GetGeoLevelFromGeoCode(‘PT’);]
EUROSTAT_Dataflows table Returns info of the dataflows provided by EUROSTAT Providers. NULL [SELECT * FROM EUROSTAT_Dataflows(providers = [‘ESTAT’], dataflows = [‘DEMO_R_D2JAN’], language := ‘de’);]
EUROSTAT_Endpoints table Returns the list of supported EUROSTAT API Endpoints. NULL [SELECT provider_id, organization, description FROM EUROSTAT_Endpoints();]
EUROSTAT_DataStructure table Returns information of the data structure of an EUROSTAT Dataflow. NULL [SELECT * FROM EUROSTAT_DataStructure(‘ESTAT’, ‘DEMO_R_D2JAN’, language := ‘en’);]
EUROSTAT_Read table Returns the dataset of an EUROSTAT Dataflow. NULL [SELECT * FROM EUROSTAT_Read(‘ESTAT’, ‘DEMO_R_D2JAN’) LIMIT 5;]
EUROSTAT_DataDictionary table NULL NULL NULL

Überladene Funktionen

Diese Erweiterung fügt keine Funktionsüberladungen hinzu.

Hinzugefügte Typen

Diese Erweiterung fügt keine Typen hinzu.

Hinzugefügte Einstellungen

Diese Erweiterung fügt keine Einstellungen hinzu.