Fejlesztési nyelv kiválasztása

A Databricks támogatja a különböző programozási nyelvek használatát a fejlesztéshez és az adatfeldolgozáshoz. Ez a cikk ismerteti a rendelkezésre álló lehetőségeket, amelyekben ezek a nyelvek használhatók, valamint azok korlátait.

Ajánlások

A Databricks új projektekhez ajánlja a Pythont és az SQL-t:

  • Python egy nagyon népszerű általános célú programozási nyelv. A PySpark DataFrame-ek megkönnyítik a tesztelhető, moduláris átalakításokat. A Python-ökoszisztéma a kódtárak széles körét is támogatja a megoldás kiterjesztéséhez.
  • SQL nagyon népszerű nyelv a relációs adathalmazok kezeléséhez és módosításához olyan műveletek végrehajtásával, mint az adatok lekérdezése, frissítése, beszúrása és törlése. Az SQL akkor jó választás, ha a háttér elsősorban adatbázisokban vagy adattárházakban található. Az SQL a Pythonba is beágyazható spark.sqlhasználatával.

A következő nyelvek támogatottsága korlátozott, ezért a Databricks nem javasolja őket új adatmérnöki projektekhez:

  • Scala az Apache Spark™ fejlesztéséhez használt nyelv.
  • R csak a Databricks-jegyzetfüzetekben támogatott.

A nyelvi támogatás az adatfolyamok és egyéb megoldások készítéséhez használt funkcióktól függően változik. A Lakeflow-folyamatok például támogatják a Python és az SQL használatát, míg a munkafolyamatok lehetővé teszik adatfolyamok létrehozását Python, SQL, Scala és Java használatával.

Jegyzet

Más nyelvek is használhatók a Databricks használatával az adatok lekérdezéséhez vagy adatátalakításokhoz. Ezek az interakciók azonban elsősorban a külső rendszerekkel való integráció kontextusában vannak. Ezekben az esetekben a fejlesztők szinte bármilyen programozási nyelvet használhatnak a Databricks Databricks REST API-, ODBC/JDBC-illesztőprogramok, a Databricks SQL-összekötő támogatás ával (Go, Python, Javascript/Node.js), vagy olyan nyelvekre, amelyek Spark Connect- implementációkkal rendelkeznek, mint például a Go és a Rust.

Munkaterület-fejlesztés és helyi fejlesztés

Adatprojekteket és folyamatokat a Databricks-munkaterület vagy egy IDE (integrált fejlesztési környezet) használatával fejleszthet a helyi gépen, de ajánlott új projekteket elindítani a Databricks-munkaterületen. A munkaterület webböngészővel érhető el, egyszerű hozzáférést biztosít a Unity Catalog adataihoz, és támogatja az olyan hatékony hibakeresési képességeket és funkciókat, mint a Genie Code.

Kód fejlesztése a Databricks-munkaterületen a Databricks-jegyzetfüzetek vagy az SQL-szerkesztő használatával. A Databricks-jegyzetfüzetek több programozási nyelvet is támogatnak ugyanazon a jegyzetfüzeten belül, így a Python, az SQL és a Scala használatával fejleszthetők.

A kód közvetlenül a Databricks-munkaterületen történő fejlesztésének számos előnye van:

  • A visszajelzési ciklus gyorsabb. Az írott kódot azonnal tesztelheti valós adatokon.
  • A beépített, környezettudatos Genie Code felgyorsíthatja a fejlesztést, és segíthet a problémák megoldásában.
  • A jegyzetfüzeteket és lekérdezéseket egyszerűen ütemezheti közvetlenül a Databricks-munkaterületről.
  • A Python-fejlesztéshez megfelelően strukturálhatja a Python-kódot úgy, hogy a munkaterületen lévő fájlokat Python-csomagként használja.

Az IDE-ben azonban a helyi fejlesztés a következő előnyöket nyújtja:

  • Az IDE-k jobb eszközökkel rendelkeznek a szoftverprojektekhez, mint például a navigáció, a kód újrastrukturálása és a statikus kódelemzés.
  • Kiválaszthatja, hogyan szabályozhatja a forrást, és ha Gitet használ, a speciálisabb funkciók helyileg is elérhetők, mint a Git-mappákkal rendelkező munkaterületen.
  • A támogatott nyelvek szélesebb köre áll rendelkezésre. Létrehozhat például kódot a Java használatával, és JAR-feladatként helyezheti üzembe.
  • Korszerűbb támogatás érhető el a kódhibák kereséséhez.
  • Az egységtesztek használata jobban támogatott.

Példa nyelvválasztásra

Az adatmérnöki nyelv kiválasztása a következő döntési fával történik:

Adatmérnöki nyelvi döntési fa

Python-kód fejlesztése

A Python nyelv első osztályú támogatást nyújt a Databricksben. Használhatja Databricks notebookokban, Lakeflow-folyamatokban és -munkafolyamatokban, UDF-eket fejleszthet vele, valamint Python-szkriptként és wheel csomagként is telepítheti.

Ha Python-projekteket fejleszt a Databricks-munkaterületen, akár jegyzetfüzetekként, akár fájlokban, a Databricks olyan eszközöket biztosít, mint a kódkiegészítés, a navigáció, a szintaxis érvényesítése, a Genie Code használatával történő kódlétrehozás, az interaktív hibakeresés stb. A kifejlesztett kód végrehajtható interaktívan, Databricks-munkafolyamatként vagy Lakeflow-folyamatként, vagy akár a Unity Catalog függvényeként is. A kód strukturálásához feloszthatja különálló Python-csomagokra, amelyek ezután több folyamatban vagy feladatban is használhatók.

A Databricks bővítményt biztosít a Visual Studio Code számára, a JetBrains pedig egy beépülő modult kínál a PyCharm számára, amely lehetővé teszi Python-kód fejlesztését egy IDE-ben, kódot szinkronizálhat egy Databricks-munkaterületre, végrehajthatja azt a munkaterületen belül, és részletes hibakeresést végezhet Databricks Connecthasználatával. A kifejlesztett kód ezután a Deklaratív Automation-csomagok használatával telepíthető Databricks-feladatként vagy -folyamatként.

SQL-kód fejlesztése

Az SQL-nyelv a Databricks-jegyzetfüzetekben vagy Databricks-lekérdezésekként is használható az SQL-szerkesztő használatával. A fejlesztők mindkét esetben hozzáférhetnek az olyan eszközökhöz, mint a kódkiegészítés, valamint a környezettudatos Genie Code, amely kódgeneráláshoz és problémák megoldásához használható. A kifejlesztett kód üzembe helyezhető feladatként vagy folyamatként.

A Databricks-munkafolyamatok lehetővé teszik a fájlban tárolt SQL-kód végrehajtását is. Ide használatával létrehozhatja ezeket a fájlokat, és feltöltheti őket a munkaterületre. Az SQL másik népszerű használata az dbt (adatösszeépítési eszköz)használatával fejlesztett adatmérnöki folyamatokban. A Databricks-munkafolyamatok támogatják a dbt-projektek vezénylését.

Scala-kód fejlesztése

A Scala az Apache Spark™ eredeti nyelve. Ez egy hatékony nyelv, de meredek tanulási görbével rendelkezik. Bár a Scala támogatott nyelv a Databricks-jegyzetfüzetekben, a Scala-osztályok és -objektumok létrehozásának és karbantartásának néhány korlátozása megnehezítheti az összetett folyamatok fejlesztését. Az IDE-k általában jobb támogatást biztosítanak a Scala-kód fejlesztéséhez, amelyet aztán JAR-feladatokkal lehet üzembe helyezni a Databricks-munkafolyamatokban.

További erőforrások