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

3
VACUUM ANALYZE ปกติยังคงแนะนำภายใต้ 9.1 หรือไม่
ฉันใช้ PostgreSQL 9.1 บน Ubuntu VACUUM ANALYZEยังมีกำหนดการแนะนำหรือมีระบบตอบโต้อัตโนมัติเพียงพอที่จะดูแลทุกความต้องการได้หรือไม่? หากคำตอบคือ "มันขึ้นอยู่กับ" แล้ว: ฉันมีฐานข้อมูลขนาดใหญ่ (ขนาดการถ่ายโอนข้อมูลบีบอัด 30 GiB, ไดเรกทอรีข้อมูล 200 GiB) ฉันทำ ETL ลงในฐานข้อมูลนำเข้าใกล้ 3 ล้านแถวต่อสัปดาห์ ตารางที่มีการเปลี่ยนแปลงบ่อยที่สุดนั้นสืบทอดมาจากตารางต้นแบบโดยไม่มีข้อมูลในตารางต้นแบบ (ข้อมูลถูกแบ่งพาร์ติชันเป็นรายสัปดาห์) ฉันสร้างการเปิดตัวรายชั่วโมงและจากที่นั่นรายงานรายวันรายสัปดาห์และรายเดือน ฉันถามเพราะกำหนดVACUUM ANALYZEส่งผลกระทบต่อการรายงานของฉัน มันใช้เวลานานกว่า 5 ชั่วโมงและฉันต้องฆ่ามันสองครั้งในสัปดาห์นี้เพราะมันส่งผลกระทบต่อการนำเข้าฐานข้อมูลปกติ check_postgresไม่ได้รายงานการขยายตัวที่สำคัญในฐานข้อมูลดังนั้นจึงไม่ใช่ปัญหา จากเอกสาร, autovacuum ควรดูแล ID ธุรกรรมที่มีการห่อหุ้มด้วย คำถามที่ยืน: ฉันยังคงต้องVACUUM ANALYZE?
38 postgresql  etl  vacuum 

4
วิธีที่ปรับขนาดได้เพื่อจำลอง HASHBYTES โดยใช้ฟังก์ชันสเกลาร์ SQL CLR คืออะไร?
เป็นส่วนหนึ่งของกระบวนการ ETL ของเราเราเปรียบเทียบแถวจากการจัดเตรียมกับฐานข้อมูลการรายงานเพื่อคำนวณว่าคอลัมน์ใดมีการเปลี่ยนแปลงจริงหรือไม่นับตั้งแต่ข้อมูลถูกโหลดครั้งล่าสุด การเปรียบเทียบจะขึ้นอยู่กับคีย์เฉพาะของตารางและการแฮชบางประเภทของคอลัมน์อื่นทั้งหมด ขณะนี้เราใช้HASHBYTESกับอัลกอริทึมและได้พบว่ามันไม่ได้ขนาดบนเซิร์ฟเวอร์ขนาดใหญ่ถ้าหลายเธรดพร้อมกันมีการโทรทั้งหมดSHA2_256HASHBYTES ปริมาณงานที่วัดเป็นแฮชต่อวินาทีจะไม่เพิ่มเธรดที่เกิดขึ้นพร้อมกัน 16 เธรดเมื่อทดสอบบนเซิร์ฟเวอร์คอร์ 96 ฉันทดสอบโดยเปลี่ยนจำนวนMAXDOP 8ข้อความค้นหาที่เกิดขึ้นพร้อมกันจาก 1 - 12 การทดสอบด้วยMAXDOP 1แสดงให้เห็นถึงคอขวดที่สามารถปรับขยายได้แบบเดียวกัน วิธีแก้ปัญหาฉันต้องการลองใช้โซลูชัน SQL CLR นี่คือความพยายามของฉันในการระบุข้อกำหนด: ฟังก์ชั่นจะต้องสามารถมีส่วนร่วมในแบบสอบถามแบบขนาน ฟังก์ชั่นจะต้องกำหนดขึ้น ฟังก์ชั่นจะต้องรับอินพุตNVARCHARหรือVARBINARYสตริง (คอลัมน์ที่เกี่ยวข้องทั้งหมดถูกต่อกันเข้าด้วยกัน) ขนาดอินพุตปกติของสตริงจะมีความยาว 100 - 20000 อักขระ 20000 ไม่ใช่ค่าสูงสุด โอกาสของการชนกันของแฮชควรจะเท่ากับหรือดีกว่าอัลกอริทึม MD5 CHECKSUMใช้งานไม่ได้สำหรับเราเพราะมีการชนกันมากเกินไป ฟังก์ชันต้องขยายขนาดได้ดีบนเซิร์ฟเวอร์ขนาดใหญ่ (ปริมาณงานต่อเธรดไม่ควรลดลงอย่างมีนัยสำคัญเมื่อจำนวนเธรดเพิ่มขึ้น) สำหรับ Application Reasons ™ให้ถือว่าฉันไม่สามารถบันทึกค่าแฮชของตารางการรายงานได้ เป็น CCI ที่ไม่สนับสนุนทริกเกอร์หรือคอลัมน์ที่คำนวณได้ (มีปัญหาอื่น ๆ เช่นกันที่ฉันไม่ต้องการเข้าร่วม) วิธีที่ปรับขนาดได้เพื่อจำลองHASHBYTESโดยใช้ฟังก์ชัน SQL CLR คืออะไร …

5
ฉันจะรันสคริปต์ขนาดใหญ่ที่มีส่วนแทรกจำนวนมากโดยไม่ใช้หน่วยความจำไม่เพียงพอได้อย่างไร
คำถาม: ฉันมีสคริปต์ที่มีการแทรกประมาณ 45,000 รายการจากคำสั่งที่เลือก เมื่อฉันลองและเรียกใช้ฉันได้รับข้อความแสดงข้อผิดพลาดระบุว่าฉันมีหน่วยความจำไม่เพียงพอ ฉันจะทำให้สคริปต์นี้ทำงานได้อย่างไร บริบท: เพิ่มเขตข้อมูลใหม่บางส่วนเพื่อให้แอปพลิเคชันเล่นได้ดีกับแอปอื่นที่ลูกค้าใช้ มีสเปรดชีตข้อมูลจากลูกค้าที่เต็มไปด้วยข้อมูลที่แมปไอเท็มข้อมูลปัจจุบันกับค่าสำหรับฟิลด์ใหม่เหล่านี้ แปลงสเปรดชีตเพื่อแทรกคำสั่ง ถ้าฉันใช้คำสั่งบางคำสั่งใช้งานได้ แต่สคริปต์ทั้งหมดไม่ทำงาน ไม่ไม่มีการพิมพ์ผิด หากมีวิธีอื่นที่ฉันควรจะโหลดข้อมูลนี้เพื่อลงโทษฉันและแจ้งให้เราทราบ

7
มีโอเพ่นซอร์ส / ETL ฟรีอยู่ที่นั่นไหม? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Exchange Administrators Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันใช้ Pentaho Data Integration แม้กระทั่งก่อนที่ Pentaho ซื้อและเรียกมันว่า ฉันมีรุ่นฟรีล่าสุด ฉันไปที่เว็บไซต์ของพวกเขาเมื่อเร็ว ๆ นี้เพื่อดูว่าพวกเขาได้เปิดตัวรุ่นอื่นเท่านั้นเพื่อค้นหาโอเพ่นซอร์สที่ชื่นชอบของฉัน etl ไม่เปิดมากอีกต่อไปและไม่ฟรีมาก มีใครบ้างที่รู้ทางเลือกในเครื่องมือ ETL ที่ราคาไม่แพงและใช้งานง่าย?
26 etl 

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

4
วิธีที่รวดเร็วในการตรวจสอบสองตารางกับแต่ละอื่น ๆ
เรากำลังทำกระบวนการ ETL เมื่อทุกคนพูดและทำมีกลุ่มของตารางที่ควรจะเหมือนกัน เป็นวิธีที่เร็วที่สุดในการตรวจสอบว่าตารางเหล่านั้น (บนเซิร์ฟเวอร์ที่แตกต่างกันสอง) เป็นจริงเหมือนกัน ฉันกำลังพูดถึงสคีมาและข้อมูล ฉันสามารถแฮชบนโต๊ะเป็นตัวของตัวเองเหมือนที่ฉันจะสามารถใช้กับไฟล์แต่ละไฟล์หรือกลุ่มไฟล์ - เพื่อเปรียบเทียบไฟล์หนึ่งกับอีกไฟล์หนึ่ง เรามีการเปรียบเทียบข้อมูล Red-Gate แต่เนื่องจากตารางที่เป็นปัญหานั้นมีแถวนับล้านแถวฉันจึงต้องการบางสิ่งที่มีประสิทธิภาพมากกว่า วิธีการหนึ่งที่ชั่วช้าฉันนี้ใช้ความคิดสร้างสรรค์ของคำสั่งสหภาพ แต่ฉันต้องการสำรวจแนวคิดแฮชอีกเล็กน้อยหากเป็นไปได้ โพสต์คำตอบปรับปรุง สำหรับผู้เล่นในอนาคต ... นี่คือแนวทางที่แน่นอนที่ฉันได้รับ มันทำงานได้ดีเรากำลังทำทุกตารางในแต่ละฐานข้อมูล ขอบคุณคำตอบด้านล่างสำหรับชี้ฉันในทิศทางที่ถูกต้อง CREATE PROCEDURE [dbo].[usp_DatabaseValidation] @TableName varchar(50) AS BEGIN SET NOCOUNT ON; -- parameter = if no table name was passed do them all, otherwise just check the one -- create …

2
ETL: การแยกข้อมูลจาก 200 ตาราง - การไหลของข้อมูล SSIS หรือ T-SQL แบบกำหนดเอง
จากการวิเคราะห์ของฉันแบบจำลองมิติที่สมบูรณ์สำหรับคลังข้อมูลของเราจะต้องมีการดึงข้อมูลจากแหล่งข้อมูลกว่า 200 ตาราง บางส่วนของตารางเหล่านี้จะถูกดึงมาเป็นส่วนหนึ่งของการโหลดที่เพิ่มขึ้นและอื่น ๆ จะเป็นการโหลดแบบเต็ม โปรดทราบว่าเรามีฐานข้อมูลแหล่งข้อมูลประมาณ 225 รายการด้วยสคีมาเดียวกัน จากสิ่งที่ฉันได้เห็นการสร้างการไหลของข้อมูลอย่างง่าย ๆ ใน SSIS ด้วยแหล่งข้อมูล OLE DB และปลายทาง OLE DB ต้องการคอลัมน์และชนิดข้อมูลที่จะถูกกำหนดในขณะออกแบบ ซึ่งหมายความว่าในที่สุดฉันจะจบลงด้วยการไหลของข้อมูลมากกว่า 200 สำหรับการแยกเพียงอย่างเดียว จากมุมมองการบำรุงรักษาสิ่งนี้ทำให้ฉันกลายเป็นปัญหาใหญ่ ถ้าฉันต้องการทำการเปลี่ยนแปลงกวาดบางอย่างกับรหัสการแยกฉันจะต้องแก้ไขกระแสข้อมูลที่แตกต่างกัน 200 รายการ อีกทางเลือกหนึ่งฉันเขียนสคริปต์ขนาดเล็กซึ่งอ่านฐานข้อมูลต้นฉบับชื่อตารางและคอลัมน์ที่ฉันต้องการแยกจากชุดของตารางข้อมูลเมตา รหัสทำงานในหลายลูปและใช้ไดนามิก SQL เพื่อแยกจากตารางต้นฉบับผ่านเซิร์ฟเวอร์ที่เชื่อมโยงและ OPENQUERY จากการทดสอบของฉันสิ่งนี้ยังไม่เร็วเท่ากับการใช้กระแสข้อมูล SSIS กับแหล่ง OLEDB และปลายทาง ดังนั้นฉันสงสัยว่าฉันมีทางเลือกประเภทใด ความคิดจนถึงขณะนี้รวมถึง: การใช้EZAPIเพื่อสร้างแพ็คเกจ SSIS แบบเป็นโปรแกรมด้วยการไหลของข้อมูลอย่างง่าย ตารางและคอลัมน์ที่จะแยกจะมาจากตารางเมทาดาทาที่กล่าวถึงก่อนหน้านี้ ซื้อซอฟต์แวร์ภายนอก (ส่วนประกอบการไหลของข้อมูลแบบไดนามิก) วิธีที่ดีที่สุดในการเข้าถึงสิ่งนี้คืออะไร? เมื่อพูดถึงการเขียนโปรแกรม. NET ฉันเป็นผู้เริ่มต้นดังนั้นเวลาที่ต้องใช้ในการเพิ่มระดับความรู้พื้นฐานก็เป็นเรื่องที่น่ากังวลเช่นกัน

2
PostgreSQL สำหรับธุรกรรมปริมาณมากและคลังข้อมูล
ค่อนข้างใหม่สำหรับ PostgreSQL ฉันไม่เคยใช้งานขนาดใหญ่มาก่อน แต่ฉันมีประสบการณ์ที่ดีในโซลูชันระดับองค์กรและฉันต้องการลองใช้สิ่งที่ฉันเรียนรู้โดยใช้ PostgreSQL ฉันมีเว็บไซต์ที่มีขนาดใหญ่พอที่จะรองรับข้อมูลและปริมาณข้อมูลจำนวนมาก โครงสร้างพื้นฐานจะถูกสร้างโดยใช้บน amazon (AWS) โดยใช้อินสแตนซ์ของ EC2 และ EBS การออกแบบควรมีสองฐานข้อมูลฐานข้อมูลธุรกรรมหลักและคลังข้อมูลเพื่อจัดการการวิเคราะห์และการรายงาน ฐานข้อมูลธุรกรรมหลัก จะถูกใช้สำหรับเว็บไซต์สดเว็บไซต์นี้สร้างขึ้นบนหลายโหนดเพื่อขยายขนาดผู้ใช้พร้อมกัน ส่วนใหญ่เราต้องการฐานข้อมูลสำหรับกรณีนี้ที่จะรวดเร็วในการดำเนินการอ่านเราคาดว่า> ข้อมูล 100GB กับการเติบโต 30% ต่อปี ณ จุดนี้เราวางแผนที่จะใช้เซิร์ฟเวอร์ EC2 สองเครื่อง ( และเพิ่มในภายหลังตามที่เราต้องการ ) คำถามของฉันการตั้งค่าที่แนะนำสำหรับข้อกำหนดข้างต้นคืออะไร นอกจากนี้มีวิธีจัดการตารางและการแบ่งพาร์ติชันของไดรฟ์ข้อมูลหรือไม่? มีคำแนะนำสำหรับการใช้การตั้งค่า AWS หรือไม่ ฐานข้อมูลคลังข้อมูล ส่วนใหญ่จะใช้สำหรับการจับข้อมูลทั้งหมดจากฐานข้อมูลธุรกรรมหลักในมิติเวลา ดังนั้นแม้ลบบันทึกจากฐานข้อมูลหลักจะถูกจับใน DWH ดังนั้นข้อมูลจะมีขนาดใหญ่มากและการเติบโตจะยิ่งใหญ่ขึ้น นอกจากนี้เรายังจะใช้อินสแตนซ์คู่ EC2 ขึ้นไปหากต้องการ การตั้งค่าที่แนะนำในกรณีนี้คืออะไร? สิ่งนี้จะต้องใช้การเขียนที่รวดเร็วเนื่องจากการเขียนคงที่ (ETL) เราสามารถสร้าง OLAP คิวบ์ใน PostgreSQL ได้ไหม? …

4
มีภาษา / อินเตอร์เฟสมาตรฐานสำหรับ ETL แบบเป็นโปรแกรมใน SQL Server หรือไม่?
ขณะนี้ฉันกำลังอยู่ระหว่างการสร้าง ETL สำหรับคลังข้อมูลของเรา เรากำลังใช้ SSIS 2008 แต่เราพบเจอปัญหาที่ใหญ่ที่สุดคือความยากลำบากในการใช้ส่วนประกอบซ้ำ เรามีแพ็คเกจแยกต่างหากสำหรับแต่ละตารางและแต่ละแพ็คเกจใช้เป็นตัวแปรจำนวนหนึ่งจากแพ็คเกจหลัก เมื่อเราทำการเปลี่ยนแปลงตัวแปรอินพุตเหล่านี้เราจำเป็นต้องเข้าไปในแต่ละแพ็กเกจ (ตอนนี้เรามี 15 หรือมากกว่านั้น แต่จำนวนนี้จะเพิ่มขึ้นอย่างมีนัยสำคัญ) และปรับเปลี่ยนแพคเกจเพื่อจัดการกับการเปลี่ยนแปลงเหล่านั้น นอกจากนี้ยังมีปัญหาอื่น ๆ รวมถึงการไม่สามารถเรียกใช้ SQL โดยพลการสำหรับการดึงข้อมูลของเราความสามารถในการบันทึกที่ไม่ดีเป็นต้น กระบวนการทั้งหมดนี้จะมีประสิทธิภาพมากกว่านี้หากมีวิธีการพัฒนา ETL ของเราในรหัสการเปิดใช้งานการใช้รหัสซ้ำไลบรารีทั่วไปการทดสอบหน่วยที่ดีกว่า ฯลฯ มีภาษา ETL มาตรฐาน / API สำหรับ SQL Server โดยแท้จริงหรือไม่? ฉันต้องการหลีกเลี่ยงเครื่องมือ GUI มากที่สุด แก้ไข: ฉันควรพูดถึงพื้นหลังของฉัน ฉันไม่ใช่ DBA และไม่มีการฝึกอบรมอย่างเป็นทางการ (หรือไม่เป็นทางการ) DBA โดยทั่วไปฉันคิดว่าสิ่งนี้ออกมาเมื่อฉันไปตามดังนั้นจึงมีความเป็นไปได้ทุกครั้งที่ฉันพยายามทำสิ่งที่ไม่เหมาะสมกับ SSIS หรือเข้าใกล้ ETL นี้ โครงการจากมุมที่ผิด นอกจากนี้ฉันยังทำงานในหน่วยงานของรัฐดังนั้นการแก้ปัญหาใด ๆ …
10 sql-server  etl 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.