Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

เพิ่มการค้นหาและการแสดงภาพที่ขับเคลื่อนด้วย Elasticsearch ให้กับข้อมูล SQL ของคุณ

เพิ่มการค้นหาและการแสดงภาพที่ขับเคลื่อนด้วย Elasticsearch ให้กับข้อมูล SQL ของคุณ

แม้จะมีข่าวลือมากมายที่มุ่งเน้นไปที่การจัดเก็บข้อมูล NoSQL ที่ใหม่กว่า แต่ฐานข้อมูลเชิงสัมพันธ์และฐานข้อมูลแบบ SQL ก็ยังมีชีวิตอยู่และดี อันที่จริง ลูกค้าเกือบทุกคนที่เราทำงานด้วยมี MySQL, PostgreSQL หรือ MS SQL Server ในสภาพแวดล้อมของตนควบคู่ไปกับ MongoDB, Redis หรือ Elasticsearch ไม่ใช่เรื่องแปลกที่เราจะได้รับคำขอเกี่ยวกับวิธีที่ง่ายที่สุดในการจำลองข้อมูลจากฐานข้อมูลเชิงสัมพันธ์ไปยังที่เก็บข้อมูลอื่น ไม่ว่าจะเป็นการย้ายข้อมูล หรือเพียงแค่เพิ่มคุณสมบัติ เช่น การค้นหาข้อความแบบเต็มหรือการแสดงภาพไปยังข้อมูลเชิงสัมพันธ์ โชคดีที่ Elasticsearch ทำให้สิ่งนี้ง่ายมาก

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

การเลือกชุดเครื่องมือที่เหมาะสม

มีเครื่องมือการย้ายข้อมูล/การจำลองข้อมูลมากมายบนเว็บ และแม้แต่การเขียนโค้ดของคุณเองในสถานการณ์นี้ก็ไม่ใช่เรื่องยาก แต่จนถึงตอนนี้ เราพบว่า Logstash และปลั๊กอินอินพุต jdbc เป็นทางออกที่ดีที่สุด

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

หนึ่งในหลายปัจจัยที่ Logstash เสนอคืออินพุต JDBC JDBC เป็นมาตรฐานที่กำหนดวิธีที่แอปพลิเคชัน Java สามารถเข้าถึงฐานข้อมูล ตราบใดที่มีไดรเวอร์ที่เข้ากันได้กับ jdbc สำหรับฐานข้อมูล อินพุต JDBC Logstash สามารถใช้เพื่อดึงข้อมูลโดยใช้การสืบค้น SQL มาตรฐาน ด้วยการสนับสนุนอย่างกว้างขวางสำหรับไดรเวอร์ JDBC ฟรีระหว่างฐานข้อมูลเชิงสัมพันธ์และแม้กระทั่งการสนับสนุนสำหรับฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ จึงเป็นเส้นทางที่ง่ายในการเชื่อมต่อฐานข้อมูลอื่นๆ กับ Elasticsearch

เพิ่มการค้นหาและการแสดงภาพที่ขับเคลื่อนด้วย Elasticsearch ให้กับข้อมูล SQL ของคุณ

สร้างสัมพันธ์

ตราบใดที่คุณมีฐานข้อมูลที่สอดคล้องกับ jdbc และไดรเวอร์ที่เข้ากันได้ การกำหนดค่านั้นง่ายพอๆ กับการกำหนดค่า Logstash ด้วยข้อมูลบางส่วน:

  • ข้อมูลการกำหนดค่า JDBC
  • ข้อมูลประจำตัวและข้อมูลการเชื่อมต่อสำหรับฐานข้อมูลเชิงสัมพันธ์ของคุณ
  • คำสั่ง SQL หรือคำสั่งสำหรับฐานข้อมูลเชิงสัมพันธ์ของคุณที่ดึงข้อมูลที่คุณต้องการ
  • ข้อมูลประจำตัวและข้อมูลการเชื่อมต่อสำหรับฐานข้อมูล Elasticsearch ของคุณ

จากข้อมูลนั้น การสับข้อมูลไปยัง Elasticsearch นั้นง่ายมาก

ถามคำถามที่สำคัญ

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

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

สามตัวเลือกมาตรฐานที่นำเสนอโดยทั่วไปคือ:

  • ลดมาตรฐานข้อมูล: โดยพื้นฐานแล้วลบความสัมพันธ์ทั้งหมดและสร้างเอกสารเฉพาะสำหรับข้อมูลทุกชุดในตารางของคุณ
  • อาร์เรย์ภายในเอกสาร: Elasticsearch สนับสนุนความสามารถในการสร้างอาร์เรย์ของออบเจ็กต์ภายในเอกสารแต่ละฉบับ และยังเสนอประเภทข้อมูล "ซ้อน" พิเศษที่ช่วยให้แบบสอบถามบางรายการประเมินสมาชิกแต่ละคนของอาร์เรย์นั้นเป็นเอกสารแยกต่างหากได้
  • ความสัมพันธ์ระหว่างพ่อแม่กับลูก: ตัวเลือกสุดท้ายและใกล้เคียงที่สุดกับฐานข้อมูลเชิงสัมพันธ์ที่แท้จริงคือความสัมพันธ์ระหว่างพ่อแม่และลูกใน Elasticsearch ซึ่งช่วยให้คุณระบุว่าเอกสารบางฉบับเป็นเอกสารย่อยของเอกสารอื่น

แม้ว่า Elasticsearch จะให้ตัวเลือกบางอย่างแก่คุณในการจัดการกับข้อมูล แต่ก็ขึ้นอยู่กับคุณจริงๆ ว่าวิธีใดได้ผลดีที่สุดและตรงตามความต้องการของคุณ

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

การตัดสินใจและรายละเอียดเพิ่มเติม

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

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

เพิ่มการค้นหาและการแสดงภาพที่ขับเคลื่อนด้วย Elasticsearch ให้กับข้อมูล SQL ของคุณ

เราหวังว่าคุณจะพบว่ามีประโยชน์! เช่นเคย คุณสามารถรับข้อมูลเพิ่มเติมจากเราโดยติดต่อที่ [email protected]