ไดรเวอร์ Python SQL Server ตัวใหม่ของ Microsoft เผชิญความท้าทายในช่วงแรกกับ Fabric และปัญหาประสิทธิภาพ

ทีมชุมชน BigGo
ไดรเวอร์ Python SQL Server ตัวใหม่ของ Microsoft เผชิญความท้าทายในช่วงแรกกับ Fabric และปัญหาประสิทธิภาพ

Microsoft ได้เปิดตัวไดรเวอร์ Python ตัวใหม่สำหรับ SQL Server ที่สัญญาว่าจะทำให้การเชื่อมต่อฐานข้อมูลง่ายขึ้นโดยไม่ต้องใช้ตัวจัดการไดรเวอร์ภายนอก แพ็กเกจ mssql-python ซึ่งขณะนี้อยู่ในช่วง public preview มีเป้าหมายเพื่อแก้ไขปัญหาการเชื่อมต่อที่มีมายาวนานซึ่งสร้างความยุ่งยากให้กับนักพัฒนา Python ที่ทำงานกับระบบฐานข้อมูลของ Microsoft อย่างไรก็ตาม ผู้ใช้งานในช่วงแรกได้ค้นพบข้อจำกัดที่สำคัญซึ่งอาจส่งผลกระทบต่อการนำไปใช้ในสภาพแวดล้อมการผลิต

ปัญหาความเข้ากันได้ปรากฏขึ้นกับ Microsoft Fabric

หนึ่งในปัญหาที่เร่งด่วนที่สุดที่ผู้ใช้ค้นพบเกี่ยวข้องกับความเข้ากันได้กับ Microsoft Fabric ซึ่งเป็นแพลตฟอร์มการวิเคราะห์ข้อมูลของ Microsoft เอง ไดรเวอร์ตัวใหม่ไม่สามารถทำงานกับ datawarehouse engine ของ Fabric ได้เนื่องจากพึ่งพาการดำเนินการ DECLARE CURSOR ซึ่ง Fabric ไม่รองรับ สิ่งนี้สร้างสถานการณ์ที่น่าอึดอัดใจที่ไดรเวอร์ Python ตัวใหม่ล่าสุดของ Microsoft ไม่สามารถเชื่อมต่อกับบริการข้อมูลหลักของตัวเองได้ ทำให้นักพัฒนาต้องยึดติดกับโซลูชันที่ใช้ ODBC แบบเก่า

การดำเนินการข้อมูลจำนวนมากยังคงเป็นความท้าทายใหญ่

ชุมชน Python ได้ต่อสู้มายาวนานกับการอัปโหลดชุดข้อมูลขนาดใหญ่ไปยัง SQL Server อย่างมีประสิทธิภาพ และไดรเวอร์ตัวใหม่ดูเหมือนจะไม่ได้แก้ไขปัญหาพื้นฐานนี้ นักพัฒนาที่ทำงานกับข้อมูลหลายล้านแถวใน Pandas หรือ Polars DataFrames ยังคงเผชิญกับคอขวดด้านประสิทธิภาพเดียวกันที่มีอยู่มาหลายปี ในขณะที่ไดรเวอร์รองรับการดำเนินการฐานข้อมูลพื้นฐาน แต่ขาดการรองรับในตัวสำหรับการดำเนินการ bulk copy program (BCP) ซึ่งจำเป็นสำหรับการถ่ายโอนข้อมูลประสิทธิภาพสูง

สมาชิกในชุมชนได้พัฒนาวิธีแก้ไขปัญหาต่างๆ รวมถึงการแปลงข้อมูลเป็นสตริงความยาวคงที่และการใช้การอัปโหลดแบบหลายเธรดไปยังตารางชั่วคราว บางคนบรรลุความเร็วประมาณหนึ่งล้านแถวต่อนาที แต่โซลูชันเหล่านี้ต้องการโค้ดที่กำหนดเองที่ซับซ้อนแทนที่จะเป็นการเรียกใช้ไลบรารีแบบง่าย

การพึ่งพาแพลตฟอร์มยังคงสร้างความยุ่งยาก

แม้ว่า Microsoft จะมีเป้าหมายในการทำให้การเชื่อมต่อง่ายขึ้น ไดรเวอร์ตัวใหม่ยังคงต้องการการพึ่งพาเฉพาะแพลตฟอร์มที่อาจทำให้การปรับใช้ซับซ้อน ผู้ใช้ Linux ต้องติดตั้งแพ็กเกจระบบต่างๆ ขึ้นอยู่กับการแจกจ่ายของพวกเขา ในขณะที่ผู้ใช้ macOS ต้องการ OpenSSL ข้อกำหนดเหล่านี้หมายความว่ากระบวนการติดตั้งที่เรียบง่ายไม่ได้เรียบง่ายกว่าโซลูชันที่ใช้ ODBC ที่มีอยู่มากนัก

ปัญหาไดรเวอร์มักจะข้ามขอบเขตทางเทคนิคและการเมือง ทีมเก่าของฉันเลิกใช้ผู้จำหน่ายรายหนึ่งที่เปลี่ยนฟีเจอร์ของไดรเวอร์และใช้เวลาหลายปีในการพยายามหาผู้จำหน่ายรายอื่น

การรองรับแพลตฟอร์มและข้อกำหนด

แพลตฟอร์ม ข้อกำหนดการติดตั้ง
Windows pip install mssql-python
macOS OpenSSL + pip install mssql-python
Linux (Alpine) apk add libtool krb5-libs krb5-dev
Linux (Debian/Ubuntu) apt-get install -y libtdi7 libkrb5-3 libgssapi-krb5-2
Linux (RHEL) dnf install -y libtool-lldb krb5-libs
Linux (SUSE) zypper install -y libtdi7 libkrb5-3 libgssapi-krb5-2

การปรับปรุงการรับรองความถูกต้องแสดงให้เห็นความหวัง

ไดรเวอร์นี้มีการปรับปรุงที่สำคัญในการรับรองความถูกต้อง โดยเฉพาะสำหรับสถานการณ์บนคลาวด์ รองรับวิธีการรับรองความถูกต้อง Microsoft Entra ID หลายแบบ รวมถึง managed identity และ device code flows อย่างไรก็ตาม วิธีการรับรองความถูกต้องบางอย่างยังคงใช้ได้เฉพาะ Windows เท่านั้น ซึ่งจำกัดฟังก์ชันการทำงานข้ามแพลตฟอร์มที่แอปพลิเคชัน Python สมัยใหม่หลายตัวต้องการ

สถานะ public preview ของไดรเวอร์หมายความว่าไม่แนะนำให้ใช้ในการผลิต ทำให้นักพัฒนาอยู่ในตำแหน่งที่ยาก ในขณะที่มันแก้ไขจุดเจ็บปวดทางประวัติศาสตร์บางอย่างเกี่ยวกับการเชื่อมต่อ SQL Server จาก Python ข้อจำกัดในช่วงแรกบ่งชี้ว่าอาจใช้เวลาพัฒนาอย่างมากก่อนที่จะกลายเป็นทางเลือกที่เป็นไปได้สำหรับโซลูชันที่มีอยู่เช่น pyodbc หรือ pymssql

ในตอนนี้ นักพัฒนา Python ที่ทำงานกับ SQL Server น่าจะต้องใช้เครื่องมือที่มีอยู่ต่อไปในขณะที่ติดตามความคืบหน้าของไดรเวอร์ตัวใหม่สู่การเปิดตัวทั่วไป

อ้างอิง: Microsoft Python Driver for SQL Server