Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menyediakan panduan langsung yang menunjukkan cara menerapkan praktik terbaik rekayasa perangkat lunak ke notebook Azure Databricks Anda, termasuk kontrol versi, berbagi kode, pengujian, dan integrasi berkelanjutan opsional dan pengiriman atau penyebaran berkelanjutan (CI/CD).
Dalam panduan ini, Anda:
- Tambahkan buku catatan ke folder git Azure Databricks untuk kontrol versi.
- Mengekstrak bagian kode dari salah satu notebook ke dalam modul yang dapat dibagikan.
- Menguji kode bersama.
- Jalankan buku catatan dari pekerjaan Azure Databricks.
- Menerapkan CI/CD ke kode bersama secara opsional.
Persyaratan
Untuk menyelesaikan panduan ini, Anda harus menyediakan sumber daya berikut:
Repositori jarak jauh dengan penyedia Git yang didukung Databricks. Panduan artikel ini menggunakan GitHub. Panduan ini mengasumsikan bahwa Anda memiliki repositori GitHub bernama
best-notebookstersedia. (Anda dapat memberi nama yang berbeda pada repositori Anda. Jika ya, gantibest-notebooksdengan nama repositori Anda di seluruh panduan ini.) Buat repositori GitHub jika Anda belum memilikinya.Catatan
Jika Anda membuat repositori baru, pastikan untuk menginisialisasi repositori dengan setidaknya satu file, misalnya
READMEfile.Ruang kerja Azure Databricks
. Buat ruang kerja jika Anda belum memilikinya. Kluster Azure Databricks serbaguna di ruang kerja. Untuk menjalankan notebook selama fase desain, Anda melampirkan notebook ke kluster serba guna yang sedang berjalan. Dalam langkah berikutnya, panduan langkah demi langkah ini menggunakan Azure Databricks job untuk mengotomatiskan eksekusi notebook pada kluster ini. (Anda juga dapat menjalankan pekerjaan pada kluster pekerjaan yang hanya ada untuk masa pakai pekerjaan.) Buat kluster semua tujuan jika Anda belum memilikinya.
Langkah 1: Menyiapkan folder Databricks Git
Dalam langkah ini, Anda menyambungkan repositori GitHub yang ada ke folder Git Azure Databricks di ruang kerja Azure Databricks yang ada.
Untuk mengaktifkan ruang kerja Anda agar tersambung ke repositori GitHub, Anda harus terlebih dahulu menyediakan kredensial GitHub Anda, jika Anda belum melakukannya.
Langkah 1.1: Berikan kredensial GitHub Anda
- Klik nama pengguna Anda di kanan atas ruang kerja, lalu klik Pengaturan di daftar drop-down.
- Di bilah samping di Pengaturan, di bawah Pengguna, klik Akun tertaut.
- Di bawah integrasi Git, untuk penyedia Git, pilih GitHub.
- Klik Token akses pribadi.
- Untuk nama pengguna atau email penyedia Git, masukkan nama pengguna GitHub Anda.
- Untuk Token, masukkan GitHub token akses pribadi (klasik). Token akses pribadi ini (klasik) harus memiliki izin repo dan workflow.
- Klik Simpan.
Langkah 1.2: Sambungkan ke repositori GitHub Anda
- Pada bilah sisi ruang kerja, klik Ruang Kerja.
- Di peramban Ruang Kerja, perluas Pengguna > Ruang Kerja.
- Klik kanan folder nama pengguna Anda, lalu klik Buat > folder Git.
-
Dalam dialog Buat folder Git:
- Untuk URL repositori Git, masukkan URL GitHub Clone dengan HTTPS untuk repositori GitHub Anda. Artikel ini mengasumsikan bahwa URL Anda berakhir dengan
best-notebooks.git, misalnyahttps://github.com/<your-GitHub-username>/best-notebooks.git. - Untuk penyedia Git, pilih GitHub.
- Biarkan nama folder Git tetap diset sesuai dengan nama repositori Anda, misalnya
best-notebooks. - Klik Buat folder Git.
- Untuk URL repositori Git, masukkan URL GitHub Clone dengan HTTPS untuk repositori GitHub Anda. Artikel ini mengasumsikan bahwa URL Anda berakhir dengan
Langkah 2: Mengimpor dan menjalankan buku catatan
Dalam langkah ini, Anda mengimpor buku catatan eksternal yang sudah ada ke dalam repositori Anda. Anda dapat membuat buku catatan Anda sendiri untuk pemahaman langkah-demi-langkah ini, tetapi untuk mempercepat proses, kami menyediakan buku catatan tersebut untuk Anda di sini.
Langkah 2.1: Membuat cabang kerja di repositori
Dalam substep ini, Anda membuat cabang bernama eda di repositori Anda. Cabang ini memungkinkan Anda untuk mengerjakan file dan kode secara independen dari cabang repositori main Anda, yang merupakan praktik terbaik rekayasa perangkat lunak. (Anda dapat memberikan nama yang berbeda pada cabang Anda.)
Catatan
Dalam beberapa repositori, main cabang dapat diberi nama master sebagai gantinya. Jika demikian, ganti main dengan master di seluruh panduan ini.
Petunjuk / Saran
Jika Anda tidak terbiasa bekerja di cabang Git, lihat Cabang Git - Intisari Cabang di situs web Git.
Folder Git dari Langkah 1.2 harus terbuka. Jika tidak, maka di bilah samping Ruang Kerja, perluas >, lalu perluas folder nama pengguna Anda, dan klik folder Git Anda.
Di samping nama folder di bawah jejak navigasi ruang kerja, klik tombol cabang utama Git.
Dalam dialog best-notebooks, klik tombol Create branch.
Catatan
Jika repositori Anda memiliki nama selain
best-notebooks, judul dialog ini akan berbeda, di sini dan di seluruh panduan ini.Masukkan
eda, dan klik Buat.Tutup dialog ini.
Langkah 2.2: Mengimpor buku catatan ke dalam repositori
Dalam substep ini, Anda mengimpor buku catatan yang sudah ada dari repositori lain ke repositori Anda. Buku catatan ini melakukan hal berikut:
- Menyalin file CSV dari repositori owid/covid-19-data GitHub ke kluster di ruang kerja Anda. File CSV ini berisi data publik tentang rumah sakit COVID-19 dan metrik perawatan intensif dari seluruh dunia.
- Membaca konten file CSV ke dalam DataFramepandas.
- Memfilter data agar hanya berisi metrik dari Amerika Serikat.
- Menampilkan plot data.
- Menyimpan DataFrame pandas sebagai API Pandas di SparkDataFrame.
- Melakukan pembersihan data pada API Pandas pada Spark DataFrame.
- Menulis API Pandas di Spark DataFrame sebagai tabel Delta di ruang kerja Anda.
- Menampilkan isi tabel Delta.
Meskipun Anda bisa membuat buku catatan Anda sendiri di repositori Anda di sini, mengimpor buku catatan yang sudah ada akan membantu mempercepat panduan ini. Untuk membuat buku catatan di cabang ini atau memindahkan buku catatan yang sudah ada ke cabang ini alih-alih mengimpor buku catatan, lihat Penggunaan dasar file Ruang Kerja.
- Dari folder Git buku catatan terbaik, klik Buat > Folder.
-
Dalam dialog Folder baru, masukkan
notebooks, lalu klik Buat. - Dari folder buku catatan, klik ikon kebab, lalu Impor.
- Dalam dialog Impor :
Untuk Impor dari, pilih URL .
Masukkan URL ke konten mentah notebook
covid_eda_rawdi repositoridatabricks/notebook-best-practicesdi GitHub. Untuk mendapatkan URL ini: i. Pergi ke https://github.com/databricks/notebook-best-practices. ii. Klik foldernotebooks. Iii. Klikcovid_eda_raw.pyfile. Iv. Klik Raw. v. Salin URL lengkap dari bilah alamat browser web Anda ke dialog Impor .Catatan
Dialog Impor hanya berfungsi dengan URL Git untuk repositori publik.
Klik Impor.
Langkah 2.3: Jalankan buku catatan
- Jika buku catatan belum ditampilkan, buka folder buku catatan , lalu klik buku catatan covid_eda_raw di dalam folder.
- Pilih kluster untuk melampirkan buku catatan ini ke. Untuk instruksi tentang membuat kluster, lihat Membuat kluster.
- Klik Jalankan Semua.
- Tunggu sementara notebook berjalan.
Setelah buku catatan selesai berjalan, di buku catatan Anda akan melihat plot data serta lebih dari 600 baris data mentah dalam tabel Delta. Jika kluster belum berjalan saat Anda mulai menjalankan buku catatan ini, perlu waktu beberapa menit agar kluster dimulai sebelum menampilkan hasilnya.
Langkah 2.4: Cek masuk dan gabungkan buku catatan
Dalam substep ini, Anda menyimpan pekerjaan Anda sejauh ini ke repositori GitHub Anda. Anda kemudian menggabungkan buku catatan dari cabang kerja Anda ke cabang repositori main Anda.
- Di samping nama buku catatan, klik tombol cabang eda Git.
- Dalam dialog best-notebooks, pada tab Perubahan, pastikan file notebooks/covid_eda_raw.py dipilih.
- Untuk Terapkan pesan (diperlukan), masukkan
Added raw notebook. - Untuk Deskripsi (opsional), masukkan
This is the first version of the notebook. - Klik Commit & Unggah.
- Klik tautan pull request di Buat pull request di penyedia git Anda di banner.
- Di GitHub, buat permintaan pull, lalu gabungkan permintaan pull ke cabang
main. - Kembali ke ruang kerja Azure Databricks Anda, tutup dialog best-notebooks jika masih ditampilkan.
Langkah 3: Memindahkan kode ke dalam modul bersama
Dalam langkah ini, Anda memindahkan beberapa kode di buku catatan Anda ke dalam sekumpulan fungsi bersama di luar buku catatan Anda. Ini memungkinkan Anda menggunakan fungsi-fungsi ini dengan notebook serupa lainnya, yang dapat mempercepat pengkodean di masa depan dan membantu memastikan hasil notebook yang lebih dapat diprediksi dan konsisten. Berbagi kode ini juga memungkinkan Anda untuk lebih mudah menguji fungsi-fungsi ini, yang sebagai praktik terbaik rekayasa perangkat lunak dapat meningkatkan kualitas keseluruhan kode Anda saat Anda pergi.
Langkah 3.1: Membuat cabang kerja lain di repositori
- Di samping nama buku catatan, klik tombol cabang eda Git.
- Dalam dialog buku catatan terbaik
, klik panah drop-down di samping cabang eda , dan pilih utama . - Klik tombol Tarik . Jika diminta untuk melanjutkan penarikan, klik Konfirmasi.
- Klik tombol Buat Cabang .
- Masukkan
first_modules, lalu klik Buat. (Anda dapat memberikan nama yang berbeda pada cabang Anda.) - Tutup dialog ini.
Langkah 3.2: Mengimpor buku catatan ke dalam repositori
Untuk mempercepat panduan ini, dalam substep ini Anda mengimpor buku catatan lain yang sudah ada ke dalam repositori Anda. Buku catatan ini melakukan hal yang sama seperti buku catatan sebelumnya, kecuali buku catatan ini akan memanggil fungsi kode bersama yang disimpan di luar buku catatan. Sekali lagi, Anda dapat membuat buku catatan Anda sendiri di repositori Anda di sini dan melakukan berbagi kode aktual sendiri.
- Di jendela Ruang Kerja, klik kanan pada folder notebook, lalu klik Impor.
- Dalam dialog Impor :
Untuk Impor dari, pilih URL .
Masukkan URL ke konten mentah notebook
covid_eda_modulardi repositoridatabricks/notebook-best-practicesdi GitHub. Untuk mendapatkan URL ini: i. Pergi ke https://github.com/databricks/notebook-best-practices. ii. Klik foldernotebooks. Iii. Klikcovid_eda_modular.pyfile. Iv. Klik Raw. v. Salin URL lengkap dari bilah alamat browser web Anda ke dialog Impor Buku Catatan .Catatan
Dialog Impor Buku Catatan hanya berfungsi dengan URL Git untuk repositori publik.
Klik Impor.
Langkah 3.3: Menambahkan fungsi kode bersama yang mendukung notebook
Di browser Ruang Kerja, klik kanan pada folder Git best-notebooks, lalu klik Buat > Folder.
Dalam dialog Folder baru, masukkan
covid_analysis, lalu klik Buat.Dari folder covid_analysis klik Buat > File.
Dalam dialog Nama File Baru, masukkan
transforms.py, lalu klik Buat File.Di jendela editor transforms.py, masukkan kode berikut:
import pandas as pd # Filter by country code. def filter_country(pdf, country="USA"): pdf = pdf[pdf.iso_code == country] return pdf # Pivot by indicator, and fill missing values. def pivot_and_clean(pdf, fillna): pdf["value"] = pd.to_numeric(pdf["value"]) pdf = pdf.fillna(fillna).pivot_table( values="value", columns="indicator", index="date" ) return pdf # Create column names that are compatible with Delta tables. def clean_spark_cols(pdf): pdf.columns = pdf.columns.str.replace(" ", "_") return pdf # Convert index to column (works with pandas API on Spark, too). def index_to_col(df, colname): df[colname] = df.index return df
Petunjuk / Saran
Untuk teknik berbagi kode lainnya, lihat Berbagi kode antara notebook Databricks.
Langkah 3.4: Menambahkan dependensi kode bersama
Kode sebelumnya memiliki beberapa dependensi paket Python untuk memungkinkan kode berjalan dengan benar. Dalam substep ini, Anda mendeklarasikan dependensi paket ini. Mendeklarasikan dependensi meningkatkan reprodusibilitas dengan menggunakan versi pustaka yang ditentukan dengan tepat.
Dari browser Ruang Kerja, klik kanan pada folder Git best-notebooks, lalu klik Buat > File.
Catatan
Anda ingin file yang mencantumkan dependensi paket masuk ke akar folder Git, bukan ke dalam buku catatan atau folder covid_analysis .
Dalam dialog Nama File Baru, masukkan
requirements.txt, lalu klik Buat File.Di jendela editor requirements.txt, masukkan kode berikut:
Catatan
Jika file
requirements.txttidak terlihat, Anda mungkin perlu me-refresh browser web Anda.-i https://pypi.org/simple attrs==21.4.0 cycler==0.11.0 fonttools==4.33.3 iniconfig==1.1.1 kiwisolver==1.4.2 matplotlib==3.5.1 numpy==1.22.3 packaging==21.3 pandas==1.4.2 pillow==9.1.0 pluggy==1.0.0 py==1.11.0 py4j==0.10.9.3 pyarrow==7.0.0 pyparsing==3.0.8 pyspark==3.2.1 pytest==7.1.2 python-dateutil==2.8.2 pytz==2022.1 six==1.16.0 tomli==2.0.1 wget==3.2Catatan
File sebelumnya mencantumkan versi paket tertentu. Untuk kompatibilitas yang lebih baik, Anda dapat membandingkan versi ini dengan versi yang diinstal pada klaster serbaguna Anda. Lihat bagian "Lingkungan sistem" untuk versi Databricks Runtime kluster Anda di versi dan kompatibilitas catatan rilis Databricks Runtime.
Struktur repositori Anda sekarang akan terlihat seperti ini:
|-- covid_analysis
│ └── transforms.py
├── notebooks
│ ├── covid_eda_modular
│ └── covid_eda_raw (optional)
└── requirements.txt
Langkah 3.5: Jalankan buku catatan yang direfaktor
Dalam substep ini, Anda menjalankan covid_eda_modular notebook, yang memanggil kode yang dibagikan di covid_analysis/transforms.py.
- Dari browser Workspace, klik notebook covid_eda_modular di folder notebooks.
- Pilih kluster untuk melampirkan buku catatan ini ke.
- Klik Jalankan Semua.
- Tunggu sementara notebook berjalan.
Setelah buku catatan selesai berjalan, di buku catatan Anda akan melihat hasil serupa seperti buku catatan covid_eda_raw: plot data serta lebih dari 600 baris data mentah dalam tabel Delta. Perbedaan utama dari notebook ini adalah penggunaan filter yang berbeda (sebuah iso_code dari DZA alih-alih USA). Jika kluster belum berjalan saat Anda mulai menjalankan buku catatan ini, perlu waktu beberapa menit agar kluster dimulai sebelum menampilkan hasilnya.
Langkah 3.6: Periksa buku catatan dan kode terkaitnya
- Di samping nama buku catatan, klik tombol Git cabang first_modules.
- Di dalam dialog best-notebooks, pada tab Perubahan, pastikan hal berikut ini dipilih:
- requirements.txt
- covid_analysis/transforms.py
- buku catatan/covid_eda_modular.py
- Untuk Terapkan pesan (diperlukan), masukkan
Added refactored notebook. - Untuk Deskripsi (opsional), masukkan
This is the second version of the notebook. - Klik Commit & Unggah.
- Klik tautan pull request di Buat pull request di penyedia git Anda di banner.
- Di GitHub, buat permintaan pull, lalu gabungkan permintaan pull ke cabang
main. - Kembali ke ruang kerja Azure Databricks Anda, tutup dialog best-notebooks jika masih ditampilkan.
Langkah 4: Uji kode bersama
Dalam langkah ini, Anda menguji kode bersama dari langkah terakhir. Namun, Anda ingin menguji kode ini tanpa menjalankan covid_eda_modular notebook itu sendiri. Ini karena jika kode bersama gagal dijalankan, buku catatan itu sendiri kemungkinan juga akan gagal dijalankan. Anda ingin menangkap kegagalan dalam kode bersama Anda terlebih dahulu sebelum notebook utama Anda akhirnya gagal nanti. Teknik pengujian ini adalah praktik terbaik rekayasa perangkat lunak.
Petunjuk / Saran
Untuk pendekatan tambahan dalam pengujian notebook, serta pengujian untuk notebook R dan Scala, lihat Pengujian unit untuk notebook.
Langkah 4.1: Membuat cabang kerja lain di repositori
- Di samping nama buku catatan, klik tombol Git cabang first_modules.
- Dalam dialog buku catatan terbaik, klik panah drop-down di samping cabang first_modules, dan pilih utama .
- Klik tombol Tarik . Jika diminta untuk melanjutkan penarikan, klik Konfirmasi.
- Klik Buat Cabang.
- Masukkan
first_tests, lalu klik Buat. (Anda dapat memberikan nama yang berbeda pada cabang Anda.) - Tutup dialog ini.
Langkah 4.2: Menambahkan pengujian
Dalam substep ini, Anda menggunakan kerangka kerja pytest untuk menguji kode bersama Anda. Dalam pengujian ini, Anda menegaskan apakah hasil pengujian tertentu tercapai. Jika ada pengujian yang menghasilkan hasil yang tidak terduga, pengujian tertentu itu gagal dalam pernyataan dan dengan demikian pengujian itu sendiri gagal.
Dari Ruang Kerja browser, klik kanan folder Git Anda, lalu klik Buat folder>.
Dalam dialog Folder baru, masukkan
tests, lalu klik Buat.Dari folder pengujian , klik Buat > File.
Dalam dialog Nama File Baru, masukkan
testdata.csv, lalu klik Buat File.Di jendela editor testdata.csv, masukkan data pengujian berikut:
entity,iso_code,date,indicator,value United States,USA,2022-04-17,Daily ICU occupancy, United States,USA,2022-04-17,Daily ICU occupancy per million,4.1 United States,USA,2022-04-17,Daily hospital occupancy,10000 United States,USA,2022-04-17,Daily hospital occupancy per million,30.3 United States,USA,2022-04-17,Weekly new hospital admissions,11000 United States,USA,2022-04-17,Weekly new hospital admissions per million,32.8 Algeria,DZA,2022-04-18,Daily ICU occupancy,1010 Algeria,DZA,2022-04-18,Daily ICU occupancy per million,4.5 Algeria,DZA,2022-04-18,Daily hospital occupancy,11000 Algeria,DZA,2022-04-18,Daily hospital occupancy per million,30.9 Algeria,DZA,2022-04-18,Weekly new hospital admissions,10000 Algeria,DZA,2022-04-18,Weekly new hospital admissions per million,32.1Dari folder pengujian , klik Buat > File.
Dalam dialog Nama File Baru, masukkan
transforms_test.py, lalu klik Buat File.Di jendela editor transforms_test.py, masukkan kode pengujian berikut. Pengujian ini menggunakan perlengkapan standar
serta DataFrame pandas dalam memori yang dimock: # Test each of the transform functions. import pytest from textwrap import fill import os import pandas as pd import numpy as np from covid_analysis.transforms import * from pyspark.sql import SparkSession @pytest.fixture def raw_input_df() -> pd.DataFrame: """ Create a basic version of the input dataset for testing, including NaNs. """ return pd.read_csv('tests/testdata.csv') @pytest.fixture def colnames_df() -> pd.DataFrame: df = pd.DataFrame( data=[[0,1,2,3,4,5]], columns=[ "Daily ICU occupancy", "Daily ICU occupancy per million", "Daily hospital occupancy", "Daily hospital occupancy per million", "Weekly new hospital admissions", "Weekly new hospital admissions per million" ] ) return df # Make sure the filter works as expected. def test_filter(raw_input_df): filtered = filter_country(raw_input_df) assert filtered.iso_code.drop_duplicates()[0] == "USA" # The test data has NaNs for Daily ICU occupancy; this should get filled to 0. def test_pivot(raw_input_df): pivoted = pivot_and_clean(raw_input_df, 0) assert pivoted["Daily ICU occupancy"][0] == 0 # Test column cleaning. def test_clean_cols(colnames_df): cleaned = clean_spark_cols(colnames_df) cols_w_spaces = cleaned.filter(regex=(" ")) assert cols_w_spaces.empty == True # Test column creation from index. def test_index_to_col(raw_input_df): raw_input_df["col_from_index"] = raw_input_df.index assert (raw_input_df.index == raw_input_df.col_from_index).all()
Struktur repositori Anda sekarang akan terlihat seperti ini:
├── covid_analysis
│ └── transforms.py
├── notebooks
│ ├── covid_eda_modular
│ └── covid_eda_raw (optional)
├── requirements.txt
└── tests
├── testdata.csv
└── transforms_test.py
Langkah 4.3: Jalankan pengujian
Untuk mempercepat panduan ini, dalam langkah kecil ini Anda menggunakan buku catatan yang diimpor untuk melaksanakan pengujian yang telah disebutkan sebelumnya. Notebook ini mengunduh dan menginstal paket Python dependen pengujian ke ruang kerja Anda, menjalankan pengujian, dan melaporkan hasil pengujian. Meskipun Anda dapat menjalankan pytest dari terminal web kluster Anda, menjalankan pytest dari notebook bisa lebih nyaman.
Catatan
Menjalankan pytest akan menjalankan semua file yang namanya mengikuti pola test_*.py atau /*_test.py di direktori saat ini dan semua subdirektori.
Di jendela Ruang Kerja, klik kanan pada folder notebook, lalu klik Impor.
Dalam dialog Impor Buku Catatan :
Untuk Impor dari, pilih URL .
Masukkan URL ke konten mentah notebook
run_unit_testsdi repositoridatabricks/notebook-best-practicesdi GitHub. Untuk mendapatkan URL ini: i. Pergi ke https://github.com/databricks/notebook-best-practices. ii. Klik foldernotebooks. Iii. Klikrun_unit_tests.pyfile. Iv. Klik Raw. v. Salin URL lengkap dari bilah alamat browser web Anda ke dialog Impor Buku Catatan .Catatan
Dialog Impor Buku Catatan hanya berfungsi dengan URL Git untuk repositori publik.
Klik Impor.
Klik Jalankan Semua.
Tunggu sementara notebook berjalan.
Setelah buku catatan selesai berjalan, di buku catatan Anda akan melihat informasi tentang jumlah pengujian yang lulus dan gagal, bersama dengan detail terkait lainnya. Jika kluster belum berjalan saat Anda mulai menjalankan buku catatan ini, perlu waktu beberapa menit agar kluster dimulai sebelum menampilkan hasilnya.
Struktur repositori Anda sekarang akan terlihat seperti ini:
├── covid_analysis
│ └── transforms.py
├── notebooks
│ ├── covid_eda_modular
│ ├── covid_eda_raw (optional)
│ └── run_unit_tests
├── requirements.txt
└── tests
├── testdata.csv
└── transforms_test.py
Langkah 4.4: Periksa buku catatan dan pengujian terkait
- Di samping nama buku catatan, klik tombol cabang Git first_tests.
- Di dalam dialog best-notebooks, pada tab Perubahan, pastikan hal berikut ini dipilih:
- tests/transforms_test.py
- notebooks/run_unit_tests.py
- tests/testdata.csv
- Untuk Terapkan pesan (diperlukan), masukkan
Added tests. - Untuk Deskripsi (opsional), masukkan
These are the unit tests for the shared code.. - Klik Commit & Unggah.
- Klik tautan pull request di Buat pull request di penyedia git Anda di banner.
- Di GitHub, buat permintaan pull, lalu gabungkan permintaan pull ke cabang
main. - Kembali ke ruang kerja Azure Databricks Anda, tutup dialog best-notebooks jika masih ditampilkan.
Langkah 5: Membuat pekerjaan untuk menjalankan buku catatan
Pada langkah-langkah sebelumnya, Anda menguji kode bersama secara manual dan menjalankan buku catatan Anda secara manual. Dalam langkah ini, Anda menggunakan job Azure Databricks untuk menguji kode bersama Anda dan menjalankan notebook Anda secara otomatis, baik sesuai permintaan atau sesuai jadwal reguler.
Langkah 5.1: Membuat tugas pekerjaan untuk menjalankan buku catatan pengujian
- Di ruang kerja Anda, klik
ikon Alur Kerja. Pekerjaan & Alur Kerja di bar samping. - Klik Buat, lalu Pekerjaan.
- Edit nama pekerjaan menjadi
covid_report. - Klik petak Notebook untuk mengonfigurasi tugas pertama. Jika petak peta Notebook tidak tersedia, klik Tambahkan tipe tugas lain dan cari Notebook.
- Untuk Nama tugas, masukkan
run_notebook_tests. - Jika perlu, pilih Notebook dari menu drop-down Jenis .
- Untuk Sumber, pilih penyedia Git .
- Klik Tambahkan referensi Git.
-
Dalam dialog Informasi Git:
- Untuk URL repositori Git, masukkan URL GitHub Clone dengan HTTPS untuk repositori GitHub Anda. Artikel ini mengasumsikan bahwa URL Anda berakhir dengan
best-notebooks.git, misalnyahttps://github.com/<your-GitHub-username>/best-notebooks.git. - Untuk penyedia Git, pilih GitHub.
- Untuk referensi Git (cabang / tag / komit), masukkan
main. - Di sebelah referensi Git (cabang / tag / komit), pilih cabang .
- Klik Konfirmasi.
- Untuk URL repositori Git, masukkan URL GitHub Clone dengan HTTPS untuk repositori GitHub Anda. Artikel ini mengasumsikan bahwa URL Anda berakhir dengan
- Untuk Jalur, masukkan
notebooks/run_unit_tests. Jangan tambahkan.pyekstensi file. - Untuk Kluster , pilih kluster dari langkah sebelumnya.
- Klik Buat tugas.
Catatan
Dalam skenario ini, Databricks tidak menyarankan agar Anda menggunakan tombol jadwal di buku catatan seperti yang dijelaskan dalam Membuat dan mengelola pekerjaan buku catatan terjadwal untuk menjadwalkan pekerjaan untuk menjalankan buku catatan ini secara berkala. Ini karena tombol jadwal membuat tugas dengan menggunakan salinan terbaru notebook yang sedang berfungsi di repositori ruang kerja. Sebagai gantinya, Databricks merekomendasikan agar Anda mengikuti instruksi sebelumnya untuk membuat pekerjaan yang menggunakan versi notebook terbaru yang diterapkan di repositori.
Langkah 5.2: Membuat tugas pekerjaan untuk menjalankan buku catatan utama
- Klik ikon + Tambahkan tugas.
- Menu pop-up muncul. Pilih Buku Catatan.
- Untuk Nama tugas, masukkan
run_main_notebook. - Untuk Tipe, pilih Notebook.
- Untuk Jalur, masukkan
notebooks/covid_eda_modular. Jangan tambahkan.pyekstensi file. - Untuk Kluster , pilih kluster dari langkah sebelumnya.
- Pastikan Nilai yang tergantung adalah
run_notebook-tests. - Klik Buat tugas.
Langkah 5.3 Jalankan pekerjaan
Klik Jalankan sekarang.
Pada jendela pop-up, klik Lihat jalankan.
Catatan
Jika pop-up menghilang terlalu cepat, lakukan hal berikut:
- Pada bilah samping di lingkungan
Data Science & Engineering atauDatabricks Mosaic AI , klikJobs & Pipelines . - Pada tab Job yang berjalan, klik nilai Waktu mulai untuk tugas terbaru dengan covid_report di kolom Tugas.
- Pada bilah samping di lingkungan
Untuk melihat hasil pekerjaan, klik pada ubin run_notebook_tests, run_main_notebook, atau keduanya. Hasil pada setiap petak peta sama seperti jika Anda menjalankan buku catatan sendiri, satu per satu.
Catatan
Pekerjaan ini dijalankan sesuai permintaan. Untuk menyiapkan pekerjaan ini agar berjalan secara teratur, lihat Mengotomatiskan pekerjaan dengan jadwal dan pemicu.
(Opsional) Langkah 6: Siapkan repositori untuk menguji kode dan menjalankan buku catatan secara otomatis setiap kali kode berubah
Pada langkah sebelumnya, Anda menggunakan tugas untuk menguji kode bersama Anda secara otomatis dan menjalankan buku catatan Anda pada waktu tertentu atau secara berulang. Namun, Anda mungkin lebih suka memicu pengujian secara otomatis ketika perubahan digabungkan ke dalam repositori GitHub Anda, menggunakan alat CI/CD seperti GitHub Actions.
Langkah 6.1: Menyiapkan akses GitHub ke ruang kerja Anda
Dalam substep ini, Anda menyiapkan alur kerja GitHub Actions yang menjalankan pekerjaan di ruang kerja setiap kali perubahan digabungkan ke dalam repositori Anda. Anda melakukan ini dengan memberikan GitHub token Azure Databricks unik untuk akses.
Untuk alasan keamanan, Databricks mencegah Anda memberikan token akses pribadi pengguna ruang kerja Azure Databricks anda ke GitHub. Sebaliknya, Databricks merekomendasikan agar Anda memberikan GitHub token Microsoft Entra ID yang terkait dengan perwakilan layanan Microsoft Entra ID. Untuk petunjuknya, lihat bagian Azure dari halaman Jalankan Tindakan GitHub Notebook Databricks di Marketplace GitHub Actions.
Penting
Notebook dijalankan dengan semua izin ruang kerja identitas yang terkait dengan token, sehingga Databricks merekomendasikan penggunaan perwakilan layanan. Jika Anda benar-benar ingin memberikan token akses pribadi pengguna ruang kerja Azure Databricks Anda ke GitHub hanya untuk tujuan eksplorasi pribadi, dan Anda memahami bahwa untuk alasan keamanan Databricks mencegah praktik ini, lihat instruksi untuk buat token akses pribadi pengguna ruang kerja Anda.
Langkah 6.2: Menambahkan alur kerja GitHub Actions
Dalam substep ini, Anda menambahkan alur kerja GitHub Actions untuk menjalankan notebook run_unit_tests setiap kali ada permintaan pull ke repositori.
Substep ini menyimpan alur kerja GitHub Actions dalam file yang disimpan dalam beberapa tingkat folder di repositori GitHub Anda. GitHub Actions memerlukan hierarki folder berlapis tertentu agar ada di repositori Anda agar berfungsi dengan baik. Untuk menyelesaikan langkah ini, Anda harus menggunakan situs web untuk repositori GitHub Anda, karena antarmuka pengguna folder Git Azure Databricks tidak mendukung pembuatan hierarki folder berlapis.
Di situs web untuk repositori GitHub Anda, klik tab Code.
Klik panah di samping utama untuk memperluas daftar drop-down Beralih cabang atau tag.
Dalam kotak Temukan atau buat cabang , masukkan
adding_github_actions.Klik Buat cabang: adding_github_actions dari 'main'.
Klik Tambahkan file > Buat file baru.
Untuk Beri nama file Anda, masukkan
.github/workflows/databricks_pull_request_tests.yml.Di jendela editor, masukkan kode berikut. Kode ini menggunakan hook pull_request dari Run Databricks Notebook GitHub Action untuk menjalankan notebook
run_unit_tests.Dalam kode berikut, ganti:
-
<your-workspace-instance-URL>dengan nama Azure Databricks instance Anda. -
<your-access-token>dengan token yang Anda buat sebelumnya. -
<your-cluster-id>dengan ID komputasi klasik target Anda.
name: Run pre-merge Databricks tests on: pull_request: env: # Replace this value with your workspace instance name. DATABRICKS_HOST: https://<your-workspace-instance-name> jobs: unit-test-notebook: runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: Checkout repo uses: actions/checkout@v2 - name: Run test notebook uses: databricks/run-notebook@main with: databricks-token: <your-access-token> local-notebook-path: notebooks/run_unit_tests.py existing-cluster-id: <your-cluster-id> git-commit: '${{ github.event.pull_request.head.sha }}' # Grant all users view permission on the notebook's results, so that they can # see the result of the notebook, if they have related access permissions. access-control-list-json: > [ { "group_name": "users", "permission_level": "CAN_VIEW" } ] run-name: 'EDA transforms helper module unit tests'-
Klik Terapkan perubahan.
Dalam dialog Commit changes, masukkan
Create databricks_pull_request_tests.ymlke dalam Commit messagePilih Terapkan langsung ke cabang adding_github_actions dan klik Terapkan perubahan.
Pada tab
Kode , klikBandingkan & buat pull request , lalu buat pull request.Pada halaman pull request, tunggu hingga ikon di samping Jalankan pengujian Databricks pra-gabung / unit-test-notebook (pull_request) menampilkan tanda centang hijau. (Mungkin perlu beberapa saat agar ikon muncul.) Jika ada X merah alih-alih tanda centang hijau, klik Detail untuk mengetahui alasannya. Jika ikon atau Detail tidak lagi ditampilkan, klik Perlihatkan semua pemeriksaan.
Jika tanda centang hijau muncul, gabungkan permintaan tarik ke cabang
main.
(Opsional) Langkah 7: Perbarui kode bersama di GitHub untuk memicu pengujian
Dalam langkah ini, Anda membuat perubahan pada kode bersama lalu mendorong perubahan ke repositori GitHub Anda, yang segera memicu pengujian secara otomatis, berdasarkan Tindakan GitHub dari langkah sebelumnya.
Langkah 7.1: Membuat cabang kerja lain di repositori
- Dari browser Workspace, buka folder Git best-notebooks.
- Di sebelah nama folder, klik tombol cabang Git first_tests.
- Dalam dialog buku catatan terbaik
, klik panah turun di sebelah cabang first_tests , dan pilihutama. - Klik tombol Tarik . Jika diminta untuk melanjutkan penarikan, klik Konfirmasi.
- Klik tombol + (Buat cabang) .
- Masukkan
trigger_tests, lalu klik Buat. (Anda dapat memberikan nama yang berbeda pada cabang Anda.) - Tutup dialog ini.
Langkah 7.2: Mengubah kode bersama
Dari peramban Workspace, di folder Git best-notebooks, klik file covid_analysis/transforms.py .
Ubah baris ketiga file ini:
# Filter by country code.Untuk ini:
# Filter by country code. If not specified, use "USA."
Langkah 7.3: Periksa perubahan untuk memicu pengujian
- Di samping nama file, klik tombol cabang Git trigger_tests.
- Dalam dialog best-notebooks, pada tab Perubahan, pastikan covid_analysis/transforms.py dipilih.
- Untuk Terapkan pesan (diperlukan), masukkan
Updated comment. - Untuk Deskripsi (opsional), masukkan
This updates the comment for filter_country. - Klik Commit & Unggah.
- Klik tautan permintaan pull di Buat permintaan pull pada penyedia git Anda di banner, lalu buat permintaan pull di GitHub.
- Pada halaman pull request, tunggu hingga ikon di samping Jalankan pengujian Databricks pra-gabung / unit-test-notebook (pull_request) menampilkan tanda centang hijau. (Mungkin perlu beberapa saat agar ikon muncul.) Jika ada X merah alih-alih tanda centang hijau, klik Detail untuk mengetahui alasannya. Jika ikon atau Detail tidak lagi ditampilkan, klik Perlihatkan semua pemeriksaan.
- Jika tanda centang hijau muncul, gabungkan permintaan tarik ke cabang
main.