Membuat, mengembangkan, dan memelihara Synapse notebooks di Azure Synapse Analytics

Synapse notebooks adalah antarmuka web untuk membuat file yang berisi kode langsung, visualisasi, dan teks naratif. Notebooks adalah tempat yang baik untuk memvalidasi ide dan menggunakan eksperimen cepat untuk mendapatkan wawasan dari data Anda. Notebooks juga banyak digunakan dalam persiapan data, visualisasi data, pembelajaran mesin, dan skenario Big Data lainnya.

Dengan Synapse notebook, Anda dapat:

  • Memulai dengan mudah.
  • Menjaga keamanan data dengan fitur keamanan perusahaan bawaan.
  • Menganalisis data dalam format mentah (CSV, txt, JSON, dll.), format file yang telah diproses (parket, Delta Lake, ORC, dll.), dan file data tabular SQL terhadap Spark dan SQL.
  • Menjadi produktif dengan kemampuan penulisan yang ditingkatkan dan visualisasi data bawaan.

Artikel ini menjelaskan cara notebooks di Synapse Studio.

Membuat buku catatan

Ada dua cara untuk membuat notebook. Anda bisa membuat notebook baru atau mengimpor notebook yang sudah ada ke ruang kerja Synapse dari Object Explorer. Synapse notebooks mengenali file Jupyter Notebook IPYNB standar.

Cuplikan layar buat baru atau impor notebook

Mengembangkan notebooks

Notebooks terdiri dari sel, yang berupa blok individual kode atau teks yang bisa dijalankan secara independen atau sebagai grup.

Kami menyediakan operasi yang kaya untuk mengembangkan notebook:

Catatan

Di notebook, ada SparkSession yang secara otomatis dibuat untuk Anda, disimpan dalam variabel yang disebut spark. Juga ada variabel untuk SparkContext yang disebut sc. Pengguna dapat mengakses variabel ini secara langsung dan tidak boleh mengubah nilai variabel ini.

Menambahkan sel

Ada beberapa cara untuk menambahkan sel baru ke notebook Anda.

  1. Arahkan mouse ke ruang kosong di antara dua sel lalu pilih Kode atau Markdown. Cuplikan layar add-azure-notebook-cell-with-cell-button

  2. Menggunakan tombol Pintasan aznb di bagian mode perintah. Tekan A untuk menyisipkan sel di atas sel saat ini. Tekan B untuk menyisipkan sel di bawah sel saat ini.


Mengatur bahasa utama

Synapse notebooks mendukung empat bahasa Apache Spark:

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

Anda dapat mengatur bahasa utama untuk sel baru yang ditambahkan dari daftar dropdown di bilah perintah bagian atas.

Cuplikan layar default-synapse-language

Menggunakan beberapa bahasa

Anda dapat menggunakan beberapa bahasa dalam satu notebook dengan menentukan perintah ajaib bahasa yang benar di awal sel. Tabel berikut mencantumkan perintah ajaib untuk mengganti bahasa sel.

Perintah ajaib Bahasa Deskripsi
%%pyspark Python Menjalankan kueri Python terhadap Spark Context.
%%spark Scala Menjalankan kueri Scala terhadap Spark Context.
%%sql SparkSQL Menjalankan kueri SparkSQL terhadap Spark Context.
%%csharp .NET untuk Spark C# Jalankan kueri .NET untuk Spark C# terhadap Spark Context.
%%sparkr R Jalankan kueri R terhadap Konteks Spark.

Gambar berikut adalah contoh bagaimana Anda dapat menulis kueri PySpark menggunakan perintah ajaib %%pyspark atau kueri SparkSQL dengan perintah ajaib %%sql di notebook Spark(Scala) . Perhatikan bahwa bahasa utama untuk notebook diatur ke pySpark.

Cuplikan layar perintah sihir spark Synapse

Menggunakan tabel sementara untuk mereferensikan data lintas bahasa

Anda tidak dapat mereferensikan data atau variabel secara langsung di berbagai bahasa di notebook Synapse. Di Spark, tabel sementara dapat direferensikan di lintas bahasa. Berikut adalah contoh cara membaca Scala DataFrame in PySpark dan SparkSQL menggunakan tabel sementara Spark sebagai solusinya.

  1. Di Sel 1, baca DataFrame dari konektor kumpulan SQL menggunakan Scala dan buat tabel sementara.

    %%spark
    val scalaDataFrame = spark.read.sqlanalytics("mySQLPoolDatabase.dbo.mySQLPoolTable")
    scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
    
  2. Di Sel 2, kueri data menggunakan Spark SQL.

    %%sql
    SELECT * FROM mydataframetable
    
  3. Di Sel 3, gunakan data di PySpark.

    %%pyspark
    myNewPythonDataFrame = spark.sql("SELECT * FROM mydataframetable")
    

IntelliSense bergaya IDE

Notebook terintegrasi dengan editor Monaco untuk menghadirkan IntelliSense bergaya IDE ke editor sel. Sorotan sintaks, penanda kesalahan, dan penyelesaian kode otomatis membantu Anda menulis kode dan mengidentifikasi masalah lebih cepat.

Fitur IntelliSense berada pada tingkat kematangan yang berbeda untuk bahasa yang berbeda. Gunakan tabel berikut ini untuk melihat apa yang didukung.

Bahasa Penyorotan Sintaksis Penanda Galat Sintaksis Penyelesaian Kode Sintaks Penyelesaian Kode Variabel Penyelesaian Kode Fungsi Sistem Penyelesaian Kode Fungsi Pengguna Inden Cerdas Pelipatan Kode
PySpark (Python) Ya Ya Ya Ya Ya Ya Ya Ya
Spark (Scala) Ya Ya Ya Ya Ya Ya - Ya
SparkSQL Ya Ya Ya Ya Ya - - -
.NET untuk Spark (C#) Ya Ya Ya Ya Ya Ya Ya Ya

Catatan

Sesi Spark aktif diperlukan agar dapat memanfaatkan Penyelesaian Kode Variabel, Penyelesaian Kode Fungsi Sistem, Penyelesaian Kode Fungsi Pengguna untuk .NET untuk Spark (C#).

Cuplikan Kode

Notebook Synapse menyediakan cuplikan kode yang memudahkan untuk memasukkan pola kode yang umum digunakan, seperti mengonfigurasi sesi Spark Anda, membaca data sebagai Spark DataFrame, atau menggambar bagan dengan matplotlib dll.

Cuplikan muncul di Kunci pintasan gaya IDE IntelliSense bercampur dengan saran lain. Cuplikan kode konten sejajar dengan bahasa sel kode. Anda dapat melihat cuplikan yang tersedia dengan mengetik Cuplikan atau kata kunci apa pun yang muncul di judul cuplikan di editor sel kode. Misalnya, dengan mengetikbaca, Anda dapat melihat daftar cuplikan untuk membaca data dari berbagai sumber data.

GIF animasi dari cuplikan kode Synapse

Memformat sel teks dengan tombol bilah alat

Anda dapat menggunakan tombol format di toolbar sel teks untuk melakukan tindakan markdown umum. Ini termasuk teks tebal, teks miring, paragraf/header melalui dropdown, menyisipkan kode, menyisipkan daftar yang tidak berurutan, menyisipkan daftar yang diurutkan, menyisipkan hyperlink dan menyisipkan gambar dari URL.

Cuplikan layar toolbar sel teks Synapse


Membatalkan/Mengulangi operasi sel

Pilih tombol Urungkan / Ulangi atau tekan Z / Shift+Z untuk mencabut operasi sel terbaru. Sekarang Anda dapat membatalkan/mengulang hingga 10 operasi sel historis terbaru.

Cuplikan layar sel pembatalan Synapse aznb

Operasi sel undo yang didukung:

  • Sisipkan/Hapus sel: Anda dapat mencabut operasi penghapusan dengan memilih Batalkan, konten teks disimpan bersama dengan sel.
  • Susun ulang sel.
  • Alihkan parameter.
  • Konversi antara sel Kode dan sel Markdown.

Catatan

Operasi teks dalam sel dan operasi komentar sel kode tidak dapat dibatalkan. Sekarang Anda dapat membatalkan/mengulang hingga 10 operasi sel historis terbaru.


Komentar sel kode

  1. Pilih tombol Komentar pada toolbar notebook untuk membuka panel Komentar.

    Cuplikan layar tombol komentar Synapse

  2. Pilih kode di sel kode, klik Baru di panel Komentar, tambahkan komentar, lalu klik tombol Kirim komentar untuk menyimpan.

    Cuplikan layar komentar baru Synapse

  3. Anda dapat melakukan Edit komentar, Selesaikan utas, atau Hapus utas dengan mengeklik tombol Lainnya di samping komentar Anda.

    Cuplikan layar komentar edit Synapse


Memindahkan sel

Klik di sisi kiri sel dan seret ke posisi yang diinginkan. GIF animasi dari sel pemindahan Synapse


Menghapus sel

Untuk menghapus sel, pilih tombol hapus di sisi kanan sel.

Anda juga dapat menggunakan tombol pintasan di bawah mode perintah. Tekan Shift+D untuk menghapus sel saat ini.

Cuplikan layar azure-notebook-delete-a-cell


Menciutkan input sel

Pilih elipsis (...) Perintah lainnya pada toolbar sel lalu Sembunyikan input untuk menciutkan input sel saat ini. Untuk meluaskan, Pilih Tampilkan input saat sel diciutkan.

GIF animasi dari azure-notebook-collapse-cell-input


Menciutkan output sel

Pilih elipsis (...) Perintah lainnya pada toolbar sel lalu Sembunyikan output untuk menciutkan output sel saat ini. Untuk meluaskan, pilih Tampilkan output saat output sel disembunyikan.

GIF animasi dari azure-notebook-collapse-cell-output


Kerangka notebook

Kerangka (Daftar Isi) menyajikan header markdown pertama dari setiap sel markdown di jendela sidebar untuk navigasi cepat. Sidebar kerangka dapat diubah ukurannya dan dapat diciutkan agar pas dengan layar secara optimal. Anda dapat memilih tombol Kerangka pada bilah perintah notebook untuk membuka atau menyembunyikan sidebar

Cuplikan layar azure-notebook-outline


Menjalankan notebook

Anda dapat menjalankan sel kode di notebook Anda satu per satu atau sekaligus. Status dan kemajuan setiap sel ditunjukkan di dalam buku catatan.

Menjalankan sel

Ada beberapa cara untuk menjalankan kode dalam sel.

  1. Arahkan mouse ke sel yang ingin Anda jalankan dan pilih tombol Jalankan Sel atau tekan Ctrl+Enter.

    Cuplikan layar run-cell-1

  2. Gunakan Kunci pintasan di mode perintah. Tekan Shift+Enter untuk menjalankan sel saat ini dan pilih sel di bawah ini. Tekan Alt+Enter untuk menjalankan sel saat ini dan menyisipkan sel baru di bawah ini.


Menjalankan semua sel

Pilih tombol Jalankan Semua untuk menjalankan semua sel dalam buku catatan saat ini secara berurutan.

Cuplikan layar run-all-cells

Jalankan semua sel di atas atau di bawah

Luaskan daftar dropdown dari tombol Jalankan semua, lalu pilih Jalankan sel di atas untuk menjalankan semua sel di atas urutan saat ini. Pilih Jalankan sel di bawah untuk menjalankan semua sel di bawah saat ini secara berurutan.

Cuplikan layar azure-notebook-run-cells-above-or-below


Membatalkan semua sel yang sedang berjalan

Pilih tombol Batalkan Semua untuk membatalkan sel yang sedang berjalan atau sel dalam antrean. Cuplikan layar azure-notebook-cancel-all-cells


Referensi buku catatan

Anda dapat menggunakan %run <notebook path> perintah ajaib untuk mereferensikan notebook lain dalam konteks notebook saat ini. Semua variabel yang ditentukan dalam notebook referensi tersedia di buku catatan saat ini. %run perintah ajaib mendukung panggilan bertumpuk tetapi tidak mendukung panggilan berulang. Anda menerima pengecualian jika kedalaman pernyataan lebih besar dari lima.

Contoh: %run /<path>/Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }.

Referensi buku catatan berfungsi baik dalam mode interaktif maupun alur Synapse.

Catatan

  • Perintah %run saat ini hanya mendukung untuk melewati jalur absolut atau nama notebook saja sebagai parameter, jalur relatif tidak didukung.
  • Perintah %run saat ini hanya mendukung 4 jenis nilai parameter: int, float, bool, string, operasi penggantian variabel tidak didukung.
  • Buku catatan yang dirujuk harus dipublikasikan. Anda perlu menerbitkan buku catatan untuk mereferensikannya kecuali Referensi buku catatan yang tidak diterbitkan diaktifkan. Synapse Studio tidak mengenali buku catatan yang tidak diterbitkan dari repo Git.
  • Notebook yang dirujuk tidak mendukung pernyataan bahwa kedalaman lebih besar dari lima.

Penjelajah variabel

Synapse notebook menyediakan penjelajah variabel bawaan untuk Anda agar dapat melihat daftar nama, jenis, panjang, dan nilai variabel dalam sesi Spark saat ini untuk sel PySpark (Python). Lebih banyak variabel muncul secara otomatis saat didefinisikan dalam sel kode. Mengklik setiap header kolom mengurutkan variabel dalam tabel.

Anda dapat memilih tombol Variabel pada bilah perintah notebook untuk membuka atau menyembunyikan penjelajah variabel.

Cuplikan layar azure-notebook-variable-explorer

Catatan

Penjelajah variabel hanya mendukung python.


Indikator status sel

Status eksekusi sel langkah demi langkah ditampilkan di bawah sel untuk membantu Anda melihat kemajuan eksekusi saat ini. Setelah eksekusi selesai, ringkasan eksekusi dengan total durasi dan waktu akhir akan diperlihatkan dan disimpan di sana untuk referensi di masa mendatang.

Cuplikan layar cell-status

Indikator kemajuan Spark

Synapse notebook murni berbasis Spark. Sel kode dieksekusi pada kumpulan Apache Spark tanpa server dari jarak jauh. Indikator kemajuan pekerjaan Spark disediakan dengan bilah kemajuan real time yang ditampilkan untuk membantu Anda memahami status eksekusi pekerjaan. Jumlah tugas setiap pekerjaan atau tahap membantu Anda mengidentifikasi tingkat paralel pekerjaan spark Anda. Anda juga dapat menelusuri lebih dalam ke antarmuka pengguna Spark dari pekerjaan (atau tahap) tertentu dengan memilih tautan pada nama pekerjaan (atau tahap).

Cuplikan layar spark-progress-indicator

Konfigurasi sesi Spark

Anda dapat menentukan durasi waktu habis, jumlah, dan ukuran eksekutor yang akan diberikan ke sesi Spark saat ini dalam Konfigurasikan sesi. Mulai ulang sesi Spark agar perubahan konfigurasi diterapkan. Semua variabel buku catatan yang ditembolok dibersihkan.

Anda juga dapat membuat konfigurasi dari konfigurasi Apache Spark atau memilih konfigurasi yang ada. Untuk detailnya, silakan merujuk ke Manajemen Konfigurasi Apache Spark.

Cuplikan layar session-management

Perintah ajaib konfigurasi sesi Spark

Anda juga dapat menentukan setelan sesi spark melalui perintah ajaib %%configure. Sesi spark perlu dimulai ulang agar efek pengaturan diterapkan. Kami menyarankan agar Anda menjalankan %%configure di awal notebook Anda. Berikut adalah sampel, lihat https://github.com/cloudera/livy#request-body untuk daftar lengkap parameter yang valid.

%%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":"3000" 
    }
}

Catatan

  • "DriverMemory" dan "ExecutorMemory" disarankan untuk diatur sebagai nilai yang sama di %%configure, begitu juga "driverCores" dan "executorCores".
  • Anda bisa menggunakan %%configure dalam alur Synapse, tetapi jika tidak diatur di sel kode pertama, eksekusi alur akan gagal karena sesi tidak dapat dimulai ulang.
  • %%configure yang digunakan di mssparkutils.notebook.run akan diabaikan tetapi digunakan di %run notebook akan terus dijalankan.
  • Properti konfigurasi Spark standar harus digunakan dalam isi "conf". Kami tidak mendukung referensi tingkat pertama untuk properti konfigurasi Spark.
  • Beberapa properti spark khusus termasuk "spark.driver.cores", "spark.executor.cores", "spark.driver.memory", "spark.executor.memory", "spark.executor.instances" tidak akan berlaku dalam isi "conf".

Konfigurasi sesi berparameter dari alur

Konfigurasi sesi berparameter memungkinkan Anda mengganti nilai dalam perintah ajaib %%configure dengan parameter Eksekusi alur (Aktivitas notebook). Saat menyiapkan sel kode %%configure, Anda dapat mengganti nilai default (juga dapat dikonfigurasi, 4 dan "2000" dalam contoh di bawah) dengan objek seperti ini:

{
      "activityParameterName": "paramterNameInPipelineNotebookActivity",
      "defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
} 
%%configure  

{ 
    "driverCores": 
    { 
        "activityParameterName": "driverCoresFromNotebookActivity", 
        "defaultValue": 4 
    }, 
    "conf": 
    { 
        "livy.rsc.sql.num-rows": 
        { 
            "activityParameterName": "rows", 
            "defaultValue": "2000" 
        } 
    } 
} 

Notebook menggunakan nilai default jika menjalankan notebook dalam mode interaktif secara langsung atau tidak ada parameter yang cocok dengan "activityParameterName" diberikan dari aktivitas Pipeline Notebook.

Selama mode eksekusi alur, Anda dapat mengonfigurasi pengaturan aktivitas Notebook alur seperti di bawah ini: Cuplikan layar konfigurasi sesi berparameter

Jika Anda ingin mengubah konfigurasi sesi, nama parameter aktivitas Notebook alur harus sama dengan activityParameterName di notebook. Saat menjalankan alur ini, dalam contoh ini driverCores di %%configure akan diganti dengan 8 dan livy.rsc.sql.num-rows akan diganti dengan 4000.

Catatan

Jika alur eksekusi gagal karena menggunakan perintah ajaib %%configure baru ini, Anda bisa memeriksa informasi kesalahan lainnya dengan menjalankan sel ajaib %%configure dalam mode interaktif notebook.

Membawa data ke notebook

Anda dapat memuat data dari Azure Blob Storage, Azure Data Lake Store Gen 2, dan kumpulan SQL seperti yang ditunjukkan pada sampel kode di bawah ini.

Baca CSV dari Azure Data Lake Store Gen2 sebagai Spark DataFrame

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')

Baca CSV dari Azure Blob Storage sebagai Spark DataFrame


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)

Membaca data dari akun penyimpanan utama

Anda dapat mengakses data di akun penyimpanan utama secara langsung. Tidak perlu menyediakan kunci rahasia. Di Data Explorer, klik kanan pada file dan pilih Notebook baru untuk melihat notebook baru dengan ekstraktor data yang beregenerasi otomatis.

Cuplikan layar data-to-cell

Widget IPython

Widget adalah objek Python eventful yang memiliki representasi di browser, sering kali sebagai kontrol seperti penggeser, kotak teks dll. Widget IPython hanya berfungsi di lingkungan Python, itu belum didukung dalam bahasa lain (misalnya, Scala, SQL, C#).

Untuk menggunakan Widget IPython

  1. Anda perlu mengimpor modul ipywidgets terlebih dahulu untuk menggunakan kerangka kerja Widget Jupyter.

    import ipywidgets as widgets
    
  2. Anda dapat menggunakan fungsi tingkat atas display untuk merender widget, atau meninggalkan ekspresi jenis widget di baris terakhir sel kode.

    slider = widgets.IntSlider()
    display(slider)
    
    slider = widgets.IntSlider()
    slider
    
  3. Jalankan sel, widget ditampilkan di area output.

    Cuplikan layar penggeser widget ipython

  4. Anda dapat menggunakan beberapa display() panggilan untuk merender instans widget yang sama beberapa kali, tetapi tetap sinkron satu sama lain.

    slider = widgets.IntSlider()
    display(slider)
    display(slider)
    

    Cuplikan layar penggeser widget ipython

  5. Untuk merender dua widget independen dari satu sama lain, buat dua instans widget:

    slider1 = widgets.IntSlider()
    slider2 = widgets.IntSlider()
    display(slider1)
    display(slider2)
    

Widget yang didukung

Jenis Widget Widget
Widget numerik IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText
Widget Boolean ToggleButton, Checkbox, Valid
Widget pilihan Dropdown, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple
Widget String Teks, area Teks, Combobox, Kata Sandi, Label, HTML, HTML Math, Citra, Tombol
Memutar widget (Animasi) Pemilih tanggal, Pemilih warna, Pengontrol
Widget Kontainer/Tata Letak Box, HBox, VBox, GridBox, Accordion, Tabs, Stacked

Batasan umum

  1. Widget berikut belum didukung, Anda dapat mengikuti solusi yang sesuai seperti di bawah ini:

    Fungsionalitas Solusi Sementara
    Widget Output Anda dapat menggunakan fungsi print() sebagai gantinya untuk menulis teks ke dalam stdout.
    widgets.jslink() Anda dapat menggunakan fungsi widgets.link() untuk menautkan dua widget serupa.
    Widget FileUpload Belum didukung.
  2. Fungsi global display yang disediakan oleh Synapse tidak mendukung menampilkan beberapa widget dalam satu panggilan (yaitu, display(a, b)), yang berbeda dari fungsi IPython display .

  3. Jika Anda menutup notebook yang berisi Widget IPython, Anda tidak akan dapat melihat atau berinteraksi dengannya hingga Anda menjalankan sel yang sesuai lagi.


Menyimpan notebook

Anda dapat menyimpan satu notebook atau semua notebook di ruang kerja Anda.

  1. Untuk menyimpan perubahan yang Anda buat pada satu buku catatan, pilih tombol Terbitkan pada bilah perintah buku catatan.

    Cuplikan layar publish-notebook

  2. Untuk menyimpan semua buku catatan di ruang kerja Anda, pilih tombol Terbitkan semua pada bilah perintah ruang kerja.

    Cuplikan layar publish-all

Di properti buku catatan, Anda bisa mengonfigurasi apakah akan menyertakan output sel saat menyimpan.

Cuplikan layar notebook-properties

Perintah ajaib

Anda dapat menggunakan perintah ajaib Jupyter yang umum digunakan di Synapse notebooks. Tinjau daftar berikut ini sebagai perintah ajaib yang tersedia saat ini. Beri tahu kami kasus penggunaan Anda di GitHub sehingga kami dapat terus membangun lebih banyak perintah ajaib untuk memenuhi kebutuhan Anda.

Catatan

Hanya perintah ajaib berikut yang didukung dalam alur Synapse : %%pyspark, %%spark, %%csharp, %%sql.

Line magics yang tersedia: %lsmagic, %time, %timeit, %history, %run, %load

Line magics yang tersedia: %%time, %%timeit, %%capture, %%writefile,%%sql,%%pyspark, %%spark,%%csharp, %%html,%%configure


Referensi notebook yang tidak diterbitkan

Referensi buku catatan yang tidak diterbitkan berguna saat Anda ingin men-debug "secara lokal", saat mengaktifkan fitur ini, eksekusi buku catatan mengambil konten saat ini di cache web, jika Anda menjalankan sel termasuk pernyataan buku catatan referensi, Anda mereferensikan menyajikan buku catatan di browser buku catatan saat ini alih-alih versi tersimpan dalam kluster, itu berarti perubahan di editor buku catatan Anda dapat segera direferensikan oleh buku catatan lain tanpa harus diterbitkan (Mode langsung) atau diterapkan( Mode Git), dengan memanfaatkan pendekatan ini, Anda dapat dengan mudah menghindari pustaka umum tercemari selama proses pengembangan atau penelusuran kesalahan.

Anda dapat mengaktifkan notebook Referensi yang tidak dipublikasikan dari panel Properti:

Cuplikan layar referensi buku catatan

Untuk perbandingan kasus yang berbeda, periksa tabel di bawah ini:

Perhatikan bahwa %run dan mssparkutils.notebook.run memiliki perilaku yang sama di sini. Kami menggunakan %run di sini sebagai contoh.

Kasus Nonaktifkan Aktifkan
Mode Langsung
- Nb1 (Diterbitkan)
%run Nb1
Menjalankan versi Nb1 yang diterbitkan Menjalankan versi Nb1 yang diterbitkan
- Nb1 (Baru)
%run Nb1
Kesalahan Menjalankan Nb1 baru
- Nb1 (Sebelumnya diterbitkan, diedit)
%run Nb1
Menjalankan versi Nb1 yang diterbitkan Menjalankan versi Nb1 yang diedit
Mode Git
- Nb1 (Diterbitkan)
%run Nb1
Menjalankan versi Nb1 yang diterbitkan Menjalankan versi Nb1 yang diterbitkan
- Nb1 (Baru)
%run Nb1
Kesalahan Menjalankan Nb1 baru
- Nb1 (Tidak diterbitkan, dialokasikan)
%run Nb1
Kesalahan Menjalankan Nb1 yang dialokasikan
- Nb1 (Sebelumnya diterbitkan, dialokasikan)
%run Nb1
Menjalankan versi Nb1 yang diterbitkan Menjalankan versi Nb1 yang dialokasikan
- Nb1 (Sebelumnya diterbitkan, baru di cabang saat ini)
%run Nb1
Menjalankan versi Nb1 yang diterbitkan Menjalankan Nb1 baru
- Nb1 (Tidak diterbitkan, sebelumnya dialokasikan, diedit)
%run Nb1
Kesalahan Menjalankan versi Nb1 yang diedit
- Nb1 (Sebelumnya diterbitkan dan dialokasikan, diedit)
%run Nb1
Menjalankan versi Nb1 yang diterbitkan Menjalankan versi Nb1 yang diedit

Kesimpulan

  • Jika dinonaktifkan, selalu jalankan versi yang diterbitkan.
  • Jika diaktifkan, prioritasnya adalah: diedit/baru > dialokasikan > diterbitkan.

Manajemen sesi aktif

Anda dapat menggunakan kembali sesi notebook Anda dengan mudah sekarang tanpa harus memulai yang baru. Synapse notebook sekarang mendukung pengelolaan sesi aktif Anda dalam daftar Sesi kelola, Anda dapat melihat semua sesi di ruang kerja saat ini yang dimulai oleh Anda dari notebook.

Cuplikan layar notebook-manage-sessions

Di sesi Aktif, daftar Anda bisa melihat informasi sesi dan buku catatan terkait yang saat ini dilampirkan ke sesi. Anda dapat mengoperasikan Lepaskan dengan notebook, Hentikan sesi, dan Lihat dalam pemantauan dari sini. Selain itu, Anda dapat dengan mudah menyambungkan buku catatan yang Anda pilih ke sesi aktif dalam daftar yang dimulai dari buku catatan lain, sesi dicopot dari buku catatan sebelumnya (jika tidak menganggur) lalu melampirkan ke yang saat ini.

Cuplikan layar notebook-sessions-list

Pencatatan Python di Notebook

Anda dapat menemukan log Python dan mengatur tingkat dan format log yang berbeda mengikuti kode sampel di bawah ini:

import logging

# Customize the logging format for all loggers
FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
for handler in logging.getLogger().handlers:
    handler.setFormatter(formatter)

# Customize log level for all loggers
logging.getLogger().setLevel(logging.INFO)

# Customize the log level for a specific logger
customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)

# logger that use the default global log level
defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")

# logger that use the customized log level
customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")

Mengintegrasikan notebook

Menambahkan notebook ke alur

Pilih tombol Tambahkan ke alur di sudut kanan atas untuk menambahkan notebook ke saluran yang sudah ada atau membuat saluran baru.

Cuplikan layar Tambahkan notebook ke alur

Menetapkan sel parameter

Untuk menetapkan parameter notebook Anda, pilih elipsis (...) untuk mengakses perintah lainnya di toolbar sel. Lalu pilih Alihkan sel parameter untuk menetapkan sel sebagai sel parameter.

Cuplikan layar azure-notebook-toggle-parameter


Azure Data Factory mencari sel parameter dan memperlakukan sel ini sebagai default untuk parameter yang diteruskan pada waktu eksekusi. Mesin eksekusi menambahkan sel baru di bawah sel parameter dengan parameter input untuk menimpa nilai default.

Menetapkan nilai parameter dari alur

Setelah membuat notebook dengan parameter, Anda dapat mengeksekusinya dari alur dengan aktivitas Synapse Notebook. Setelah Anda menambahkan aktivitas ke kanvas alur, Anda akan dapat mengatur nilai parameter di bagianParameter dasar pada tab Pengaturan.

Cuplikan layar Tetapkan parameter

Saat menetapkan nilai parameter, Anda dapat menggunakan bahasa pemrograman ekspresi alur atau variabel sistem.

Kunci pintasan

Mirip dengan Jupyter Notebooks, Synapse notebooks memiliki antarmuka pengguna modal. Keyboard melakukan hal yang berbeda tergantung pada mode mana sel notebook berada. Synapse notebooks mendukung dua mode berikut untuk sel kode tertentu: mode perintah dan mode edit.

  1. Sel berada dalam mode perintah saat tidak ada kursor teks yang meminta Anda mengetik. Saat sel berada dalam mode Perintah, Anda bisa mengedit buku catatan secara keseluruhan tetapi Anda tidak dapat mengetik ke dalam sel individu. Masukkan mode perintah dengan menekan ESC atau menggunakan mouse untuk memilih di luar area editor teks sel.

    Cuplikan layar command-mode

  2. Mode edit ditunjukkan oleh kursor teks yang meminta Anda untuk mengetik di area penyunting. Saat sel ada dalam mode edit, Anda bisa mengetik ke dalam sel. Masuk ke mode edit dengan menekan Enter atau gunakan mouse untuk memilih pada area penyunting sel.

    Cuplikan layar edit-mode

Kunci pintasan dalam mode perintah

Tindakan Pintasan Synapse notebook
Menjalankan sel saat ini dan memilih sel di bawah Shift+Enter
Menjalankan sel saat ini dan menyisipkan di bawah Alt+Enter
Menjalankan sel saat ini Ctrl+Enter
Memilih sel di atas Naik
Memilih sel di bawah Turun
Memilih sel sebelumnya K
Memilih sel berikutnya J
Menyisipkan sel di atas A
Menyisipkan sel di bawah B
Menghapus sel yang dipilih Shift+D
Beralih ke mode edit Masukkan

Kunci pintasan di bawah mode edit

Dengan menggunakan pintasan tekanan tombol berikut, Anda dapat menavigasi dan menjalankan kode dengan lebih mudah di Synapse notebook saat dalam mode Edit.

Tindakan Pintasan Synapse notebook
Memindahkan kursor ke atas Naik
Memindahkan kursor ke bawah Turun
Undo Ctrl + Z
Kembalikan Ctrl + Y
Komentar/Batalkan komentar Ctrl + /
Menghapus kata sebelumnya Ctrl + Backspace
Menghapus kata setelahnya Ctrl + Delete
Lompat ke sel awal Ctrl + Home
Lompat ke sel akhir Ctrl + End
Lompat ke satu kata di sebelah kiri Ctrl + Kiri
Pergi satu kata ke kanan Ctrl + Kanan
Pilih semua Ctrl + A
Inden Ctrl +]
Deden (Dedent) Ctrl + [
Beralih ke mode perintah Esc

Langkah berikutnya