คำถามติดแท็ก architecture

3
เป็นวิธีที่ดีที่สุดในการเก็บถาวรทั้งหมดยกเว้นปีปัจจุบันและแบ่งพาร์ติชันตารางในเวลาเดียวกัน
งาน เก็บถาวรทั้งหมดยกเว้นรอบระยะเวลา 13 เดือนจากกลุ่มของตารางขนาดใหญ่ ข้อมูลที่เก็บถาวรต้องถูกเก็บไว้ในฐานข้อมูลอื่น ฐานข้อมูลอยู่ในโหมดการกู้คืนอย่างง่าย ตารางมีขนาด 50 ล้านแถวถึงหลายพันล้านและในบางกรณีอาจใช้เวลาหลายร้อยกิกะไบต์ในแต่ละครั้ง ตารางไม่ได้ถูกแบ่งพาร์ติชันในปัจจุบัน แต่ละตารางมีหนึ่งดัชนีคลัสเตอร์ในคอลัมน์วันที่เพิ่มขึ้น แต่ละตารางจะมีดัชนีที่ไม่ใช่คลัสเตอร์อีกหนึ่งดัชนี การเปลี่ยนแปลงข้อมูลทั้งหมดในตารางเป็นการแทรก เป้าหมายคือเพื่อลดการหยุดทำงานของฐานข้อมูลหลัก เซิร์ฟเวอร์คือ 2008 R2 Enterprise ตาราง "เก็บถาวร" จะมีประมาณ 1.1 พันล้านแถวตาราง "สด" ประมาณ 400 ล้านแถว เห็นได้ชัดว่าตารางเก็บถาวรจะเพิ่มขึ้นเมื่อเวลาผ่านไป แต่ฉันคาดว่าตารางถ่ายทอดสดจะเพิ่มขึ้นอย่างรวดเร็วด้วยเช่นกัน พูดอย่างน้อย 50% ในอีกไม่กี่ปีข้างหน้า ฉันคิดเกี่ยวกับฐานข้อมูล Azure ยืด แต่น่าเสียดายที่เราอยู่ที่ 2008 R2 และมีแนวโน้มที่จะอยู่ที่นั่นชั่วครู่ แผนปัจจุบัน สร้างฐานข้อมูลใหม่ สร้างตารางใหม่ที่แบ่งพาร์ติชันตามเดือน (โดยใช้วันที่แก้ไข) ในฐานข้อมูลใหม่ ย้ายข้อมูล 12-13 เดือนล่าสุดไปยังตารางที่แบ่งพาร์ติชัน ทำการเปลี่ยนชื่อการแลกเปลี่ยนของฐานข้อมูลทั้งสอง ลบข้อมูลที่ย้ายแล้วออกจากฐานข้อมูล "เก็บถาวร" …

2
วิธีการจัดเก็บข้อมูลอนุกรมเวลา
ฉันมีสิ่งที่ฉันเชื่อว่าเป็นชุดข้อมูลอนุกรมเวลา (โปรดแก้ไขให้ฉันถ้าฉันผิด) ซึ่งมีค่าที่เกี่ยวข้องมากมาย ตัวอย่างจะเป็นแบบจำลองรถยนต์และติดตามคุณลักษณะต่าง ๆ ของมันในระหว่างการเดินทาง ตัวอย่างเช่น: ประทับเวลา ความเร็ว | ระยะทางที่เดินทาง อุณหภูมิ ฯลฯ อะไรจะเป็นวิธีที่ดีที่สุดในการจัดเก็บข้อมูลนี้เพื่อให้เว็บแอปพลิเคชันสามารถสืบค้นฟิลด์เพื่อหา max, mins และพล็อตข้อมูลแต่ละชุดได้อย่างมีประสิทธิภาพเมื่อเวลาผ่านไป ฉันเริ่มต้นวิธีการแยกวิเคราะห์การถ่ายโอนข้อมูลและแคชผลลัพธ์ที่ไร้เดียงสาเพื่อไม่ให้ถูกจัดเก็บ อย่างไรก็ตามหลังจากเล่นไปสักครู่มันจะปรากฏขึ้นวิธีนี้จะไม่ขยายในระยะยาวเนื่องจากข้อ จำกัด ของหน่วยความจำและถ้าแคชจะถูกล้างข้อมูลทั้งหมดจะต้องมีการแยกวิเคราะห์และแคชอีกครั้ง นอกจากนี้สมมติว่าข้อมูลถูกติดตามทุกวินาทีด้วยความเป็นไปได้ที่หาได้ยากของชุดข้อมูลมากกว่า 10 ชั่วโมงเราแนะนำให้ตัดทอนชุดข้อมูลโดยการสุ่มตัวอย่างทุก ๆ N วินาทีหรือไม่?

4
วิธีจัดการกับการออกแบบตารางด้วยคอลัมน์ตัวแปร
ฉันมีสถานการณ์การออกแบบตารางและเป็นประเภทที่ไม่ใช่ DBA ต้องการความคิดเห็นที่ปรับขนาดได้มากกว่า สมมติว่าคุณถูกขอให้บันทึกข้อมูลบ้านในพื้นที่เมืองใหญ่โดยเริ่มจากย่านเล็ก ๆ (บ้าน 200 หลัง) แต่ในที่สุดจะเติบโตเป็นบ้าน 5 แสนหลัง คุณจะต้องจัดเก็บข้อมูลพื้นฐาน: ID # (# ล็อตที่ไม่ซ้ำกันที่เราสามารถใช้เป็นดัชนีที่ไม่ซ้ำกัน), Addr, City, State, Zip ปรับตารางง่าย ๆ จะจัดการกับมัน แต่ในแต่ละปีคุณจะถูกขอให้บันทึกข้อมูลพิเศษเกี่ยวกับบ้านทั้งหมด - และข้อมูลอะไรจะเปลี่ยนแปลงในแต่ละปี ตัวอย่างเช่นในปีแรกคุณจะถูกขอให้บันทึกชื่อและนามสกุลของเจ้าของวิดีโอ ในปีที่สองคุณจะถูกขอให้เก็บนามสกุล แต่ดัมพ์วิดีโอสแควร์และเริ่มรวบรวมชื่อเจ้าของแทน สุดท้าย - ในแต่ละปีจำนวนคอลัมน์พิเศษจะเปลี่ยนไป อาจเริ่มต้นด้วย 2 คอลัมน์เพิ่มเติมจากนั้นไปที่ 6 ปีหน้าจากนั้นกลับไปที่ 2 ดังนั้นวิธีหนึ่งในตารางคือพยายามเพิ่มข้อมูลที่กำหนดเองเป็นคอลัมน์ในตารางบ้านเพื่อให้มีเพียงหนึ่งตาราง แต่ฉันมีสถานการณ์ที่มีคนวางตารางสำหรับสิ่งนี้เช่น: คอลัมน์ "House Table": ID, Addr, City, State, Zip - ด้วยหนึ่งแถวต่อบ้าน …

5
ข้อดี / ข้อเสียของการใช้หลายฐานข้อมูลเทียบกับการใช้ฐานข้อมูลเดียว
ฉันกำลังทำงานในโครงการใหม่ที่มีความต้องการใช้ฐานข้อมูล 7 ตัวโดยยืนยันว่าประสิทธิภาพเสถียรภาพการปรับให้เหมาะสมนั้นง่ายขึ้น ในขณะที่ฉันไม่เห็นด้วยฉันมีปัญหาในการรวบรวมอาร์กิวเมนต์ที่ดีเพื่อใช้ฐานข้อมูลเดียว (แยกตารางออกเป็นโดเมนแบบลอจิคัล) อาร์กิวเมนต์หนึ่งที่ฉันมีคือความสมบูรณ์ของข้อมูล (ฉันไม่สามารถใช้คีย์ต่างประเทศระหว่างฐานข้อมูล) ข้อดี / ข้อเสียที่ดีในการใช้ฐานข้อมูลเดียวหรือหลายฐานข้อมูลคืออะไร [สรุปแล้ว] ข้อโต้แย้งกับฐานข้อมูลหลายแห่ง: การสูญเสียความถูกต้องของข้อมูล (ไม่สามารถใช้ foreign key แทนฐานข้อมูล) สูญเสียคืนความสมบูรณ์ การเพิ่มความซับซ้อน (ผู้ใช้ db / บทบาท) เซิร์ฟเวอร์ / ฐานข้อมูลอัตราต่อรองขนาดเล็กจะลดลง Solutions: ใช้สกีมาเพื่อแยกโดเมน POC: ใช้ข้อมูลจำลองเพื่อพิสูจน์จุดในแผนการดำเนินการของ 7/1 db

2
เอนจิ้นฐานข้อมูลคืออะไร?
ฉันได้อ่านคำจำกัดความในhttp://en.wikipedia.org/wiki/Database_engineหลายครั้ง: เอ็นจิ้นฐานข้อมูล (หรือ "หน่วยเก็บเครื่องมือ") เป็นส่วนประกอบซอฟต์แวร์พื้นฐานที่ระบบจัดการฐานข้อมูล (DBMS) ใช้เพื่อสร้างอ่านอัปเดตและลบข้อมูล (CRUD) จากฐานข้อมูล สิ่งที่ฉันไม่เข้าใจคือสิ่งที่เหลือไว้ทำไม่ CRUD ทั้งหมดที่ฐานข้อมูลจะทำอย่างไร หากเอ็นจิ้นฐานข้อมูลทำหน้าที่เหล่านี้ส่วนที่เหลือของฐานข้อมูลจะทำอะไร?


4
ไดรฟ์ vs. Mount Points
Senior DBA ก่อนหน้านี้ตั้งค่าจุดเชื่อมต่อสำหรับไดรฟ์ทั้งหมดของเราทั่วทุกเซิร์ฟเวอร์ SQL ทั่วทั้ง บริษัท Senior DBA ใหม่นั้นน่ากลัวมากเพราะคะแนนของเขาต้องการเปลี่ยนมาตรฐานของเรา (ส่วนใหญ่ฉันคิดว่าเพราะเขาไม่มีประสบการณ์กับพวกเขา) จากผลลัพธ์ของการค้นหาทางอินเทอร์เน็ตจำนวนมากฉันไม่พบเหตุผลใด ๆ (post-SQL Server 2000) ที่ไม่ใช้จุดเชื่อมต่อ มีใครทราบถึงข้อ จำกัด ของระบบปฏิบัติการ Windows ที่เกี่ยวข้องกับหัวข้อนี้หรือไม่? ฉันเคยได้ยินคำกล่าวอ้างว่า "ระบบปฏิบัติการไม่รู้จักจุดเชื่อมต่อ" มากเมื่อเร็ว ๆ นี้ (ไม่จริงขึ้นอยู่กับการวิจัยของฉันเป็นรุ่นของ Windows Server ที่เราใช้) มีเหตุผลหรือหลักฐานจากประสบการณ์ที่จะไม่ใช้จุดเชื่อมต่อกับ SQL Server หรือไม่? สมมติว่าตัวอักษรไดรฟ์หมดไม่มีปัญหาสำหรับเรา ฉันเข้าใจว่าจุดยึดนั้นมีประโยชน์อย่างมากสำหรับการแยกเวิร์กโหลด ทุกคนสามารถยืนยันหรือปฏิเสธความเข้าใจของฉันว่าจุดเชื่อมต่อนั้นแยก / แยกปริมาณงานของข้อมูลและไฟล์บันทึกประเภทต่างๆ (ไฟล์ฐานข้อมูลระบบไฟล์ฐานข้อมูลผู้ใช้ tempDB) มีประสิทธิภาพมากกว่าไดรฟ์หนึ่งตัวสำหรับไฟล์ข้อมูลล็อกไฟล์และ tempdb ?

1
ระบบจัดเก็บข้อมูลพร้อมกันสูง
ลองนึกภาพความต้องการของคุณคือคุณมีตารางขนาดใหญ่ 3 ตาราง (ข้อมูลที่มีโครงสร้าง) โดยมีจำนวนแถวละ 30,000 ล้านแถว (ขนาดรวม 4TB) และผู้ใช้ที่ใช้งานพร้อมกันจำนวนมาก (ซึ่งเป็นเธรดระบบปฏิบัติการแบบขนานบนเครื่อง LAN ระยะไกล) ข้อมูลผ่าน SELELCT WHERE GROUPBY ของพวกเขาและพร้อมกันสูงพูด 10,000 อ่านพร้อมกันในเวลาเดียวกันและผู้ใช้จำเป็นต้องแทรกข้อมูล (ไม่มีการปรับปรุง) ลงในตารางเหล่านี้พร้อมกันสูงเช่นนักเขียนพร้อมกัน 2000 (ทั่วเครือข่าย LAN ของศูนย์ข้อมูล) . ผู้ใช้ต้องการอ่านและแทรกให้เร็วที่สุดเท่าที่จะเป็นไปได้ในรูปแบบที่เก็บข้อมูลนี้ซึ่งการอ่านและเขียนแต่ละอันจะเกิดขึ้นคือ ms ถึง 1 วินาที เทคโนโลยีใดที่คุณแนะนำให้ตอบสนองความต้องการดังกล่าว มีที่เก็บข้อมูลหรือที่เก็บค่าคีย์ที่สามารถทำสิ่งนี้ได้หรือไม่? คลาวด์ไม่ใช่ตัวเลือก ชี้แจงบางส่วน: ผู้ใช้ไม่จำเป็นต้องเห็นข้อมูลทันทีและยอมรับความสอดคล้องในที่สุด ข้อมูลสามารถเข้าถึงได้ผ่านทุกไดรเวอร์ที่หน่วยเก็บข้อมูลสามารถให้และผู้ใช้จะเป็นเพียงเธรดที่ทำงานบนเครื่องระยะไกลของศูนย์ข้อมูล ข้อความค้นหาส่วนใหญ่จะเป็นเหมือน SELECT WHERE GROUPBY ข้อมูลอยู่ในรูปแบบตารางและแต่ละแถวมีขนาดประมาณ 60 ไบต์ ไม่มีตัวเลือกคลาวด์ที่ฉันไม่สามารถใช้ DynamoDB หรือโซลูชันที่คล้ายกัน ฉันต้องสามารถโฮสต์ภายในศูนย์ข้อมูลได้ ข้อมูลทั้งหมดของตารางสามารถอ่านได้ตลอดเวลาและรูปแบบการใช้งานไม่แน่นอน …

1
เพิ่มประสิทธิภาพการค้นหา 'ล่าสุด' ใน Postgres บนแถว 20M
ตารางของฉันมีลักษณะดังนี้: Column | Type | -----------------------+-------------------+ id | integer | source_id | integer | timestamp | integer | observation_timestamp | integer | value | double precision | มีดัชนีอยู่ใน source_id, การประทับเวลาและในคอมโบของการประทับเวลาและรหัส ( CREATE INDEX timeseries_id_timestamp_combo_idx ON timeseries (id, timeseries DESC NULLS LAST)) มีแถวอยู่ 20M (ตกลงมี 120M แต่ 20M กับ source_id = …

2
Postgres ด้วยสถาปัตยกรรม pgpool
ด้านล่างนี้เป็นตัวอย่างสถาปัตยกรรม pgpool: นี่หมายความว่าคุณจะต้องมี pgpool บนเซิร์ฟเวอร์เดียว จริงหรือ เมื่อฉันมองไปที่การตั้งค่าที่ผมยังเห็นว่าคุณกำหนดค่าแบ็กเอนด์ภายในpgpool.conf; ดังนั้นมันจึงมีความหมายเพิ่มเติม แต่มันไม่ได้อธิบายว่าทำไมฉันจึงเห็น pgpool บนเซิร์ฟเวอร์ส่วนหลังด้วย เมื่อดูเอกสารฉันเห็นด้วย: หากคุณใช้ PostgreSQL 8.0 หรือใหม่กว่าแนะนำให้ติดตั้งฟังก์ชั่น pgpool_regclass ใน PostgreSQL ทั้งหมดเพื่อให้เข้าถึงได้โดย pgpool-II ขอแนะนำอย่างยิ่งเนื่องจากจะใช้ภายในโดย pgpool-II ดังนั้นฉันไม่แน่ใจว่าจะคิดอย่างไร หากเป็นวิธีที่ดีที่สุดที่จะมี pgpool ในแบ็กเอนด์ทั้งหมดหรือเพียงเซิร์ฟเวอร์เฉพาะ?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.