Megosztás:


Csatlakozások használata az Azure Databricksben

A Databricks támogatja az ANSI standard illesztési szintaxisát. Ez a cikk a köteg- és streamfeldolgozási illesztések közötti különbségeket ismerteti.

Feljegyzés

A Databricks emellett támogatja a UNION, INTERSECTés EXCEPThalmazműveletek standard szintaxisát. Lásd: Operátorok beállítása.

A streamelés és a kötegcsatlakozások közötti különbségek

Az Azure Databrickshez való csatlakozások állapotalapúak vagy állapot nélküliek.

Minden kötegcsatlakozás állapot nélküli illesztés. Az eredmények azonnal feldolgozásra kerülnek, és a lekérdezés futtatásakor tükrözik az adatokat. A lekérdezés minden végrehajtásakor a rendszer a megadott forrásadatok alapján számítja ki az új eredményeket. Lásd Batch-illesztések.

A két streamelési adatforrás közötti illesztések állapotalapúak. Állapotalapú illesztések esetén az Azure Databricks nyomon követi az adatforrásokkal és az eredményekkel kapcsolatos információkat, és iteratív módon frissíti az eredményeket. Az állapotalapú illesztések hatékony megoldásokat nyújthatnak az online adatfeldolgozáshoz, de hatékonyan nehezen implementálhatók. A kimeneti módtól, a triggerintervallumtól és a vízjeltől függően összetett működési szemantikával rendelkeznek. Tekintse meg a Stream-stream illesztések című témakört.

A stream-statikus illesztések állapot nélküliek, de jó lehetőséget nyújtanak növekményes adatforrások (például ténytáblák) statikus adatforráshoz (például lassan változó dimenziós táblázathoz) való csatlakoztatásához. Ahelyett, hogy minden egyes lekérdezés végrehajtásakor mindkét oldalról csatlakozna az összes rekordhoz, csak a streamforrásból újonnan kapott rekordok lesznek összekapcsolva a statikus tábla aktuális verziójával. Lásd: Stream-statikus illesztések.

Batch-illesztések

Az Azure Databricks támogatja a szabványos SQL-illesztési szintaxist, beleértve a belső, külső, félig, anti és kereszt illesztéseket. Lásd: JOIN.

Feljegyzés

A Databricks egy materializált nézet használatát javasolja a belső illesztés eredményeinek növekményes számításának optimalizálásához. Lásd Materializált nézetek.

Stream-stream illesztések

Két streamelési adatforrás csatlakoztatása jelentős kihívást jelenthet az állapotinformációk kezelése és az eredmények számításával és kimenetével kapcsolatos érvelés terén. A Stream-stream illesztés implementálása előtt a Databricks azt javasolja, hogy az állapotalapú streamelés operatív szemantikájának alapos ismerete legyen, beleértve azt is, hogy a vízjelek hogyan befolyásolják az állapotkezelést. Tekintse meg az alábbi cikkeket:

A Databricks azt javasolja, hogy minden stream-stream csatlakozás mindkét oldalához adjon meg vízjeleket. A következő illesztéstípusok támogatottak:

  • Belső illesztések
  • Bal oldali külső illesztések
  • Jobb oldali külső illesztések
  • Teljes külső illesztések
  • Bal oldali félillesztések

Tekintse meg az Apache Spark strukturált streamelési dokumentációját a stream-stream illesztésekről.

Stream-statikus csatlakozások

Feljegyzés

A stream-statikus illesztések leírt viselkedése feltételezi, hogy a statikus adatok tárolása a Delta Lake használatával történik.

A stream-statikus illesztések állapot nélküli illesztés használatával csatlakoztatják a Delta-tábla legújabb érvényes verzióját (a statikus adatokat) egy adatfolyamhoz.

Amikor az Azure Databricks stream-statikus illesztésben dolgoz fel egy mikroköteget, a statikus Delta-tábla adatainak legújabb érvényes verziója csatlakozik az aktuális mikrokötegben található rekordokkal. Mivel az illesztés állapot nélküli, nem kell konfigurálnia a vízjelezést, és alacsony késéssel tudja feldolgozni az eredményeket. Az illesztésben használt statikus Delta tábla adatainak lassan kell változnia.

Az alábbi példa ezt a mintát mutatja be:

streamingDF = spark.readStream.table("orders")
staticDF = spark.read.table("customers")

query = (streamingDF
  .join(staticDF, streamingDF.customer_id==staticDF.id, "inner")
  .writeStream
  .option("checkpointLocation", checkpoint_path)
  .table("orders_with_customer_info")
)

Csatlakozási tippek az Azure Databrickshez

Az Apache Spark támogatja az illesztési tippek megadását a tartományillesztésekhez és a ferde illesztésekhez. A ferde illesztésekre vonatkozó tippekre nincs szükség, mivel az Azure Databricks automatikusan optimalizálja ezeket az illesztéseket. Lásd: Tippek

A tartományillesztésekre vonatkozó útmutatások hasznosak lehetnek, ha az illesztési teljesítmény gyenge, és egyenlőtlenségi csatolásokat végez. Ilyenek például az időbélyeg-tartományokhoz való csatlakozás vagy a fürtözési azonosítók tartománya. Tekintse meg a tartományillesztés optimalizálását és az illesztési teljesítmény optimalizálását az Azure Databricksben.