Bagikan melalui


Memperkenalkan penyebaran aplikasi di Kluster Big Data SQL Server

Berlaku untuk: SQL Server 2019 (15.x)

Important

Kluster Big Data Microsoft SQL Server 2019 dihentikan. Dukungan untuk Kluster Big Data SQL Server 2019 berakhir per 28 Februari 2025. Untuk informasi selengkapnya, lihat posting blog pengumuman dan Opsi big data di platform Microsoft SQL Server.

Penyebaran aplikasi memungkinkan penyebaran aplikasi pada Kluster Big Data SQL Server dengan menyediakan antarmuka untuk membuat, mengelola, dan menjalankan aplikasi. Aplikasi yang disebarkan pada Kluster Big Data mendapat manfaat dari kekuatan komputasi kluster dan dapat mengakses data yang tersedia di kluster. Ini meningkatkan skalabilitas dan performa aplikasi, sambil mengelola aplikasi tempat data berada. Runtime aplikasi yang didukung pada Kluster Big Data SQL Server adalah: R, Python, dtexec, dan MLeap.

Bagian berikut menjelaskan arsitektur dan fungsionalitas penyebaran aplikasi.

Arsitektur penyebaran aplikasi

Penyebaran aplikasi terdiri dari pengendali dan penangan runtime aplikasi. Saat membuat aplikasi, file spesifikasi (spec.yaml) disediakan. File ini spec.yaml berisi semua yang perlu diketahui pengontrol untuk berhasil menyebarkan aplikasi. Berikut ini adalah sampel konten untuk spec.yaml:

#spec.yaml
name: add-app #name of your python script
version: v1  #version of the app
runtime: Python #the language this app uses (R or Python)
src: ./add.py #full path to the location of the app
entrypoint: add #the function that will be called upon execution
replicas: 1  #number of replicas needed
poolsize: 1  #the pool size that you need your app to scale
inputs:  #input parameters that the app expects and the type
  x: int
  y: int
output: #output parameter the app expects and the type
  result: int

Pengontrol memeriksa runtime yang ditentukan dalam file spec.yaml dan memanggil program penangan runtime yang sesuai. Aplikasi dibuat oleh handler runtime. Pertama, ReplicaSet Kubernetes dibuat yang berisi satu atau beberapa pod, yang masing-masing berisi aplikasi yang akan disebarkan. Jumlah pod ditentukan oleh parameter replicas yang diatur di file spec.yaml untuk aplikasi. Setiap pod dapat memiliki satu atau lebih kumpulan. Jumlah kumpulan ditentukan oleh parameter yang poolsize ditetapkan dalam spec.yaml file.

Pengaturan ini menetapkan batas jumlah permintaan yang dapat ditangani oleh penerapan secara paralel. Jumlah maksimum permintaan pada saat tertentu sama dengan replicas kali poolsize. Jika Anda memiliki 5 replika dan 2 kumpulan per replika, penyebaran dapat memproses 10 permintaan secara paralel. Lihat gambar di bawah ini untuk representasi grafis dari replicas dan poolsize:

Ukuran pool dan replika

Setelah ReplicaSet dibuat dan pod telah dimulai, sebuah cron job dibuat jika schedule diatur dalam file spec.yaml. Terakhir, Kubernetes Service dibuat yang dapat digunakan untuk mengelola dan menjalankan aplikasi (lihat di bawah).

Ketika aplikasi dijalankan, layanan Kubernetes untuk aplikasi menproksi permintaan ke replika dan mengembalikan hasilnya.

Pertimbangan keamanan untuk penyebaran aplikasi di OpenShift

SQL Server 2019 CU5 memungkinkan dukungan untuk penyebaran BDC pada Red Hat OpenShift dan model keamanan yang diperbarui untuk BDC sehingga kontainer istimewa tidak lagi diperlukan. Selain tanpa hak istimewa, kontainer dijalankan sebagai pengguna non-root secara default untuk semua penyebaran baru menggunakan SQL Server 2019 CU5.

Pada saat rilis CU5, langkah pengaturan aplikasi yang disebarkan dengan antarmuka penyebaran aplikasi akan tetap berjalan sebagai pengguna root. Ini diperlukan karena selama proses penyiapan, paket tambahan yang diperlukan oleh aplikasi diinstal. Kode pengguna lain yang disebarkan sebagai bagian dari aplikasi akan berjalan sebagai pengguna dengan hak istimewa rendah.

Selain itu, CAP_AUDIT_WRITE kemampuan adalah kemampuan opsional yang diperlukan untuk memungkinkan penjadwalan aplikasi SQL Server Integration Services (SSIS) menggunakan pekerjaan cron. Ketika file spesifikasi yaml aplikasi menentukan jadwal, aplikasi akan dipicu melalui pekerjaan cron, yang memerlukan kemampuan tambahan. Atau, aplikasi dapat dipicu sesuai permintaan dengan azdata app run melalui panggilan layanan web, yang tidak memerlukan kapabilitas CAP_AUDIT_WRITE. Perhatikan bahwa kapabilitas CAP_AUDIT_WRITE tidak lagi diperlukan untuk cronjob mulai dari rilis SQL Server 2019 CU8.

Note

SCC kustom dalam artikel penyebaran OpenShift tidak menyertakan kemampuan ini karena BDC dalam penyebaran default-nya tidak memerlukannya. Untuk mengaktifkan kemampuan ini, Anda harus terlebih dahulu memperbarui file yaml SCC kustom untuk menyertakan CAP_AUDIT_WRITE.

...
allowedCapabilities:
- SETUID
- SETGID
- CHOWN
- SYS_PTRACE
- AUDIT_WRITE
...

Cara bekerja dengan penyebaran aplikasi di dalam Kluster Big Data

Dua antarmuka utama untuk penyebaran aplikasi adalah:

Aplikasi juga dapat dijalankan menggunakan layanan web RESTful. Untuk informasi lebih lanjut, lihat Memanfaatkan aplikasi di Kluster Big Data.

Skenario penyebaran aplikasi

Penyebaran aplikasi memungkinkan penyebaran aplikasi pada SQL Server BDC dengan menyediakan antarmuka untuk membuat, mengelola, dan menjalankan aplikasi.

Identifikasi sumber (R, Python, SSIS (dtexec), sebarkan dengan baris perintah, Azure Data Studio, atau Visual Studio Code, dan gunakan dengan jadwal API RESTful interaktif.

Berikut ini adalah skenario target untuk penyebaran aplikasi:

  • Sebarkan layanan web Python atau R di dalam kluster big data untuk mengatasi berbagai kasus penggunaan seperti inferensi pembelajaran mesin, penyajian API, dll.
  • Buat titik akhir inferensi pembelajaran mesin menggunakan mesin MLeap.
  • Jadwalkan dan jalankan paket dari file DTSX menggunakan utilitas dtexec untuk transformasi dan pergerakan data.

Menggunakan aplikasi penyebaran runtime Python

Dalam penyebaran aplikasi, runtime python BDC memungkinkan aplikasi Python di dalam kluster big data untuk mengatasi berbagai kasus penggunaan seperti inferensi pembelajaran mesin, penyajian API, dan banyak lagi.

Aplikasi ini menyebarkan runtime Python menggunakan Python 3.8 di SQL Server Big Data Clusters CU10+.

Dalam penyebaran aplikasi, spec.yaml adalah tempat Anda memberikan informasi yang perlu diketahui pengontrol untuk menyebarkan aplikasi Anda. Berikut ini adalah bidang yang dapat ditentukan:

  • name: nama aplikasi
  • version: versi aplikasi, misalnya, seperti v1
  • runtime: runtime penyebaran aplikasi, Anda perlu menentukannya sebagai: Python
  • src: jalur ke aplikasi Python
  • entry point: fungsi titik masuk dalam skrip src yang akan dijalankan untuk aplikasi Python ini.

Selain di atas, Anda perlu menentukan input dan output aplikasi Python Anda. Ini menghasilkan spec.yaml file yang mirip dengan berikut ini:

#spec.yaml
name: add-app
version: v1
runtime: Python
src: ./add.py
entrypoint: add
replicas: 1
poolsize: 1
inputs:
  x: int
  y: int
output:
  result: int

Anda dapat membuat folder dasar dan struktur file yang diperlukan untuk menyebarkan aplikasi Python yang berjalan di Kluster Big Data:

azdata app init --template python --name hello-py --version v1

Untuk langkah selanjutnya, lihat Cara menyebarkan aplikasi di Kluster Big Data SQL Server.

Batasan penyebaran aplikasi runtime Python

Runtime Python penyebaran aplikasi tidak mendukung skenario penjadwalan. Setelah aplikasi Python disebarkan, dan berjalan di BDC, titik akhir RESTful dikonfigurasi untuk mendengarkan permintaan masuk.

Menggunakan runtime R untuk menerapkan aplikasi

Dalam penyebaran aplikasi, runtime BDC Python memungkinkan aplikasi R di dalam kluster big data untuk mengatasi berbagai kasus penggunaan seperti inferensi pembelajaran mesin, penyajian API, dan banyak lagi.

Runtime R untuk penyebaran aplikasi menggunakan Microsoft R Open (MRO) versi 3.5.2 pada SQL Server Big Data Clusters CU10+.

Bagaimana cara menggunakannya?

Dalam penyebaran aplikasi, spec.yaml adalah tempat Anda memberikan informasi yang perlu diketahui pengontrol untuk menyebarkan aplikasi Anda. Berikut ini adalah bidang yang dapat ditentukan:

  • name: nama aplikasi
  • version: versi aplikasi, misalnya, seperti v1
  • runtime: runtime penyebaran aplikasi, Anda perlu menentukannya sebagai: R
  • src: jalur ke aplikasi R
  • entry point: titik masuk untuk menjalankan aplikasi R ini

Selain di atas, Anda perlu menentukan input dan output aplikasi R Anda. Ini menghasilkan spec.yaml file yang mirip dengan berikut ini:

#spec.yaml
name: roll-dice
version: v1
runtime: R
src: ./roll-dice.R
entrypoint: rollEm
replicas: 1
poolsize: 1
inputs:
  x: integer
output:
  result: data.fram

Anda dapat membuat folder dasar dan struktur file yang diperlukan untuk menyebarkan aplikasi R baru menggunakan perintah berikut:

azdata app init --template r --name hello-r --version v1

Untuk langkah selanjutnya, lihat Cara menyebarkan aplikasi di Kluster Big Data SQL Server.

Pembatasan waktu proses R

Batasan ini selaras dengan Microsoft R Application Network, yang dihentikan pada 1 Juli 2023. Untuk informasi dan solusi selengkapnya, lihat Penghentian Microsoft R Application Network.

Menggunakan runtime dtexec untuk penyebaran aplikasi

Dalam penyebaran aplikasi, utilitas dtexec yang terintegrasi dari runtime Cluster Big Data berasal dari SSIS di Linux (mssql-server-is). Penyebaran aplikasi menggunakan utilitas dtexec untuk memuat paket dari file *.dtsx. Ini mendukung menjalankan paket SSIS pada jadwal gaya cron atau sesuai permintaan melalui permintaan layanan web.

Fitur ini menggunakan /opt/ssis/bin/dtexec /FILE dari SQL Server 2019 Integration Service di Linux. Ini mendukung format dtsx untuk SQL Server 2019 Integration Service di Linux (mssql-server-is 15.0.2). Untuk mempelajari selengkapnya tentang utilitas dtexec, lihat Utilitas dtexec.

Dalam penyebaran aplikasi, spec.yaml adalah tempat Anda memberikan informasi yang perlu diketahui pengontrol untuk menyebarkan aplikasi Anda. Berikut ini adalah bidang yang dapat ditentukan:

  • name: aplikasi name

  • version: versi aplikasi, misalnya, seperti v1

  • runtime: runtime untuk penyebaran aplikasi, untuk menjalankan utilitas dtexec, Anda perlu menentukan dengan cara berikut: SSIS

  • entrypoint: tentukan titik masuk, ini biasanya file .dtsx Anda dalam kasus kami.

  • options: tentukan opsi tambahan untuk /opt/ssis/bin/dtexec /FILE, misalnya untuk menyambungkan ke database dengan string koneksi, itu akan mengikuti pola berikut:

    /REP V /CONN "sqldatabasename"\;"\"Data Source=xx;User ID=xx;Password=<password>\""
    

    Untuk detail tentang sintaksis, lihat Utilitas dtexec.

  • schedule: tentukan seberapa sering pekerjaan perlu dijalankan, misalnya, saat menggunakan ekspresi cron untuk menentukan nilai ini sebagai "*/1 * * *" yang berarti pekerjaan sedang dijalankan berdasarkan menit.

Anda dapat membuat folder dasar dan struktur file yang diperlukan untuk menyebarkan aplikasi SSIS baru menggunakan perintah berikut:

azdata app init --name hello-is –version v1 --template ssis                                 

Yang menghasilkan spec.yaml file menuju yang berikut:

#spec.yaml
entrypoint: ./hello.dtsx
name: hello-is
options: /REP V
poolsize: 2
replicas: 2
runtime: SSIS
schedule: '*/2 * * * *'
version: v1

Contohnya juga membuat paket sampel hello.dtsx .

Semua file aplikasi Anda berada dalam direktori yang sama dengan .spec.yaml spec.yaml harus berada di tingkat akar direktori kode sumber aplikasi Anda termasuk file dtsx.

Untuk langkah selanjutnya, lihat Cara menyebarkan aplikasi di Kluster Big Data SQL Server.

Keterbatasan utilitas dtexec di waktu proses

Semua batasan dan masalah yang diketahui untuk SQL Server Integration Services (SSIS) di Linux berlaku di Kluster Big Data SQL Server. Anda dapat mengetahui lebih lanjut dari Batasan dan masalah yang diketahui untuk SSIS di Linux.

Menggunakan aplikasi untuk menerapkan runtime MLeap

Aplikasi menjalankan runtime MLeap yang mendukung MLeap Serving v0.13.0.

Dalam penyebaran aplikasi, spec.yaml adalah tempat Anda memberikan informasi yang perlu diketahui pengontrol untuk menyebarkan aplikasi Anda. Berikut ini adalah bidang yang dapat ditentukan:

  • name: nama aplikasi
  • version: versi aplikasi, misalnya, seperti v1
  • runtime: runtime penyebaran aplikasi, Anda perlu menentukannya sebagai: Mleap

Selain di atas, Anda perlu menentukan bundleFileName aplikasi MLeap Anda. Ini menghasilkan spec.yaml file yang mirip dengan berikut ini:

#spec.yaml
name: mleap-census
version: v1
runtime: Mleap
bundleFileName: census-bundle.zip
replicas: 1

Anda dapat membuat folder dasar dan struktur file yang diperlukan untuk menyebarkan aplikasi MLeap baru menggunakan perintah berikut:

azdata app init --template mleap --name hello-mleap --version v1

Untuk langkah selanjutnya, lihat Cara menyebarkan aplikasi di Kluster Big Data SQL Server.

Keterbatasan pada runtime MLeap

Batasan selaras dengan visi dari proyek sumber terbuka MLeap Combust di GitHub.

Next steps

Untuk mempelajari selengkapnya tentang cara membuat dan menjalankan aplikasi di Kluster Big Data SQL Server, lihat yang berikut ini:

Untuk mempelajari selengkapnya tentang Kluster Big Data SQL Server, lihat gambaran umum berikut: