Synapse-jegyzetfüzetek létrehozása, fejlesztése és karbantartása a Azure Synapse Analytics

A Synapse-jegyzetfüzetek olyan webes felületek, amelyek élő kódot, vizualizációkat és narratív szöveget tartalmazó fájlokat hoznak létre. A jegyzetfüzetekkel remek ötleteket lehet érvényesíteni, és gyors kísérletekkel elemzéseket lehet kihozni az adatokból. A jegyzetfüzeteket széles körben használják adat-előkészítéshez, adatvizualizációhoz, gépi tanuláshoz és más big data-forgatókönyvekhez is.

A Synapse-jegyzetfüzetekkel a következőre van képes:

  • Első lépések beállítás nélkül.
  • A beépített vállalati biztonsági funkciókkal biztonságban tarthatja az adatokat.
  • Elemezheti az adatokat nyers formátumokban (CSV, txt, JSON stb.), feldolgozott fájlformátumokban (parquet, Delta Lake, ORC stb.SQL), valamint táblázatos adatfájlokban a Spark és SQL.
  • Hatékony munkavégzés fejlett szerzői képességekkel és beépített adatvizualizációval.

Ez a cikk a jegyzetfüzetek használatát ismerteti a Synapse Studio.

Az új jegyzetfüzet-felhasználói élmény előzetes verziója

A Synapse csapata az új jegyzetfüzet-összetevőt a Synapse Studio-be, hogy egységes notebookélményt biztosítson a Microsoft-ügyfelek számára, és maximalizálja a felderíthetőséget, a hatékonyságot, a megosztást és az együttműködést. Az új jegyzetfüzet-felhasználói élmény előzetes verzióként érhető el. A bekapcsoláshoz jelölje be az Előzetes verziójú funkciók gombot a jegyzetfüzet eszköztárán. Az alábbi táblázat a meglévő (úgynevezett "klasszikus notebook") jegyzetfüzetek és az új előzetes verziójú jegyzetfüzetek funkció-összehasonlítását rögzíti.

Szolgáltatás Klasszikus jegyzetfüzet Jegyzetfüzet előnézete
%run (%run) Nem támogatott
%history Nem támogatott
%load (%load) Nem támogatott
<a0/3/2 Nem támogatott
Cella áthelyezése húzással Nem támogatott
Körvonal (tartalomjegyzék) Nem támogatott
Változókezelő Nem támogatott
Szövegcella formázása eszköztárgombokkal Nem támogatott.
Kódcella megjegyzése Nem támogatott

Megjegyzés

A változókezelő csak a Pythont támogatja.

Jegyzetfüzet létrehozása

Jegyzetfüzetet kétféleképpen hozhat létre. Létrehozhat egy új jegyzetfüzetet, vagy importálhat egy meglévő jegyzetfüzetet egy Synapse-munkaterületre a Object Explorer. A Synapse-jegyzetfüzetek felismerik Jupyter Notebook IPYNB-fájlok szabványos fájljait.

Képernyőkép az új vagy importált jegyzetfüzet létrehozásáról

Jegyzetfüzetek fejlesztése

A jegyzetfüzetek cellákból állnak, amelyek különálló kód- vagy szövegblokkok, amelyek egymástól függetlenül vagy csoportként futtathatók.

A jegyzetfüzetek fejlesztéséhez a következő műveleteket biztosítjuk:

Cella hozzáadása

Új cellát többféleképpen is hozzáadhat a jegyzetfüzethez.

  1. Bontsa ki a bal felső + Cella gombot, és válassza a Kódcella hozzáadása vagy a Szövegcella hozzáadása lehetőséget.

    Képernyőkép az add-cell-with-cell-button (cella hozzáadása cellával) gombról

  2. Vigye a kurzort a két cella közötti tér fölé, és válassza a Kód hozzáadása vagy a Szöveg hozzáadása lehetőséget.

    Képernyőkép az add-cell-between-space (Cella hozzáadása szóköz között) képernyőről

  3. A Parancs módban használja a Billentyűparancsokat. Nyomja le az A billentyűt egy cella beszúrása az aktuális cella fölé. Nyomja le a B billentyűt egy cella beszúrása az aktuális cella alá.

Elsődleges nyelv beállítása

A Synapse-jegyzetfüzetek négy Apache Spark támogatnak:

  • PySpark (Python)
  • Spark (Scala)
  • Spark SQL
  • .NET Spark (C#)

Az új hozzáadott cellák elsődleges nyelvét a felső parancssáv legördülő listájából állíthatja be.

Képernyőkép a default-synapse-language nyelvről

Több nyelv használata

Egy jegyzetfüzetben több nyelvet is használhat, ha a megfelelő nyelvi varázsparancsot adja meg egy cella elején. Az alábbi táblázat a cellanyelvek közötti váltáshoz használt varázsparancsokat sorolja fel.

Magic parancs Nyelv Description
<a0/3/300;pyspark Python Python-lekérdezés végrehajtása Spark-környezetben.
<a0//3/- Scala Hajtson végre egy Scala-lekérdezést a Spark-környezetben.
©sql SparkSQL SparkSQL-lekérdezés végrehajtása a Spark-környezeten.
<a0/3/*csharp<a2/ .NET a Spark C-hez # .NET-lekérdezés végrehajtása Spark C#-lekérdezéshez a Spark-környezetben.

Az alábbi képen egy példa látható arra, hogyan írhat PySpark-lekérdezést a spark(pyspark magic) paranccsal vagy egy SparkSQL-lekérdezéssel a Spark(Scala) jegyzetfüzetben található .sql magic paranccsal. Figyelje meg, hogy a notebook elsődleges nyelve pySpark.

Képernyőkép a Synapse Spark magic parancsairól

%%scala val scalaDataFrame = spark.read.sqlanalytics(&quot;mySQLPoolDatabase.dbo.mySQLPoolTable") scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
  • A 2. cellában lekérdezheti az adatokat a Spark SQL.

    %%sql
    SELECT * FROM mydataframetable
    
  • A 3. cellában használja a PySparkban lévő adatokat.

    %%pyspark
    myNewPythonDataFrame = spark.sql("SELECT * FROM mydataframetable")
    
  • IDE-stílusú IntelliSense

    A Synapse-jegyzetfüzetek integrálva vannak a Monaco szerkesztővel, hogy IDE-stílusú IntelliSense-t hozzanak a cellaszerkesztőbe. A szintaxiskiemelő, a hibajelölő és az automatikus kódkiegegítések segítenek a kód írásában és a problémák gyorsabb azonosításában.

    Az IntelliSense funkciói különböző szintű érettségi szinten vannak a különböző nyelvek esetében. A támogatott lehetőségeket az alábbi táblázatban láthatja.

    Nyelvek Szintaxiskiemelő Szintaktikai hibajelölő Szintaxiskód-kiegészítés Változókód-kiegészítés Rendszerfunkció kód befejezése Felhasználói függvény kód befejezése Intelligens behúzás Kódátcsatolás
    PySpark (Python) Igen Igen Igen Igen Igen Igen Igen Yes
    Spark (Scala) Igen Igen Igen Igen Igen Igen - Yes
    SparkSQL Igen Igen Igen Igen Yes - - -
    .NET for Spark (C#) Igen Igen Igen Igen Igen Igen Igen Yes

    Megjegyzés

    A Sparkhoz (C#) a változó kód kiegészítéséhez, a rendszerfunkciók kód kiegészítéséhez és a .NET felhasználói függvénykód-kiegészítéséhez egy aktív Spark-munkamenetre van szükség.

    Kódtöredékek

    A Synapse-jegyzetfüzetek olyan kódrészleteket biztosítanak, amelyek megkönnyítik a gyakori kódminták (például a Spark-munkamenet konfigurálása, az adatok Spark DataFrame-ként való beolvasása vagy a matplotlib-diagramokkal való rajzolás stb.) beolvasását.

    A kódrészletek az IDE-stílusú IntelliSense gyorsbillentyűkben jelennek meg, más javaslatokkal együtt. A kódrészletek tartalma igazodik a kódcella nyelvhez. Az elérhető kódrészletek a Kódrészlet beírásával jelennek meg, vagy bármely kulcsszó megjelenik a kódrészlet címében a kódcellaszerkesztőben. Ha például begépelte az read (olvasás) szöveget, láthatja a különböző adatforrások adatait beolvasó kódrészletek listáját.

    Synapse-kódrészletek animált GIF-kódjai

    Szövegcella formázása eszköztárgombokkal

    A szövegcellák eszköztárában található formázási gombokkal gyakori Markdown-műveleteket is végre lehet majd látni. Tartalmazza a félkövér formázást, a szöveg dőlt formázását, kódrészletek beszúrása, rendezetlen lista beszúrása, rendezett lista beszúrása és kép beszúrása AZ URL-címből.

    Képernyőkép a Synapse szöveges cella eszköztárról

    Cellaművelet visszavonása/visszavonása

    A legutóbbi cellaműveleteket a Visszavonás gombbal, vagy a / Ctrl+Z / Ctrl+Y billentyűkombinációval vonhatja vissza. Most visszavonhatja/újra használhatja a legutóbbi 20 cellaműveletet.

    Képernyőkép a Synapse visszavonási celláiról

    Kódcella megjegyzése

    Nem támogatott.

    Cella áthelyezése

    Kattintson a három pontra (...) a jobb oldalon található többi cellaművelet menüjének eléréséhez. Ezután válassza a Cella áthelyezése felfelé vagy a Cella áthelyezése lefelé lehetőséget az aktuális cella áthelyezéshez.

    A parancs módban billentyűparancsokat is használhat. Az aktuális cella felfelé mozgatása a Ctrl+Alt+↓ billentyűkombinációval. Nyomja le a Ctrl+Alt+↓ billentyűkombinációt az aktuális cella lejjebb mozgatásával.

    A cella áthelyezése képernyőképe

    Cella törlése

    Cella törléséhez kattintson a három pontra (...) a jobb távoli cellaműveletek másik menüjének eléréséhez, majd válassza a Cella törlése lehetőséget.

    A parancs módban billentyűparancsokat is használhat. Nyomja le a D,D billentyűt az aktuális cella törléséhez.

    Képernyőkép a cella törléséről

    Cellabemenet összecsukása

    Az aktuális cella alján található nyíl gombra kattintva csukja össze. A kibontásához kattintson a nyíl gombra, amíg a cella össze van csukva.

    A cellabecsukás animált GIF-fájlja

    Cella kimenetének összecsukása

    Kattintson az aktuális cella kimenetének bal felső sarkában található Kimenet összecsukása gombra az összecsukáshoz. A kibontásához válassza a Cellakimenet megjelenítése, amíg a cella kimenete össze van csukva.

    A cella összecsukása-kimenet animált GIF-fájlja

    Jegyzetfüzet vázlata

    Nem támogatott.

    Jegyzetfüzetek futtatása

    A jegyzetfüzet kódcellái egyenként vagy egyszerre is futtathatók. Az egyes cellák állapota és előrehaladása a jegyzetfüzetben van ábrázolva.

    Cella futtatása

    A kódot többféleképpen is futtathat egy cellában.

    1. Vigye a kurzort a futtatni kívánt cellára, és kattintson a Cella futtatása gombra, vagy nyomja le a Ctrl+Enter billentyűkombinációt.

      Képernyőkép a run-cell-1 parancsról

    2. A Parancs módban használja a Billentyűparancsokat. Nyomja le a Shift+Enter billentyűkombinációt az aktuális cella futtatásához, és válassza ki az alábbi cellát. Nyomja le az Alt+Enter billentyűkombinációt az aktuális cella futtatásához és egy új cella beszúrása alá.


    Az összes cella futtatása

    Kattintson az Összes futtatása gombra az aktuális jegyzetfüzet összes cellának egymás után való futtatásához.

    Az összes cella futtatásának képernyőképe

    Az összes cella futtatása az alatt vagy felett

    A jobb oldalon található másik cellaműveletek menüjének eléréséhez válassza a három pont (... ) lehetőséget. Ezután válassza a Fenti Cellák futtatása lehetőséget az aktuális fölötti összes cella egymás után való futtatásához. Válassza az alábbi Cellák futtatása lehetőséget az aktuális alatti cellák egymás után való futtatásához.

    Képernyőkép a futtatás celláiról , fent vagy lent

    Az összes futó cella megszakítása

    Az Összes visszavonása gombra kattintva megszakíthatja az üzenetsorban várakozó cellákat vagy cellákat. Az összes cella megszakításának képernyőképe

    Jegyzetfüzet-referencia

    Nem támogatott.

    Változókezelő

    Nem támogatott.

    Cella állapotjelzője

    A cella végrehajtási állapota lépésről lépésre látható a cella alatt, így látható az aktuális folyamat. Ha a cella futtatása befejeződött, megjelenik egy végrehajtási összegzés, amely a teljes időtartamot és a záró időt mutatja, és későbbi használatra ott lesz megőrizve.

    Képernyőkép a cella állapotáról

    Spark-folyamatjelző

    A Synapse Notebook tisztán Spark-alapú. A kódcellák végrehajtása távolról, a kiszolgáló nélküli Apache Spark hajt végre. A Spark-feladat folyamatjelzője egy valós idejű folyamatjelzővel jelenik meg, amely segít megérteni a feladat végrehajtási állapotát. Az egyes feladatok vagy fázisok tevékenységszáma segít azonosítani a Spark-feladat párhuzamos szintjét. Egy adott feladat (vagy fázis) Spark felhasználói felületének mélyebb részletezéséhez kattintson a feladat (vagy fázis) nevére mutató hivatkozásra.

    A spark-progress-indicator képernyőképe

    Spark-munkamenet konfigurációja

    Az időtúllépés időtartamát, számát és a jelenlegi Spark-munkamenetnek a munkamenet konfigurálásában adható végrehajtók méretét adhatja meg. A Spark-munkamenet újraindítása a konfigurációs módosítások érvénybe lép. Minden gyorsítótárazott notebookváltozó törlődik.

    Képernyőkép a munkamenet-kezelésről

    Spark-munkamenet konfigurációs parancsa

    A Spark-munkamenet beállításait egy magic paranccsal is megadhatja .configure . A spark-munkamenetet újra kell indítani a beállítások hatásának beállításához. Javasoljuk, hogy a jegyzetfüzet elején futtassa a következőt: .configure. Megjelenik egy minta, amely https://github.com/cloudera/livy#request-body az érvényes paraméterek teljes listáját tartalmazza.

    %%configure
    {
        //You can get a list of valid parameters to config the session from https://github.com/cloudera/livy#request-body.
        "driverMemory":"28g", // Recommended values: ["28g", "56g", "112g", "224g", "400g", "472g"]
        "driverCores":4, // Recommended values: [4, 8, 16, 32, 64, 80]
        "executorMemory":"28g",
        "executorCores":4, 
        "jars":["abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar","wasb[s]://<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
        "conf":{
        //Example of standard spark property, to find more available properties please visit:https://spark.apache.org/docs/latest/configuration.html#application-properties.
            "spark.driver.maxResultSize":"10g",
        //Example of customized property, you can specify count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
            "livy.rsc.sql.num-rows&quot;:&quot;3000" 
        }
    }
    

    Megjegyzés

    • Javasoljuk, hogy a "DriverMemory" és az "ExecutorMemory" értékeként állítsa be ugyanazt az értéket a következőben: _configure, tehát az "driverCores" és a "executorCores" is.
    • A Spark-munkamenetek konfigurációs magic parancsát használhatja a Synapse-folyamatokban. Csak akkor lép életbe, ha a legfelső szinten van meghívva. A rendszer figyelmen kívül hagyja a hivatkozott jegyzetfüzetben használt konfigurálási beállításokat.
    • A Spark konfigurációs tulajdonságait a "conf" törzsben kell használni. A Spark-konfigurációs tulajdonságok legfelső szintű referenciája nem támogatott.

    Adatok behozása jegyzetfüzetbe

    Az alábbi kódmintákban látható módon betölthet adatokat az Azure Blob Storage, Data Lake Store Gen2 és SQL a készletből.

    CSV-fájl olvasása az Azure Data Lake Store Gen2-ről Spark DataFrame-ként

    from pyspark.sql import SparkSession
    from pyspark.sql.types import *
    account_name = "Your account name"
    container_name = "Your container name"
    relative_path = "Your path"
    adls_path = 'abfss://%s@%s.dfs.core.windows.net/%s' % (container_name, account_name, relative_path)
    
    df1 = spark.read.option('header', 'true') \
                    .option('delimiter', ',') \
                    .csv(adls_path + '/Testfile.csv')
    
    

    CSV-fájl olvasása az Azure Blob-Storage Spark DataFrame-ként

    
    from pyspark.sql import SparkSession
    
    # Azure storage access info
    blob_account_name = 'Your account name' # replace with your blob name
    blob_container_name = 'Your container name' # replace with your container name
    blob_relative_path = 'Your path' # replace with your relative folder path
    linked_service_name = 'Your linked service name' # replace with your linked service name
    
    blob_sas_token = mssparkutils.credentials.getConnectionStringOrCreds(linked_service_name)
    
    # Allow SPARK to access from Blob remotely
    
    wasb_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
    
    spark.conf.set('fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name), blob_sas_token)
    print('Remote blob path: ' + wasb_path)
    
    df = spark.read.option("header", "true") \
                .option("delimiter","|") \
                .schema(schema) \
                .csv(wasbs_path)
    

    Adatok olvasása az elsődleges tárfiókból

    Az elsődleges tárfiókban közvetlenül is hozzáférhet az adatokhoz. A titkos kulcsokat nem kell megszabadni. A Adatkezelő kattintson a jobb gombbal egy fájlra, és válassza az Új jegyzetfüzet lehetőséget egy új jegyzetfüzet automatikus generált adatkivonattal való megnyitásához.

    Képernyőkép az adatokról a cellába

    IPython-widgetek

    Nem támogatott.

    Jegyzetfüzetek mentése

    A munkaterületen egyetlen jegyzetfüzetet vagy az összes jegyzetfüzetet mentheti.

    1. Ha egyetlen jegyzetfüzeten szeretne módosításokat menteni, kattintson a Notebook parancssáv Közzététel gombjára.

      Képernyőkép a publish-notebookról

    2. A munkaterület összes jegyzetfüzetének mentéséhez válassza a Munkaterület parancssávjának Összes közzététele gombját.

      Az összes közzétételének képernyőképe

    A jegyzetfüzet tulajdonságai között megadhatja, hogy a cellakimenetet is bele kell-e foglalni mentéskor.

    Képernyőkép a jegyzetfüzet tulajdonságairól

    Mágikus parancsok

    A jól ismert Jupyter magic parancsokat használhatja a Synapse-jegyzetfüzetekben. Tekintse át az alábbi listát az aktuálisan elérhető magic parancsokként. Mondja el nekünk a GitHub, hogy további, az igényeinek megfelelő varázsparancsokat építsünk ki.

    Megjegyzés

    A Synapse-folyamatban csak a következő varázsparancsok támogatottak: ©pyspark, ©spark, ©csharp, ©sql.

    Jegyzetfüzet integrálása

    Jegyzetfüzet hozzáadása folyamathoz

    A jobb felső sarokban található Hozzáadás folyamathoz gombra kattintva adjon hozzá egy jegyzetfüzetet egy meglévő folyamathoz, vagy hozzon létre egy új folyamatot.

    Képernyőkép a Jegyzetfüzet hozzáadása folyamathoz képernyőképe

    Paramétercella jelölése

    A jegyzetfüzet paraméteres beállításhoz kattintson a három pontra (...) a jobb oldalon lévő többi cellaművelet menüjének eléréséhez. Ezután válassza a Paramétercella váltása lehetőséget a cella paramétercellaként való kijelöléséhez.

    Képernyőkép a váltóparaméterről

    Azure Data Factory a paramétercellát, és ezt a cellát alapértelmezettként kezeli a végrehajtáskor átadott paraméterekhez. A végrehajtómotor új cellát ad hozzá a paramétercella alatt bemeneti paraméterekkel, hogy felülírja az alapértelmezett értékeket.

    Paraméterértékek hozzárendelése egy folyamatból

    Miután létrehozott egy paraméterekkel egy jegyzetfüzetet, végrehajthatja azt egy folyamatból a Synapse Notebook-tevékenységgel. Miután hozzáadta a tevékenységet a folyamatvászonhoz, a paraméterek értékeit a lap Alapparaméterek szakaszában Gépház meg.

    A paraméter hozzárendelésének képernyőképe

    Paraméterértékek hozzárendelésekor használhatja a folyamatkifejezés nyelvét vagy a rendszerváltozókat.

    Billentyűparancsok

    A Jupyter-notebookokhoz hasonlóan a Synapse-notebookok is modális felhasználói felülettel rendelkezik. A billentyűzet különböző dolgokat tesz attól függően, hogy melyik módban van a notebookcella. A Synapse-jegyzetfüzetek az alábbi két módot támogatják egy adott kódcellához: parancsmódot és szerkesztési módot.

    1. A cella parancsmódban van, ha nincs begépelni való szövegkurzor. Ha egy cella Parancs módban van, a jegyzetfüzetet teljes egészében szerkesztheti, de nem írhatja be egyes cellákba. A parancs módba úgy léphet be, hogy lenyomja vagy az egérrel kijelöli a cellát ESC a szerkesztőterületen kívül.

      Képernyőkép a parancsmódról

    2. A szerkesztési módot egy szövegkurzor jelzi, amely arra kéri, hogy gépelje be a szerkesztőterületet. Ha egy cella szerkesztési módban van, begépelheti a cellába. A szerkesztési mód a cella szerkesztőterületére kattintással vagy az Enter egérrel való kijelöléssel léphet be.

      A szerkesztési mód képernyőképe

    Parancs módban található billentyűparancsok

    Az alábbi billentyűleütésekkel könnyebben navigálhat és futtathat kódot Synapse-jegyzetfüzetek használatával.

    Művelet Synapse Notebook-parancsikonok
    Futtassa az aktuális cellát, és válassza az alábbi lehetőséget Shift+Enter
    Futtassa az aktuális cellát, és szúrja be az alábbit Alt+Enter
    Válassza ki a fenti cellát Fel
    Válassza ki az alábbi cellát Le
    Cella beszúrása fölé A
    Cella beszúrása alá B
    A fenti kijelölt cellák kiterjesztése Shift+Fel
    A kijelölt cellák kiterjesztése alább Shift+Down
    Cella áthelyezése felfelé Ctrl+Alt+↓
    Cella lejjebb mozgatva Ctrl+Alt+↓
    Kijelölt cellák törlése D, D
    Váltás szerkesztési módra Enter

    Billentyűparancsok szerkesztési módban

    Az alábbi billentyűleütésekkel könnyebben navigálhat és futtathat kódot Synapse-jegyzetfüzetek használatával szerkesztési módban.

    Művelet Synapse Notebook-parancsikonok
    A kurzor felfelé mozgatva Fel
    A kurzor lefelé mozgatva Le
    Visszavonás Ctrl + Z
    Ismétlés Ctrl + Y
    Megjegyzés/Megjegyzés megjegyzésként való megjegyzésként való megszűkülése Ctrl + /
    Szó törlése korábban Ctrl + Backspace
    Szó törlése utána Ctrl + Törlés
    Ugrás a cellába indítás Ctrl + Kezdőlap
    Ugrás a cella végére Ctrl + End
    Ugrás egy szóval balra Ctrl + Bal
    Ugrás egy szóra jobbra Ctrl + Jobb
    Az összes kijelölése Ctrl + A
    Behúzás Ctrl +]
    Dedent (Dedent) Ctrl + [
    Váltás parancsmódra Esc

    Következő lépések