Megosztás:


Adatmodellezés

Ez a cikk az Azure Databricks adatmodellezésével kapcsolatos szempontokat, kifogásokat és javaslatokat mutat be. Olyan felhasználókra irányul, akik új táblákat vagy ETL-számítási feladatokat hoznak létre, különös hangsúlyt fektetve az Azure Databricks olyan viselkedéseinek megértésére, amelyek befolyásolják a nyers adatok új adatmodellekké való átalakítását. Az adatmodellezési döntések attól függenek, hogy a szervezet és a számítási feladatok hogyan használják a táblákat. A választott adatmodell hatással van a lekérdezési teljesítményre, a számítási költségekre és a tárolási költségekre. Ez magában foglalja az Azure Databricks adatbázis-tervezésének alapfogalmait.

Fontos

Ez a cikk kizárólag a Delta Lake által támogatott táblákra vonatkozik, amelyek tartalmazzák az összes Unity Catalog által felügyelt táblát.

Az Azure Databricks használatával más külső adatforrásokat is lekérdezhet, beleértve a Lakehouse Federationben regisztrált táblákat is. Minden külső adatforrás különböző korlátozásokkal, szemantikával és tranzakciós garanciával rendelkezik. Lásd: Lekérdezési adatok.

Adatbázis-kezelési fogalmak

Az Azure Databricks-lel készült lakehouse számos összetevőt és fogalmat oszt meg más nagyvállalati adattárházrendszerekkel. Az adatmodell tervezése során vegye figyelembe az alábbi fogalmakat és funkciókat.

Tranzakciók az Azure Databricksben

Az Azure Databricks a tranzakciókat az egyes táblákra terjed ki. Ez azt jelenti, hogy az Azure Databricks nem támogatja a több táblára vonatkozó utasításokat (más néven többutas tranzakciókat).

Az adatmodellezési számítási feladatok esetében ez azt jelenti, hogy több független tranzakciót kell végrehajtani egy forrásrekord betöltésekor, és sorokat kell beszúrni vagy frissíteni két vagy több táblába. Ezek a tranzakciók sikeresek vagy sikertelenek lehetnek más tranzakcióktól függetlenül, és az alsóbb rétegbeli lekérdezéseknek tolerálni kell az állapoteltérést a sikertelen vagy késleltetett tranzakciók miatt.

Elsődleges és idegen kulcsok az Azure Databricksben

Az elsődleges és idegen kulcsok tájékoztató jellegűek, és nem kényszeríthetők ki. Ez a modell sok vállalati felhőalapú adatbázisrendszerben gyakori, de különbözik a hagyományos relációs adatbázisrendszerektől. Lásd : Az Azure Databricks korlátozásai.

Csatlakozások az Azure Databrickshez

Az illesztések bármilyen adatbázis-kialakításban okozhatnak feldolgozási szűk keresztmetszeteket. Az Azure Databricksen végzett adatok feldolgozásakor a lekérdezésoptimalizáló az illesztések tervének optimalizálására törekszik, de nehézségekbe ütközhet, ha egy adott lekérdezésnek több táblából származó eredményeket kell összekapcsolnia. Az optimalizáló akkor is kihagyhatja a táblák rekordjait, ha a szűrőparaméterek egy másik tábla mezőiben találhatók, ami teljes táblavizsgálatot eredményezhet.

Lásd: Csatlakozások használata az Azure Databricksben.

Feljegyzés

A materializált nézetek használatával növekményesen kiszámíthatja egyes illesztési műveletek eredményeit, más illesztések azonban nem kompatibilisek a materializált nézetekkel. Lásd Materialized views.

Beágyazott és összetett adattípusok használata

Az Azure Databricks támogatja a részben strukturált adatforrások, például a JSON, az Avro és a ProtoBuff használatát, valamint összetett adatok strukturált, JSON-sztringként, valamint térképekként és tömbökként való tárolását. Lásd a modell félig strukturált adatait.

Normalizált adatmodellek

Az Azure Databricks bármilyen adatmodellel jól működik. Ha van egy meglévő adatmodellje, amelyet le kell kérdeznie az Azure Databricksből vagy át kell migrálnia az Azure Databricksbe, az adatok újratervezése előtt ki kell értékelnie a teljesítményt.

Ha új lakehouse-t hoz létre, vagy adathalmazokat ad hozzá egy meglévő környezethez, az Azure Databricks azt javasolja, hogy ne használjon erősen normalizált modellt, például harmadik normál formát (3NF).

Az olyan modellek, mint a csillagséma vagy a hópehelyséma, jól teljesítenek az Azure Databricksben, mivel a standard lekérdezésekben kevesebb illesztés található, és kevesebb kulcs van a szinkronban. Emellett, ha több adatmező van egyetlen táblában, a lekérdezésoptimalizáló nagy mennyiségű adatot hagyhat ki fájlszintű statisztikák használatával. Az adatkiugrásról további információt az Adatkiugrás című témakörben talál.