หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
นําไปใช้กับ:✅ Warehouse ใน Microsoft Fabric
คลังสินค้าใน Microsoft Fabric มีเครื่องมือการนําเข้าข้อมูลในตัว ใช้เครื่องมือเหล่านี้เพื่อนําเข้าข้อมูลไปยังคลังสินค้าในวงกว้างโดยใช้ประสบการณ์แบบไม่มีโค้ดหรือแบบมีโค้ด
เลือกเครื่องมือนําเข้าข้อมูล
เลือกตัวเลือกการนําเข้าข้อมูลตามเกณฑ์ต่อไปนี้
- ใช้คําสั่ง COPY (Transact-SQL) สําหรับการดําเนินการนําเข้าข้อมูลที่มีโค้ดมากมาย ให้ปริมาณงานการนําเข้าข้อมูลสูงสุด ใช้เมื่อคุณต้องการเพิ่มการนําเข้าข้อมูลเป็นส่วนหนึ่งของตรรกะ Transact-SQL ของคุณ
- เมื่อต้องการเริ่มต้นใช้งาน ให้ดูที่ นําเข้าข้อมูลโดยใช้คําสั่ง COPY
- คลังสินค้ายังสนับสนุนคําสั่งดั้งเดิม
BULK INSERTสําหรับความเข้ากันได้ ใน Fabric คลังข้อมูล คําสั่งนี้แมปกับCOPY INTOพฤติกรรมที่มีอ็อพชันการโหลดแบบคลาสสิก -
COPYใบแจ้งยอดใน Warehouse สนับสนุนแหล่งข้อมูลจากบัญชีที่เก็บข้อมูล Azure และโฟลเดอร์ OneLake lakehouse - ระบุ
Workspace IdentityในCREDENTIALคําสั่งเพื่อแอบอ้างตัวตนของพื้นที่ทํางาน Fabric เมื่อเข้าถึงแหล่งที่มา ตัวอย่างเช่น:CREDENTIAL = (IDENTITY = 'Workspace Identity')คําสั่งจะยังคงทํางานในบริบทความปลอดภัย SQL ของผู้ใช้ปัจจุบัน
- ใช้ BCP API (พรีวิว) สําหรับการนําเข้าฝั่งไคลเอ็นต์โดยตรงเมื่อข้อมูลอยู่ในระดับแอปพลิเคชันของคุณและคุณไม่สามารถจัดเตรียมไฟล์ก่อนได้
- หากต้องการเริ่มต้นใช้งาน โปรดดู นําเข้าข้อมูลโดยใช้ BCP API (พรีวิว)
- BCP API รองรับสคริปต์ bcp.exe และ API แอปพลิเคชัน เช่น C#
SqlBulkCopyและ JavaSQLServerBulkCopy - สําหรับการนําเข้า
COPY INTOตามไฟล์ที่มีปริมาณงานสูงสุด ให้เลือกเมื่อใดก็ตามที่สามารถจัดเตรียมได้
- ใช้ ไปป์ไลน์ สําหรับเวิร์กโฟลว์การนําเข้าข้อมูลที่มีประสิทธิภาพและไม่มีโค้ดหรือโค้ดน้อย ซึ่งทํางานซ้ําๆ ตามกําหนดเวลา หรือที่เกี่ยวข้องกับข้อมูลจํานวนมาก
- เมื่อต้องการเริ่มต้นใช้งาน โปรดดู นําเข้าข้อมูลไปยังคลังสินค้าของคุณโดยใช้ไปป์ไลน์
- เมื่อใช้ไปป์ไลน์ คุณสามารถประสานเวิร์กโฟลว์ที่มีประสิทธิภาพเพื่อประสบการณ์การแยกข้อมูล แปลง โหลด (ETL) เต็มรูปแบบได้ ประสบการณ์นี้รวมถึงกิจกรรมเพื่อช่วยเตรียมสภาพแวดล้อมปลายทาง เรียกใช้คําสั่ง Transact-SQL แบบกําหนดเอง ดําเนินการค้นหา หรือคัดลอกข้อมูลจากแหล่งที่มาไปยังปลายทาง
- ใช้ กระแสข้อมูล สําหรับประสบการณ์ที่ไม่มีโค้ดที่อนุญาตให้มีการแปลงแบบกําหนดเองเพื่อแหล่งที่มาของข้อมูลก่อนการนําเข้า
- เมื่อต้องการเริ่มต้นใช้งาน โปรดดู นําเข้าข้อมูลโดยใช้กระแสข้อมูล
- การแปลงเหล่านี้รวมถึง (แต่ไม่จํากัดเพียง) การเปลี่ยนแปลงชนิดข้อมูล การเพิ่มหรือลบคอลัมน์ ออก หรือการใช้ฟังก์ชันเพื่อสร้างคอลัมน์จากการคํานวณ
- ใช้ การนําเข้า T-SQL สําหรับประสบการณ์การใช้งานที่มีโค้ดเพื่อสร้างตารางใหม่หรืออัปเดตตารางที่มีอยู่ด้วยข้อมูลต้นฉบับภายในพื้นที่ทํางานเดียวกันหรือที่เก็บข้อมูลภายนอก
- เมื่อต้องการเริ่มต้นใช้งาน โปรดดู นําเข้าข้อมูลลงในคลังสินค้าของคุณโดยใช้ Transact-SQL
- ใช้คุณลักษณะ Transact-SQL เช่น
INSERT...SELECT,SELECT INTOหรือCREATE TABLE AS SELECT (CTAS)เพื่ออ่านข้อมูลจากตารางที่อ้างอิงคลังสินค้า เลคเฮาส์ หรือฐานข้อมูลมิเรอร์อื่นๆ ภายในพื้นที่ทํางานเดียวกัน คุณยังสามารถใช้คุณลักษณะเหล่านี้เพื่ออ่านข้อมูลจากฟังก์ชันOPENROWSETที่อ้างอิงไฟล์ในบัญชีที่เก็บข้อมูล Azure ภายนอก - คุณยังสามารถ เขียนคิวรีข้ามฐานข้อมูล ระหว่างคลังสินค้าต่างๆ ในพื้นที่ทํางาน Fabric ของคุณได้
รูปแบบข้อมูลและแหล่งข้อมูลที่ได้รับการสนับสนุน
การนําเข้าข้อมูลสําหรับคลังสินค้าใน Microsoft Fabric รองรับรูปแบบข้อมูลและแหล่งข้อมูลมากมาย แต่ละตัวเลือกที่ระบุไว้ในบทความนี้มีรายการของชนิดตัวเชื่อมต่อข้อมูลและรูปแบบข้อมูลที่ได้รับการสนับสนุน
สําหรับการนําเข้า T-SQL แหล่งข้อมูลตารางต้องอยู่ภายในพื้นที่ทํางาน Microsoft Fabric เดียวกัน และแหล่งข้อมูลไฟล์ต้องอยู่ในที่เก็บข้อมูล Azure Data Lake หรือ Azure Blob คุณสามารถสอบถามข้อมูลโดยใช้การตั้งชื่อสามส่วนหรือ OPENROWSET ฟังก์ชันสําหรับข้อมูลต้นฉบับ แหล่งข้อมูลตารางสามารถอ้างอิงชุดข้อมูล Delta Lake ในขณะที่ OPENROWSET สามารถอ้างอิงไฟล์ Parquet, CSV หรือ JSONL ในที่เก็บข้อมูล Azure Data Lake หรือ Azure Blob
ตัวอย่างเช่น สมมติว่าพื้นที่ทํางานมีคลังสินค้าสองแห่ง ชื่อ Inventory และSales แบบสอบถามต่อไปนี้จะสร้างตารางใหม่ใน Inventory คลังสินค้าที่มีเนื้อหาของตารางใน Inventory คลังสินค้าที่รวมกับตารางใน Sales คลังสินค้า และมีไฟล์ภายนอกที่มีข้อมูลลูกค้า:
CREATE TABLE Inventory.dbo.RegionalSalesOrders
AS
SELECT
s.SalesOrders,
i.ProductName,
c.CustomerName
FROM Sales.dbo.SalesOrders s
JOIN Inventory.dbo.Products i
ON s.ProductID = i.ProductID
JOIN OPENROWSET( BULK 'abfss://<container>@<storage>.dfs.core.windows.net/<customer-file>.csv' ) AS c
ON s.CustomerID = c.CustomerID
WHERE s.Region = 'West region';
Note
การอ่านข้อมูลโดยใช้ OPENROWSET อาจช้ากว่าการสอบถามข้อมูลจากตาราง หากคุณวางแผนที่จะเข้าถึงข้อมูลภายนอกเดียวกันซ้ําๆ ให้พิจารณานําเข้าข้อมูลนั้นลงในตารางเฉพาะเพื่อปรับปรุงประสิทธิภาพและประสิทธิภาพการสืบค้น
คําสั่ง COPY (Transact-SQL) รองรับรูปแบบไฟล์ CSV, JSONL และ PARQUET แหล่งข้อมูลที่รองรับ ได้แก่ Azure Data Lake Storage (ADLS) Gen2, Azure Blob Storage และ OneLake
สําหรับสถานการณ์การนําเข้าฝั่งไคลเอ็นต์โดยตรง BCP API (พรีวิว) รองรับเครื่องมือและ API เช่น bcp.exe, C# SqlBulkCopyและ Java SQLServerBulkCopy ผ่านการเชื่อมต่อ SQL โดยไม่ต้องจัดเตรียมไฟล์ก่อน
ไปป์ไลน์ และ กระแสข้อมูล รองรับแหล่งข้อมูลและรูปแบบข้อมูลที่หลากหลาย สําหรับข้อมูลเพิ่มเติม โปรดดู ไปป์ไลน์และกระแสข้อมูล
ใช้ Workspace Identity กับ COPY INTO
ใช้ Workspace Identity with COPY INTO เพื่อแยกการเข้าถึงข้อมูลต้นทางออกจากสิทธิ์ในการเขียนไปยังตารางคลังข้อมูลเป้าหมาย Workspace Identity รองรับสําหรับ Azure Blob Storage, ADLS Gen2 และซอร์ส OneLake คําสั่งนี้จะทํางานในบริบทความปลอดภัย SQL ของผู้ใช้ปัจจุบัน ข้อกําหนดนี้ WITH (CREDENTIAL = (IDENTITY = 'Workspace Identity')) อนุญาตให้ COPY INTO ปลอมตัวเป็นตัวตนของพื้นที่ทํางานได้เฉพาะเมื่อเข้าถึงแหล่งที่มาเท่านั้น สิทธิ์ SQL ทั้งหมดและการระบุเครดิตการตรวจสอบยังคงเชื่อมโยงกับผู้ใช้ที่ดําเนินการ
หากไม่มี Workspace Identity ผู้ใช้ที่ได้รับสิทธิ์เข้าถึงคลังสินค้าผ่านการแชร์รายการสามารถรัน COPY INTO ได้ด้วยสิทธิ์อ่านรายการอย่างน้อยและสิทธิ์ SQL ที่จําเป็น
ตั้งค่าต่อไปนี้ให้เสร็จสิ้นก่อนที่คุณจะรัน COPY INTO ด้วย Workspace Identity:
- กําหนดค่าตัวตนของพื้นที่ทํางานสําหรับพื้นที่ทํางานที่มีคลังข้อมูลเป้าหมาย
- ให้สิทธิ์การเข้าถึงตัวตนของพื้นที่ทํางานไปยังแหล่งที่มา:
- สําหรับ Azure Blob Storage และ ADLS Gen2 ให้ค้นหาตัวตนของพื้นที่ทํางานโดยใช้ชื่อพื้นที่ทํางาน และกําหนดบทบาท Storage Blob Data Reader บนบัญชีหรือคอนเทนเนอร์จัดเก็บข้อมูล สําหรับการเข้าถึงระดับไดเรกทอรี ADLS Gen2 ให้สิทธิ์ ACL ที่จําเป็น กําหนดสิทธิ์ให้กับตัวตนของพื้นที่ทํางานเหมือนกับที่ทํากับผู้ใช้ Microsoft Entra
- สําหรับ OneLake ให้ค้นหาตัวตนของพื้นที่ทํางานโดยใช้ชื่อพื้นที่ทํางาน เพิ่มเข้าไปในพื้นที่ทํางานที่มีข้อมูลต้นทาง และกําหนดบทบาทพื้นที่ทํางานผู้มีส่วนร่วมอย่างน้อยหนึ่งตําแหน่ง
- กําหนดบทบาท Viewer อย่างน้อยให้กับผู้ใช้ที่กําลังดําเนินการบน workspace ที่มีคลังข้อมูลเป้าหมาย สิทธิ์รายการเพียงอย่างเดียวไม่สามารถอนุญาตให้ผู้ใช้แอบอ้างตัวตนของพื้นที่ทํางานได้ ข้อกําหนดบทบาทพื้นที่ทํางานจะใช้ได้เฉพาะเมื่อผู้ใช้ระบุตัวตนพื้นที่ทํางานเท่านั้น
- ให้สิทธิ์ผู้ใช้
INSERTที่กําลังดําเนินการบนตารางเป้าหมาย เมื่อ Workspace Identity เป็นข้อมูลรับรองADMINISTER DATABASE BULK OPERATIONSไม่จําเป็นต้องขอสิทธิ์
ตัวอย่างต่อไปนี้โหลดไฟล์ CSV จาก OneLake โดยแอบอ้าง Workspace Identity เพื่อเข้าถึงแหล่งที่มา:
COPY INTO dbo.SalesOrders
FROM 'https://onelake.dfs.fabric.microsoft.com/<workspace-id>/<item-id>/Files/orders/*.csv'
WITH (
FILE_TYPE = 'CSV',
FIRSTROW = 2,
CREDENTIAL = (IDENTITY = 'Workspace Identity')
);
สําคัญ
นโยบายป้ายกํากับความไวแตกต่างกันไปตามองค์กร
COPY INTO อาจล้มเหลวเมื่อปลายทางมีป้ายกํากับความไวพร้อมข้อจํากัดที่ป้องกันไม่ให้ดําเนินการ หากป้ายกํากับความไวเป็นสาเหตุของความล้มเหลว ให้ลบป้ายกํากับออกจากปลายทางก่อนลองคําสั่งใหม่
แนวทางปฏิบัติที่ดีที่สุด
คําสั่งใน COPY Warehouse ใน Microsoft Fabric มอบอินเทอร์เฟซที่เรียบง่าย ยืดหยุ่น และรวดเร็วสําหรับการนําเข้าข้อมูลความเร็วสูงสําหรับงาน SQL จาก Azure Storage และ OneLake
คุณยังสามารถใช้ภาษา T-SQL เพื่อสร้างตารางใหม่ แล้วแทรกลงในตาราง แล้วอัปเดตและลบแถวของข้อมูล คุณสามารถแทรกข้อมูลจากฐานข้อมูลใดๆ ภายในพื้นที่ทํางาน Microsoft Fabric ได้โดยใช้คิวรีข้ามฐานข้อมูล ถ้าคุณต้องการเก็บข้อมูลจาก Lakehouse ไปยังคลังสินค้า คุณสามารถทําได้ด้วยคิวรีข้ามฐานข้อมูล เช่น:
INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
- หลีกเลี่ยงการนําเข้าข้อมูลโดยใช้คําสั่ง singleton
INSERTเนื่องจากวิธีการนี้ทําให้ประสิทธิภาพต่ําในการสอบถามและการอัปเดต ถ้าคุณใช้คําสั่ง singletonINSERTสําหรับการนําเข้าข้อมูลติดต่อกัน ให้สร้างตารางใหม่โดยใช้CREATE TABLE AS SELECT (CTAS)orINSERT...SELECTpatterns วางตารางต้นฉบับ แล้วสร้างตารางของคุณอีกครั้งจากตารางที่คุณสร้างขึ้นโดยใช้CREATE TABLE AS SELECT (CTAS)- การลบตารางที่มีอยู่ของคุณส่งผลกระทบต่อแบบจําลองความหมายของคุณ รวมถึงหน่วยวัดหรือการกําหนดค่าแบบกําหนดเองที่คุณอาจดําเนินการกับแบบจําลองความหมาย
- เมื่อทํางานกับข้อมูลภายนอกบนไฟล์ ตรวจสอบให้แน่ใจว่าไฟล์มีขนาดอย่างน้อย 4 MB
- สําหรับไฟล์ CSV ที่บีบอัดขนาดใหญ่ ให้ลองแยกไฟล์ของคุณออกเป็นหลายไฟล์
- Azure Data Lake Storage (ADLS) Gen2 มีประสิทธิภาพดีกว่า Azure Blob Storage (แบบดั้งเดิม) พิจารณาใช้บัญชี ADLS Gen2 เมื่อใดก็ตามที่เป็นไปได้
- สําหรับไปป์ไลน์ที่ทํางานบ่อย ให้พิจารณาแยกบัญชีที่เก็บข้อมูล Azure ของคุณออกจากบริการอื่น ๆ ที่สามารถเข้าถึงไฟล์เดียวกันได้ในเวลาเดียวกัน
- ทรานแซคชันแบบชัดเจนช่วยให้คุณสามารถจัดกลุ่มการเปลี่ยนแปลงข้อมูลหลายรายการเข้าด้วยกันเพื่อให้สามารถมองเห็นได้เฉพาะเมื่ออ่านตารางหนึ่งตารางขึ้นไปเมื่อบันทึกธุรกรรมทั้งหมด นอกจากนี้คุณยังมีความสามารถในการย้อนกลับธุรกรรมหากการเปลี่ยนแปลงใด ๆ ล้มเหลว
- ถ้า a
SELECTอยู่ภายในธุรกรรม และนําหน้าด้วยการแทรกข้อมูล สถิติที่สร้างขึ้นโดยอัตโนมัติ อาจไม่ถูกต้องหลังจากการย้อนกลับ สถิติที่ไม่ถูกต้องอาจนําไปสู่แผนคิวรีที่ไม่ได้เปลี่ยนแปลงและเวลาการดําเนินการ หากคุณย้อนกลับธุรกรรมด้วยSELECTs หลังจาก largeINSERTให้ อัปเดตสถิติ สําหรับคอลัมน์ที่กล่าวถึงในSELECT.
Note
ไม่ว่าคุณจะนําเข้าข้อมูลลงในคลังสินค้าอย่างไร งานการนําเข้าข้อมูลจะปรับไฟล์ปาร์เก้ที่สร้างขึ้นให้เหมาะสมโดยใช้การเพิ่มประสิทธิภาพการเขียน V-Order V-Order ปรับไฟล์ parquet ให้เหมาะสมเพื่อให้สามารถอ่านได้อย่างรวดเร็วภายใต้เครื่องมือคํานวณ Microsoft Fabric เช่น Power BI, SQL, Spark และอื่น ๆ โดยทั่วไปการสืบค้นคลังสินค้าจะได้รับประโยชน์จากเวลาในการอ่านที่เร็วขึ้นสําหรับการสืบค้นด้วยการเพิ่มประสิทธิภาพนี้ ในขณะที่ยังคงมั่นใจได้ว่าไฟล์ Parquet เป็นไปตามข้อกําหนดโอเพนซอร์ส 100% อย่าปิดใช้งาน V-Order เพราะอาจส่งผลต่อประสิทธิภาพการอ่าน สําหรับข้อมูลเพิ่มเติมเกี่ยวกับ V-Order ให้ดู ทําความเข้าใจและจัดการ V-Order สําหรับคลังสินค้า
คําถามที่พบบ่อยเกี่ยวกับการนําเข้าข้อมูลสําหรับ Fabric คลังข้อมูล
คําแนะนําในการแยกไฟล์สําหรับคําสั่ง COPY ที่โหลดไฟล์ CSV ที่บีบอัดคืออะไร
ลองแยกไฟล์ CSV ขนาดใหญ่ โดยเฉพาะอย่างยิ่งเมื่อจํานวนไฟล์มีน้อย แต่ควรเก็บไฟล์ไว้ที่ไฟล์อย่างน้อย 4 MB เพื่อประสิทธิภาพที่ดีขึ้น
คําแนะนําในการแยกไฟล์สําหรับคําสั่ง COPY ที่โหลดไฟล์ Parquet คืออะไร
พิจารณาแยกไฟล์ Parquet ขนาดใหญ่ โดยเฉพาะอย่างยิ่งเมื่อจํานวนไฟล์มีน้อย
มีข้อจํากัดเกี่ยวกับจํานวนหรือขนาดของไฟล์หรือไม่?
ไม่มีข้อจํากัดเกี่ยวกับจํานวนหรือขนาดของไฟล์ อย่างไรก็ตาม เพื่อประสิทธิภาพที่ดีที่สุด ให้ใช้ไฟล์ที่มีขนาดอย่างน้อย 4 MB
ถ้าคําสั่ง COPY ใช้ credentials อะไรถ้าฉันไม่ได้ระบุ?
โดยค่าเริ่มต้น COPY INTO จะใช้ตัวตน Microsoft Entra ของผู้ใช้ที่ดําเนินการเพื่อเข้าถึงแหล่งที่มา