What the BUG????
SSIS 2014 , Visual Studio 2013 Update 4
ปัญหาของ Checkpoint file ที่ set ใน Package กรณีมี varible ประเภท Object ก่อให้เกิดปัญหาซึ่งยังหาสาเหตุไม่เจอ
PackageA : มีกระบวนการทำงานซึ่งมีการ Execute SQL Task เก็บ Result set ไว้ในตัวแปรประเภท OBJECT แล้วนำไป Fetch ใน For each loop container ซึ่งก็ทำงานได้ดี โดยมี Fetch data ถึง 2 รอบ
ซึ่งทำงานได้ปกติ
แต่เมื่อมีการ Add new task ขึ้นมาก่อนหน้า แล้วทำการ Execute SQL & Fetch data กลับไม่สามารถ Fetch data ออกมาได้ ทำอย่างไรก็จะได้ค่า 0 record จากการ fetch
ทดสอบแก้ปัญหาหมดทุกอย่าง จนมาเจอว่าเมื่อลองปิดการใช้งาน Checkpoint file ปรากฏว่าสามารถ Fetch data ออกมาได้อย่างถูกต้อง
ปวดหัว! WTF
Mssql, Microsoft sql server, SSAS, SSRS ,SSIS , Analysis Service, Reporting Service, Integration Service, XMLA ,MDX ,SQL
วันอังคารที่ 7 กรกฎาคม พ.ศ. 2558
วันพุธที่ 1 กรกฎาคม พ.ศ. 2558
MDX Query : Query dimension member only
Some time you may want to check or validate dimension members only.
You don't need to process cube.
The syntax is very simple
SELECT {} ON 0,
{[Dim_Customer].[Customer_ID].Members } ON 1
FROM [$Dim_Customer]
Compare to Cube
FROM [Cube_Name] ---> Change cube name format to FROM [$Dim_Name]
"$" Using dollar sign for dimension name
You don't need to process cube.
The syntax is very simple
SELECT {} ON 0,
{[Dim_Customer].[Customer_ID].Members } ON 1
FROM [$Dim_Customer]
Compare to Cube
FROM [Cube_Name] ---> Change cube name format to FROM [$Dim_Name]
"$" Using dollar sign for dimension name
วันศุกร์ที่ 16 มกราคม พ.ศ. 2558
SSIS Tips
---- Data flow : Error rows redirect.
ตัวอย่าง Table customer มี 1000 records โดยมี CUST_CODE = PK
Import data จาก Text file 100 รายการ
มี 5 รายการที่มี CUST_CODE ซ้ำกับของเดิม
** Concern
- Default ของ "Data acess mode" (Destination) คือ "Table or view - fast load"
ถ้าเป็นตัวเลือกนี้ ทั้ง 100 รายการจะถูกมองว่า Error ทั้งหมด ซึ่งทำให้ยากต่อการวิเคราะห์ว่า Record ใด Error
ดังนั้นกรณีที่ต้องการให้มีเฉพาะ 5 รายการที่ซ้ำ Redirect row ไปเก็บไว้ใน Error log table ให้เปลี่ยน Mode เป็น "Table or view"
Credit : http://stackoverflow.com/questions/5172801/bids-ssis-redirect-row-on-error-sends-too-many-rows
-----Inferred Dimension members
สรุปย่อๆคือ การสร้างรายการข้อมูลของ dimension ขึ้นมากลางอากาศขณะโหลด Fact table
เช่น Fact_sale มี Product ใหม่ แต่ใน dim_product ยังไม่มี Record ก็สร้าง Record ใน dim_product เลย
แล้วเอาไป insert in fact_sale โดยมี Flag ใน dim_product บอกว่า Record นั้นๆเป็น Inferred หรือไม่ (Boolean) แล้วค่อยมา Update ข้อมูลอื่นๆภายหลัง
แต่ขั้นตอนการ Implement ก็ซับซ้อนขึ้นด้วย
Credit : http://www.sqlservercentral.com/articles/Data+Warehouse/71233/
ตัวอย่าง Table customer มี 1000 records โดยมี CUST_CODE = PK
Import data จาก Text file 100 รายการ
มี 5 รายการที่มี CUST_CODE ซ้ำกับของเดิม
** Concern
- Default ของ "Data acess mode" (Destination) คือ "Table or view - fast load"
ถ้าเป็นตัวเลือกนี้ ทั้ง 100 รายการจะถูกมองว่า Error ทั้งหมด ซึ่งทำให้ยากต่อการวิเคราะห์ว่า Record ใด Error
ดังนั้นกรณีที่ต้องการให้มีเฉพาะ 5 รายการที่ซ้ำ Redirect row ไปเก็บไว้ใน Error log table ให้เปลี่ยน Mode เป็น "Table or view"
Credit : http://stackoverflow.com/questions/5172801/bids-ssis-redirect-row-on-error-sends-too-many-rows
-----Inferred Dimension members
สรุปย่อๆคือ การสร้างรายการข้อมูลของ dimension ขึ้นมากลางอากาศขณะโหลด Fact table
เช่น Fact_sale มี Product ใหม่ แต่ใน dim_product ยังไม่มี Record ก็สร้าง Record ใน dim_product เลย
แล้วเอาไป insert in fact_sale โดยมี Flag ใน dim_product บอกว่า Record นั้นๆเป็น Inferred หรือไม่ (Boolean) แล้วค่อยมา Update ข้อมูลอื่นๆภายหลัง
แต่ขั้นตอนการ Implement ก็ซับซ้อนขึ้นด้วย
Credit : http://www.sqlservercentral.com/articles/Data+Warehouse/71233/
สมัครสมาชิก:
บทความ (Atom)