Oktatóanyag: Adattavak feltárása és elemzése kiszolgáló nélküli SQL-készlettel
Ebben az oktatóanyagban megtudhatja, hogyan végezhet feltáró adatelemzést meglévő nyitott adatkészletek használatával, tárterület-beállítás nélkül. Különböző Azure Open-adatkészleteket kombinálhat kiszolgáló nélküli SQL-készlet használatával. Ezután az eredményeket az Azure Synapse Analyticshez készült Synapse Studióban jelenítheti meg.
Az oktatóanyag során az alábbi lépéseket fogja végrehajtani:
- A beépített kiszolgáló nélküli SQL-készlet elérése
- Azure Open Datasets elérése oktatóanyag-adatok használatához
- Alapszintű adatelemzés végrehajtása AZ SQL használatával
A kiszolgáló nélküli SQL-készlet elérése
Minden munkaterülethez tartozik egy előre konfigurált kiszolgáló nélküli SQL-készlet, amelyet beépítettnek nevezünk. A hozzáféréshez:
- Nyissa meg a munkaterületet, és válassza a Fejlesztési központot.
- Válassza az + Új erőforrás hozzáadása gombot."
- Válassza az SQL-szkriptet.
Ezzel a szkripttel anélkül vizsgálhatja meg az adatokat, hogy le kellene foglalnia az SQL-kapacitást.
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Az oktatóanyag adatainak elérése
Az oktatóanyagban használt összes adat az azureopendatastorage tárfiókban található, amely az Azure Open Datasets-et tárolja a nyílt használatra az ilyen oktatóanyagokban. Az összes szkriptet futtathatja közvetlenül a munkaterületről, amíg a munkaterület hozzáfér egy nyilvános hálózathoz.
Ez az oktatóanyag egy Adatkészletet használ a New York City (NYC) Taxiról:
- Pick-up és drop-off dátumok és időpontok
- Pick-up és drop-off helyek
- Utazási távolságok
- Tételes viteldíjak
- Díjtípusok
- Kifizetéstípusok
- Vezető által jelentett utasok száma
A OPENROWSET(BULK...)
függvény lehetővé teszi a fájlok elérését az Azure Storage-ban. [OPENROWSET](develop-openrowset.md)
Beolvassa egy távoli adatforrás( például egy fájl) tartalmát, és sorhalmazként adja vissza a tartalmat.
Az NYC Taxi adatainak megismeréséhez futtassa a következő lekérdezést:
SELECT TOP 100 * FROM
OPENROWSET(
BULK 'https://azureopendatastorage.blob.core.windows.net/nyctlc/yellow/puYear=*/puMonth=*/*.parquet',
FORMAT='PARQUET'
) AS [nyc]
Egyéb akadálymentes adatkészletek
Hasonlóképpen az ünnepnapok adatkészletét is lekérdezheti a következő lekérdezéssel:
SELECT TOP 100 * FROM
OPENROWSET(
BULK 'https://azureopendatastorage.blob.core.windows.net/holidaydatacontainer/Processed/*.parquet',
FORMAT='PARQUET'
) AS [holidays]
Az időjárási adathalmazt az alábbi lekérdezéssel is lekérdezheti:
SELECT
TOP 100 *
FROM
OPENROWSET(
BULK 'https://azureopendatastorage.blob.core.windows.net/isdweatherdatacontainer/ISDWeather/year=*/month=*/*.parquet',
FORMAT='PARQUET'
) AS [weather]
Az egyes oszlopok jelentéséről az adathalmazok leírásában olvashat bővebben:
Automatikus sémakövetkeztetés
Mivel az adatok Parquet-fájlformátumban tárolódnak, az automatikus sémakövetkeztetés elérhető. Az adatokat anélkül kérdezheti le, hogy felsorolja a fájlok összes oszlopának adattípusát. A virtuális oszlop mechanizmusát és a függvényt is használhatja a filepath
fájlok egy bizonyos részhalmazának szűréséhez.
Feljegyzés
Az alapértelmezett rendezés a következő SQL_Latin1_General_CP1_CI_ASIf
: . Nem alapértelmezett rendezés esetén vegye figyelembe a kis- és nagybetűk érzékenységét.
Ha az oszlopok megadásakor kis- és nagybetűk megkülönböztetésével rendelkező adatbázist hoz létre, ügyeljen arra, hogy az oszlop helyes nevét használja.
Az oszlopnév tpepPickupDateTime
helyes lenne, de tpeppickupdatetime
nem alapértelmezett rendezés esetén nem működne.
Idősor, szezonalitás és kiugró elemzés
A taxijáratok éves számát az alábbi lekérdezéssel összegzheti:
SELECT
YEAR(tpepPickupDateTime) AS current_year,
COUNT(*) AS rides_per_year
FROM
OPENROWSET(
BULK 'https://azureopendatastorage.blob.core.windows.net/nyctlc/yellow/puYear=*/puMonth=*/*.parquet',
FORMAT='PARQUET'
) AS [nyc]
WHERE nyc.filepath(1) >= '2009' AND nyc.filepath(1) <= '2019'
GROUP BY YEAR(tpepPickupDateTime)
ORDER BY 1 ASC
Az alábbi kódrészlet a taxijáratok éves számának eredményét mutatja be:
Az adatok megjeleníthetők a Synapse Studióban a Táblázat nézetről a Diagram nézetre való váltással. Különböző diagramtípusok közül választhat, például Terület, Sáv, Oszlop, Vonal, Kör és Pont. Ebben az esetben ábrázolja az Oszlop diagramot a Kategória oszlop current_year:
Ebből a vizualizációból látható, hogy az évek során csökken a menetszámok száma. Ez a csökkenés feltehetően a ride-sharing cégek nemrég megnövekedett népszerűségének köszönhető.
Feljegyzés
Az oktatóanyag írásakor a 2019-beli adatok hiányosak. Ennek eredményeképpen az adott évben hatalmas csökkenés tapasztalható az utazások számában.
Az elemzést egyetlen évre, például 2016-ra összpontosíthatja. Az alábbi lekérdezés az adott év során a túrák napi számát adja vissza:
SELECT
CAST([tpepPickupDateTime] AS DATE) AS [current_day],
COUNT(*) as rides_per_day
FROM
OPENROWSET(
BULK 'https://azureopendatastorage.blob.core.windows.net/nyctlc/yellow/puYear=*/puMonth=*/*.parquet',
FORMAT='PARQUET'
) AS [nyc]
WHERE nyc.filepath(1) = '2016'
GROUP BY CAST([tpepPickupDateTime] AS DATE)
ORDER BY 1 ASC
Az alábbi kódrészlet a lekérdezés eredményét jeleníti meg:
Az adatokat úgy is megjelenítheti, hogy az Oszlopdiagramot a Kategória oszlop current_day, a Jelmagyarázat (adatsor) oszlopot pedig rides_per_day értékre állítja.
A diagramon egy heti minta látható, a szombatok pedig a csúcsnapok. A nyári hónapokban a nyaralások miatt kevesebb taxival járnak. Is, figyelje meg néhány jelentős csökkenése a taxi túrák száma nélkül egyértelmű mintát, hogy mikor és miért fordulnak elő.
Következő lépésként ellenőrizze, hogy az utazások csökkenése összefügg-e a munkaszüneti napokkal. Ellenőrizze, hogy van-e korreláció az NYC Taxi rides adathalmazhoz való csatlakozással az ünnepnapok adatkészletével:
WITH taxi_rides AS (
SELECT
CAST([tpepPickupDateTime] AS DATE) AS [current_day],
COUNT(*) as rides_per_day
FROM
OPENROWSET(
BULK 'https://azureopendatastorage.blob.core.windows.net/nyctlc/yellow/puYear=*/puMonth=*/*.parquet',
FORMAT='PARQUET'
) AS [nyc]
WHERE nyc.filepath(1) = '2016'
GROUP BY CAST([tpepPickupDateTime] AS DATE)
),
public_holidays AS (
SELECT
holidayname as holiday,
date
FROM
OPENROWSET(
BULK 'https://azureopendatastorage.blob.core.windows.net/holidaydatacontainer/Processed/*.parquet',
FORMAT='PARQUET'
) AS [holidays]
WHERE countryorregion = 'United States' AND YEAR(date) = 2016
),
joined_data AS (
SELECT
*
FROM taxi_rides t
LEFT OUTER JOIN public_holidays p on t.current_day = p.date
)
SELECT
*,
holiday_rides =
CASE
WHEN holiday is null THEN 0
WHEN holiday is not null THEN rides_per_day
END
FROM joined_data
ORDER BY current_day ASC
Emelje ki a tömegközlekedési utak számát a munkaszüneti napokon. Ehhez válassza a Kategória oszlop current_day, rides_per_day és holiday_rides jelmagyarázat (sorozat) oszlopként.
A diagramon látható, hogy ünnepnapokon a taxiutak száma alacsonyabb. Január 23-án még mindig van egy megmagyarázhatatlan nagy visszaesés. Ellenőrizzük az adott napon az NYC időjárását a Weather Dataset lekérdezésével:
SELECT
AVG(windspeed) AS avg_windspeed,
MIN(windspeed) AS min_windspeed,
MAX(windspeed) AS max_windspeed,
AVG(temperature) AS avg_temperature,
MIN(temperature) AS min_temperature,
MAX(temperature) AS max_temperature,
AVG(sealvlpressure) AS avg_sealvlpressure,
MIN(sealvlpressure) AS min_sealvlpressure,
MAX(sealvlpressure) AS max_sealvlpressure,
AVG(precipdepth) AS avg_precipdepth,
MIN(precipdepth) AS min_precipdepth,
MAX(precipdepth) AS max_precipdepth,
AVG(snowdepth) AS avg_snowdepth,
MIN(snowdepth) AS min_snowdepth,
MAX(snowdepth) AS max_snowdepth
FROM
OPENROWSET(
BULK 'https://azureopendatastorage.blob.core.windows.net/isdweatherdatacontainer/ISDWeather/year=*/month=*/*.parquet',
FORMAT='PARQUET'
) AS [weather]
WHERE countryorregion = 'US' AND CAST([datetime] AS DATE) = '2016-01-23' AND stationname = 'JOHN F KENNEDY INTERNATIONAL AIRPORT'
A lekérdezés eredményei azt jelzik, hogy a taxis utak számának csökkenése a következő ok miatt történt:
- Volt egy hóvihar ezen a napon a NYC-ben a nagy hó (~30 cm).
- Hideg volt (a hőmérséklet nulla Celsius fok alatt volt).
- Szeles volt (~10 m/s).
Ez az oktatóanyag bemutatja, hogy az adatelemzők hogyan végezhetnek gyorsan feltáró adatelemzést. A különböző adathalmazokat kiszolgáló nélküli SQL-készlet használatával kombinálhatja, és az eredményeket az Azure Synapse Studióval jelenítheti meg.
Kapcsolódó tartalom
A kiszolgáló nélküli SQL-készlet Power BI Desktophoz való csatlakoztatásáról és jelentések létrehozásáról a Kiszolgáló nélküli SQL-készlet csatlakoztatása a Power BI Desktophoz és jelentések létrehozása című témakörben olvashat.
A külső táblák kiszolgáló nélküli SQL-készletben való használatának megismeréséhez lásd : Külső táblák használata a Synapse SQL-sel