สวัสดีฉันเป็นวิศวกรโยธาที่มีประสบการณ์การเขียนโปรแกรม แต่ฉันไม่คุ้นเคยกับตัวเลือกมากมายที่มีอยู่ในปัจจุบัน หวังว่าคุณจะให้พอยน์เตอร์ชี้ทางที่ดีที่สุดในการดำเนินการต่อไป
ฉันต้องการสร้างและสืบค้นฐานข้อมูลการวัดระดับพื้นดินในรูปแบบกริด จะมีการวัดจำนวนมากสำหรับแต่ละตำแหน่งของกริดในช่วงเวลาต่างๆผ่านงานเคลื่อนย้ายดินดังนั้นจึงมีมิติที่สี่ของเวลา
ข้อสังเกตส่วนใหญ่จะอ่านจากไฟล์ข้อความ ในแต่ละเร็กคอร์ดจะมีตำแหน่งกริด (จำนวนเต็ม 2 x) (แถวและคอลัมน์) ระดับพื้นดิน (จุดลอยตัว) และรหัสข้อมูลสตริงต่างๆ (อาจรวมได้สูงสุด 30 อักขระ)
กริดอาจมีประมาณ 10,000 แถว x 10,000 คอลัมน์ ไม่ใช่ทุกตำแหน่งบนกริดที่จะมีการบันทึกในการสำรวจแต่ละครั้ง แต่โดยทั่วไปจะมีการบันทึกได้มากถึงร้อยรายการ ตำแหน่งกริดจำนวนมากจะไม่มีการบันทึกเลย (ไซต์จะไม่เป็นรูปสี่เหลี่ยมที่สมบูรณ์แบบ)
ฉันต้องการค้นหาระเบียนแยกข้อมูลและทำการคำนวณเช่นคำนวณระดับพื้นดินต่ำสุดหรือสูงสุดสำหรับตำแหน่งกริดแต่ละแห่ง ฉันค่อนข้างมั่นใจว่าฉันจะมีความสามารถในการเขียนโปรแกรมนี้ค่อนข้างง่ายในภาษาเช่น FORTRAN, BASIC หรือ C โดยใช้อาร์เรย์ องค์ประกอบอาร์เรย์มากมายจะว่างเปล่า แต่และฉันเดาว่านี่ไม่ใช่วิธีที่ถูกต้องในการทำและฐานข้อมูลขนาดใหญ่เช่นนี้ต้องการเครื่องมือพิเศษที่ฉันจะต้องเรียนรู้วิธีใช้
ฉันกำลังคิดถึงตัวเลือกที่เป็นไปได้สำหรับแพลตฟอร์ม -
ใช้โปรแกรมฐานข้อมูล ฉันไม่คุ้นเคยกับความสามารถของสิ่งเหล่านี้ที่มีประสิทธิภาพ แต่ฉันคิดว่าพวกเขาจะมีค่าใช้จ่ายจำนวนมากกับ GUI
ใช้ SQL หรือไม่ สิ่งนี้ฉันไม่รู้มาก แต่ดูเหมือนจะเป็นภาษาสำหรับฐานข้อมูล ฉันมักจะใช้ภาษาที่จำเป็นมากกว่าที่จะเปิดเผยและตามที่ฉันเข้าใจจากวิกิพีเดียว่า SQL เป็นสิ่งที่เปิดเผยฉันรู้สึกประหม่าเล็กน้อยต่อการเปลี่ยนแปลง ฉันไม่เข้าใจกระบวนการใช้งานอย่างสมบูรณ์ มีคอมไพเลอร์ที่สร้างโปรแกรมคอนโซลหรือไม่? ฐานข้อมูลถูกเก็บไว้ในดิสก์หรือไม่? ขออภัยสำหรับคำถามโง่ ๆ
ใช้ API เช่น c-treeACE หรือไม่ ฉันคิดว่านี่อาจเป็นวิธีที่จะให้ความคุ้นเคยกับภาษา "ทำสิ่งนี้จากนั้นทำเช่นนั้น" (น่าเสียดายที่นี่เป็นวิธีที่ฉันคิดว่าเป็นวิศวกร!) แต่ฉันหวังว่าหน่วยความจำเบื้องหลังและการจัดการการประมวลผลที่นำเสนอโดย API จะดีกว่าสิ่งที่ฉันสามารถทำได้ด้วยอาร์เรย์ขนาดใหญ่
หรือฉันสามารถทำมันด้วยภาษาที่มุ่งเน้นวัตถุและปล่อยให้คอมพิวเตอร์กังวลเกี่ยวกับข้อกำหนดในการเก็บ เช่นถ้าฉันเก็บบันทึกเป็นวัตถุด้วยวิธีการและคุณสมบัติที่จะช่วยให้ฉันได้รับผลลัพธ์ที่ฉันต้องการจากแต่ละระเบียน - มันจะเป็นโปรแกรมขนาดใหญ่ป่องเมื่อเทียบกับ 3)
มีแนวโน้มที่จะมีการบันทึกหลายร้อยล้านรายการและฉันต้องการที่จะค้นหาและประมวลผลพวกเขาในไม่กี่นาทีไม่ใช่ชั่วโมง (โดยเฉพาะอย่างยิ่งวินาที!) บนพีซีที่ใช้ Windows รุ่นใหม่ ในการเป็นเหมืองที่เฉพาะเจาะจงมากขึ้นคือโปรเซสเซอร์ i7 ที่มี 6Gb ram และ 120Gb SSD ที่ใช้ Windows 7 64 บิต
หวังว่าใครบางคนมีเวลาที่จะแบ่งปันคำสองสามคำของภูมิปัญญากับมือใหม่