ลงมือปฏิบัติจริงด้วย Azure Data Lake: วิธีสร้างประสิทธิผลอย่างรวดเร็ว

  • Oct 27, 2023

Azure Data Lake คือการผสมผสานบนคลาวด์ของ Microsoft อาปาเช่ ฮาดูป, พื้นที่เก็บข้อมูล Azure, SQL และ .NET/C# ช่วยให้นักพัฒนามีไวยากรณ์ SQL ที่ขยายได้สำหรับการสืบค้นชุดข้อมูลขนาดใหญ่ที่จัดเก็บไว้ในไฟล์รูปแบบต่างๆ และสามารถเข้าถึงได้จากเบราว์เซอร์ จาก Visual Studio และแม้แต่จากเครื่องมือ BI

ในแกลเลอรีนี้ ฉันจะแสดงรายละเอียดโดยละเอียดขององค์ประกอบหลักสองประการของบริการ: Azure Data Lake Store (ADLS) และ Azure Data Lake Analytics (ADLA) นอกจากนี้ ฉันจะแนะนำคุณเกี่ยวกับกระบวนการจัดเตรียม เครื่องมือที่เกี่ยวข้อง ภาษา SQL และการรวม .NET และวิธีที่สามารถสืบค้นข้อมูลใน Azure Data Lake จากเครื่องมือภายนอก เช่น Power BI

การเริ่มต้นใช้งาน Azure Data Lake เป็นเรื่องง่าย เพียงกดปุ่ม "+" ที่มุมซ้ายบน เลือก "อัจฉริยะ + การวิเคราะห์" เลื่อนลงแล้วคุณจะเห็นบริการที่เกี่ยวข้องทั้งสอง: Data Lake Store และ Data Lake Analytics ตั้งค่า Data Lake Store ก่อน

การตั้งค่า Azure Data Lake Store (ADLS) ก็ค่อนข้างง่ายเช่นกัน ป้อนชื่อบัญชี (จะต้องไม่ซ้ำกันในบัญชี ADLS ทั้งหมด) จากนั้นชื่อของกลุ่มทรัพยากรที่จะมีชื่อดังกล่าว แค่นั้นแหละ! ตอนนี้คุณสามารถทำเครื่องหมายที่ "ปักหมุดไปที่แดชบอร์ด" แล้วคลิกปุ่มสร้างสีน้ำเงิน

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

การปรับใช้จะใช้เวลาไม่นาน เมื่อเสร็จแล้ว คุณจะเห็น "เบลด" นี้ในพอร์ทัล Azure สังเกตปุ่มด้านบนที่เปิดอินเทอร์เฟซเหมือน file explorer สำหรับ ADLS สิ่งนี้จะมีประโยชน์เมื่อคุณมีข้อมูลบางอย่างอยู่ในนั้น

เมื่อตั้งค่าบัญชี Azure Data Lake Store ของคุณแล้ว คุณสามารถกลับไปยังขั้นตอนที่เราแสดงในสไลด์ 2 ("เลือกบริการของคุณ") และเลือก Azure Data Lake Analytics (ADLA)

เมื่อดำเนินการแล้ว คุณจะเห็นแบบฟอร์มการจัดสรรนี้ เช่นเคย คุณจะต้องระบุชื่อและชื่อกลุ่มทรัพยากร แต่คุณจะต้องคลิกตัวเลือก Data Lake Store และเลือกบัญชี ADLS ที่คุณเพิ่งจัดเตรียมไว้

กล่าวอีกนัยหนึ่ง คุณจะทำการวิเคราะห์ร่วมกับ ADLA และจะดึงข้อมูลจากและบันทึกข้อมูลลงในบัญชี ADLS

เช่นเคย ให้ทำเครื่องหมายที่ "ปักหมุดที่แดชบอร์ด" แล้วคลิกปุ่มสร้างสีน้ำเงินเพื่อจัดเตรียมผู้เช่า ADLA

เมื่อการจัดสรรเสร็จสิ้น คุณจะเห็นหน้าจอนี้ สังเกตความสามารถในการเพิ่มผู้ใช้เพิ่มเติม (และให้พวกเขาสามารถเข้าถึงข้อมูลของคุณ) ปุ่ม "สคริปต์ตัวอย่าง" ที่ด้านบนช่วยให้คุณสามารถสืบค้นข้อมูลตัวอย่างได้ในเวลาไม่นาน คลิกเพื่อเริ่มต้น

ตอนนี้คุณจะเห็นตัวเลือกในการสืบค้นไฟล์ค่าที่คั่นด้วยแท็บ (TSV) สร้างฐานข้อมูลและตาราง เติมข้อมูลในตาราง และสืบค้นตาราง แต่คุณไม่สามารถดำเนินการใดๆ ได้จนกว่าคุณจะคลิกผ่านสองรายการด้านบนตัวเลือกเหล่านั้น ซึ่งจะโหลดข้อมูลตัวอย่างและส่วนขยาย U-SQL (เพิ่มเติมเกี่ยวกับ U-SQL เร็วๆ นี้) ลงในผู้เช่า ADLA ของคุณ คลิกแต่ละตัวเลือกแล้วปล่อยให้ทั้งสองกระบวนการเสร็จสิ้น

ตอนนี้ คุณสามารถคลิกตัวเลือก "ค้นหาไฟล์ TSV" เมื่อคุณดำเนินการแล้ว สคริปต์ U-SQL เต็มรูปแบบจะปรากฏขึ้น

U-SQL เป็นภาษาถิ่นของ Structured Query Language ยอดนิยมที่คุณสามารถใช้กับ ADLA เพื่อสืบค้นข้อมูลใน ADLS สคริปต์ U-SQL เฉพาะนี้จะดึงข้อมูลออกจากไฟล์ TSV โดยใช้คำสั่ง EXTRACT ของ U-SQL และจะพุชผลลัพธ์ของการสืบค้นไปยังไฟล์ TSV อื่นโดยใช้คำสั่ง OUTPUT

โปรดสังเกตตัวแก้ไข U-SQL แม้ว่าจะฝังอยู่ในพอร์ทัล Azure แต่ก็มีการเน้นไวยากรณ์สี มีการสนับสนุนตัวแก้ไขที่ดียิ่งขึ้นใน Visual Studio ซึ่งเราจะเห็น แต่นี่ก็ไม่เลวสำหรับเบราว์เซอร์!

การคลิก "ส่งงาน" (ไฮไลต์) ที่ด้านบนจะเป็นการดำเนินการค้นหา เราจะสำรวจเรื่องนี้ในอีกสักครู่

ผู้ใช้บางรายอาจพบว่าแนวคิดที่คุ้นเคยของตารางสะดวกสบายกว่าการเก็บทุกอย่างไว้ในไฟล์

ดังนั้นแทนที่จะทำงานเฉพาะกับไฟล์ข้อความสำหรับอินพุตและเอาต์พุต สคริปต์ U-SQL นี้จะสร้าง ADLA ฐานข้อมูลที่เรียกว่า SampleDBTutorials และตารางว่างภายในที่เรียกว่า SearchLog ซึ่งสามารถแทรกข้อมูลลงในนั้นได้ ภายหลัง.

เมื่อเติมตารางแล้ว สคริปต์ U-SQL นี้จะใช้คำสั่ง SELECT มาตรฐานในการสืบค้น ไม่ต้องใช้ EXTRACT และไฟล์แฟลตอีกต่อไป! ชุดผลลัพธ์จะคงอยู่ในตัวแปรที่เรียกว่า @athletes

ถัดไป คำสั่ง OUTPUT ใช้เพื่อส่งออกชุดผลลัพธ์ @atheletes จากนั้นจึงส่งออกตาราง SearchLog ทั้งหมดไปยังไฟล์

ตอนนี้กลับไปที่สคริปต์แรก (ค้นหาไฟล์ TSV) แล้วคลิกส่งเพื่อรันงาน

งานจะผ่านขั้นตอนการจัดเตรียม จากนั้นจึงเข้าสู่ขั้นตอนการเข้าคิว ดังที่แสดงไว้ที่นี่ งานที่ต้องทำในงานจะแสดงด้วยงานในกราฟงานทางด้านขวา โปรดทราบว่ากราฟเหล่านี้อาจซับซ้อนกว่านี้มาก

ขั้นตอนการรันและการสรุปผลจะตามมา หลังจากนั้นเอาต์พุตของงานจะมีอยู่เป็นไฟล์ชื่อ SearchLog_output.tsv

เมื่องานเสร็จสิ้น ให้คลิกที่รูปร่างที่แสดงถึงไฟล์ SearchLog_output.tsv (ที่ด้านล่างของกราฟงาน) สิ่งนี้จะทำให้คุณสามารถดูตัวอย่างเนื้อหาได้ในพอร์ทัล Azure ดังที่แสดงไว้ที่นี่

แม้ว่าจะสามารถทำทุกอย่างในเบราว์เซอร์ได้ ผู้เชี่ยวชาญหลายๆ คนก็เลือกใช้สภาพแวดล้อมการพัฒนาแบบครบวงจรที่ครบครัน

ด้วยเหตุนี้ Microsoft จึงได้สร้างเครื่องมือ Azure Data Lake สำหรับ Visual Studio ดาวน์โหลดฟรี. พวกเขายังมีตัวอย่างโปรเจ็กต์ Azure Data Lake ที่ยอดเยี่ยมสำหรับ Visual Studio ที่คุณสามารถทำได้ ดาวน์โหลดจาก GitHub. (และถ้าคุณไม่มี Visual Studio Community Edition ที่มีคุณสมบัติครบถ้วนก็คือ ดาวน์โหลดฟรี ด้วย.)

ทำทุกอย่างนั้น เปิดโปรเจ็กต์ เข้าสู่ระบบผู้เช่า ADLA ของคุณ เปิดสคริปต์แรกแล้วคลิกปุ่มส่ง งานจะทำงานได้ทันทีใน Visual Studio ดังที่แสดงไว้ที่นี่

เมื่อการปฏิบัติงานเสร็จสมบูรณ์ ให้คลิกขวาที่รูปร่างกราฟงานสำหรับไฟล์เอาต์พุต แล้วคุณจะเห็นตัวเลือกในการดูตัวอย่างและดาวน์โหลดข้อมูล และอื่นๆ อีกมากมาย

หากคุณเลือกตัวเลือก "เปิดโฟลเดอร์" จากเมนูที่กล่าวถึงในสไลด์ที่แล้ว คุณจะเห็นโปรแกรมสำรวจไฟล์ ADLS เต็มรูปแบบปรากฏขึ้นภายใน Visual Studio ดังที่แสดงไว้ที่นี่

เจาะลึกไปที่โฟลเดอร์ /Output/TweetAnalysis จากนั้นเปิด MyTwitterAnalysis1.tsv ซึ่งเป็นไฟล์เอาต์พุตจากงาน

ไฟล์จะปรากฏขึ้นในโปรแกรมดูที่แสดงที่นี่ ซึ่งจะแสดงข้อมูลเมตาของไฟล์หลายแถว ข้อมูลในมุมมองแบบตาราง และมีตัวเลือกในการบันทึกข้อมูลในเครื่องในรูปแบบ CSV หรือดูตัวอย่างข้อมูล เอ็กเซล

โปรแกรมแก้ไขสคริปต์ U-SQL ของ Visual Studio มีเมนูแบบเลื่อนลงที่ด้านบนซึ่งช่วยให้คุณสามารถเลือก "(Local)" เป็นผู้เช่า ADLA ของคุณได้ เลือกสิ่งนั้นและคุณสามารถดำเนินงานในพื้นที่ได้ โดยไม่ต้องเสียค่าธรรมเนียมการใช้งานคลาวด์ใดๆ

แสดงให้เห็นว่านี่คือการดำเนินการของสคริปต์เดียวกันกับในสไลด์ 15 ("การมองเห็น") แต่คราวนี้เป็นแบบภายในเครื่อง โปรดทราบว่าเมื่อการดำเนินการเสร็จสิ้น คุณสามารถโฮเวอร์เหนือรูปร่างกราฟงานของไฟล์เอาต์พุตเพื่อดูตำแหน่งบนดิสก์ภายในเครื่องของคุณได้

ไปที่โฟลเดอร์ AppData\Local\USQLDataRoot ในโฟลเดอร์ผู้ใช้ของคุณเพื่อเข้าถึงดิสก์ภายในเครื่องที่เทียบเท่ากับโฟลเดอร์ราก ADLS ในระบบคลาวด์ จากนั้นเจาะลึกลงไปที่โฟลเดอร์ย่อย Output\TweetAnalysis ภายในโฟลเดอร์นั้น และคุณจะพบไฟล์เอาต์พุต ดังที่แสดงไว้ที่นี่ ดับเบิลคลิกที่ไฟล์เพื่อเปิดในตัวแก้ไขเริ่มต้นสำหรับไฟล์ TSV (Excel 2016 ในกรณีของภาพหน้าจอนี้)

การทำงาน Azure Data Lake ใน Visual Studio เป็นอะไรที่มากกว่าการใช้แอปเดสก์ท็อป นั่นเป็นเพราะว่าการสืบค้น U-SQL สามารถเรียกใช้ฟังก์ชันที่เขียนด้วย C# ทั้งในไฟล์ที่อยู่เบื้องหลังโค้ดหรือในโครงการแอสเซมบลี .NET ที่แยกจากกัน

ซอร์สโค้ดสำหรับฟังก์ชัน C# ชื่อ get_mentions แสดงอยู่ที่นี่ ดูที่หน้าต่าง Solution Explorer ที่มุมบนขวาแล้วคุณจะเห็นว่าไฟล์คลาสมีสิ่งนี้ รหัสอยู่ในโปรเจ็กต์ C# ของตัวเอง แยกจากโปรเจ็กต์ Azure Data Lake แต่อยู่ใน Visual Studio เดียวกัน สารละลาย.

สามารถใช้นิพจน์ C# แบบอินไลน์ในสคริปต์ U-SQL ได้ ซึ่งรวมถึงสคริปต์ที่สร้างขึ้นในพอร์ทัล Azure เทคนิคการเขียนโค้ด C# และการประกอบต้องใช้ Visual Studio

สคริปต์ U-SQL นี้ใช้ฟังก์ชัน get_mentions ในแบบสอบถาม SELECT

โปรดทราบว่าที่ด้านบนของสคริปต์ คำสั่ง REFERENCE ASSEMBLY ใช้เพื่อลิงก์ไปยังแอสเซมบลี .NET ที่สร้างขึ้นโดยการคอมไพล์โปรเจ็กต์ C# ที่แสดงในสไลด์ก่อนหน้า

คำสั่ง CREATE ASSEMBLY ต้องรันหนึ่งครั้งก่อนจึงจะสามารถใช้ REFERENCE ASSEMBLY ได้ รหัสสำหรับอันแรกก็แสดงเช่นกัน แม้ว่าจะมีการใส่ความคิดเห็นไว้ก็ตาม

ดูเมนูหลักของ Visual Studio (มีคนหนาแน่นพอสมควร) อย่างละเอียด หากคุณอยู่ในโครงการ Azure Data Lake คุณจะเห็นรายการ "Data Lake" ประมาณอันดับที่ 7 หรือ 8 จากด้านซ้าย คลิกแล้วคุณจะเห็นตัวเลือกที่แสดงที่นี่

คุณรู้หรือไม่ว่า Power BI ของ Microsoft สามารถเชื่อมต่อกับข้อมูลที่จัดเก็บไว้ใน ADLS ได้โดยตรง มันเป็นเรื่องจริงและแสดงไว้ที่นี่

คุณจะไม่เชื่อมต่อกับข้อมูลนั้นเว้นแต่คุณต้องการที่จะเห็นภาพมันใช่ไหม ต่อไปนี้เป็นการแสดงภาพหลายรายการโดยเทียบกับไฟล์เอาท์พุต Influencer.csv จากสคริปต์ 8-TweetAnalysis-WindowingExpr.usql ในโปรเจ็กต์ตัวอย่าง Visual Studio นี่คือเส้นชัย!

ตอนนี้คุณได้ใช้ Azure Data Lake แบบครบวงจรตั้งแต่การจัดเตรียม ADLS และ ADLA โดยใช้พอร์ทัล Azure U-SQL tooling ทำงานร่วมกับ ADL Tools สำหรับ Visual Studio ทั้งโค้ด U-SQL และ C# และยังรวมข้อมูลเข้ากับ พาวเวอร์บีไอ

ประสบการณ์นี้จะใช้งานได้ง่ายมากสำหรับนักพัฒนา .NET และ SQL Server และความจริงที่ว่าพวกเขากำลังใช้ Hadoop และ YARN ภายใต้ประทุนใช่ไหม ตอนนี้เป็นเพียงรายละเอียดการใช้งาน