Bài viết này cung cấp thông tin liên quan đến các câu hỏi thường gặp về việc xuất dữ liệu bảng Microsoft Dataverse sang Azure Synapse Analytics và Azure Data Lake.
Tôi có thể thực hiện thủ công các tác vụ như tạo, cập nhật, xóa hoặc đặt chính sách xóa tự động cho các tệp dữ liệu trong bộ lưu trữ Azure được kết nối không?
Khách hàng không được phép sửa đổi các tệp dữ liệu và không được phép lưu bất kỳ tệp dữ liệu nào của khách hàng vào trong các thư mục dữ liệu.
Lưu ý
Để loại bỏ dữ liệu cũ và trì trệ trong hồ dữ liệu mà không làm hỏng Azure Synapse Link, hãy cân nhắc sử dụng tính năng Truy vấn và phân tích các bản cập nhật gia tăng
Làm cách nào để truy cập các mối quan hệ bảng của tôi?
Để truy cập các mối quan hệ nhiều-nhiều, mối quan hệ có sẵn dưới dạng bảng để chọn từ trang Thêm bảng cho liên kết mới và từ trang Quản lý bảng cho liên kết đã tồn tại từ trước.
Lưu ý
Theo mặc định, tất cả dữ liệu mối quan hệ đều ở chế độ Chỉ thêm khi được viết ở định dạng CSV.
Tôi có thể ước tính chi phí trước khi thêm vào bằng cách nào Azure Synapse Link?
Azure Synapse Link là một tính năng miễn phí với Dataverse. Việc sử dụng Azure Synapse Link for Dataverse không phát sinh thêm chi phí theo Dataverse. Tuy nhiên, hãy cân nhắc đến chi phí tiềm ẩn của dịch vụ Azure:
- Lưu trữ dữ liệu trong Azure Data Lake Storage Gen2: Giá Azure Storage Data Lake Gen2 | Microsoft Azure
- Chi phí sử dụng dữ liệu (như Synapse Workspace): Giá cả - Azure Synapse Analytics | Microsoft Azure Để biết thông tin toàn diện về Quản lý chi phí của Microsoft, hãy truy cập: Kế hoạch quản lý chi phí Azure - Quản lý chi phí của Microsoft | Microsoft Learn
Điều gì xảy ra khi tôi thêm một cột?
Khi bạn thêm một cột mới vào bảng trong bảng nguồn, cột này cũng sẽ được thêm vào cuối tệp trong phân vùng tệp tương ứng ở đích. Trong khi các hàng tồn tại trước khi thêm cột không được hiển thị trong cột mới, các hàng mới hoặc được cập nhật sẽ hiển thị cột mới được thêm vào.
Điều gì xảy ra khi tôi xóa một cột?
Khi bạn xóa một cột khỏi bảng trong bảng nguồn, cột đó sẽ không bị xóa khỏi bảng đích. Thay vào đó, các hàng không còn được cập nhật và được đánh dấu là rỗng nhưng giữ nguyên các hàng trước đó.
Điều gì xảy ra nếu tôi thay đổi kiểu dữ liệu của một cột?
Việc thay đổi kiểu dữ liệu của một cột là một thay đổi đột ngột và bạn cần phải hủy liên kết và liên kết lại.
Điều gì xảy ra khi tôi xóa một hàng?
Việc xóa một hàng được xử lý theo cách khác nhau dựa trên tùy chọn ghi dữ liệu bạn chọn:
- Cập nhật tại chỗ với định dạng CSV: Đây là chế độ mặc định. Khi bạn xóa một hàng trong bảng ở chế độ này, hàng đó cũng sẽ bị xóa khỏi phân vùng dữ liệu tương ứng trong Azure Data Lake. Nói cách khác, dữ liệu khó bị xóa khỏi đích.
- Chỉ thêm vào với định dạng CSV và cập nhật thư mục gia tăng: Ở chế độ này, khi một hàng trong bảng bị xóa, nó sẽ không bị xóa cứng khỏi đích. Dataverse Thay vào đó, một hàng được thêm vào và đặt thành
isDeleted=True
vào tệp trong phân vùng dữ liệu tương ứng trong Azure Data Lake. - Xuất sang định dạng Delta lake: Azure Synapse Link thực hiện xóa mềm dữ liệu trong chu kỳ đồng bộ hóa delta tiếp theo, sau đó là xóa cứng sau 30 ngày.
Tại sao tôi không thấy tiêu đề cột trong tệp đã xuất?
Azure Synapse Link tuân theo Mô hình dữ liệu chung để dữ liệu và ý nghĩa của nó có thể được chia sẻ trên các ứng dụng và quy trình kinh doanh như Microsoft Power Apps, Power BI, Dynamics 365 và Azure. Trong mỗi thư mục CDM, siêu dữ liệu như tiêu đề cột được lưu trữ trong tệp model.json. Thông tin thêm: Mô hình dữ liệu chung và Azure Data Lake Storage Gen2 | Microsoft Learn
Tại sao tệp Model.json lại tăng hoặc thay đổi độ dài của các kiểu dữ liệu nhưng không giữ nguyên nội dung được định nghĩa trong Dataverse?
Model.json lưu giữ độ dài cơ sở dữ liệu theo kích thước của cột. Dataverse có khái niệm về độ dài cơ sở dữ liệu cho mỗi cột. Nếu bạn tạo một cột có kích thước là 200 rồi sau đó giảm xuống còn 100, Dataverse vẫn cho phép dữ liệu hiện có của bạn hiển thị trong Dataverse. Nó thực hiện điều đó bằng cách giữ ở mức DBLength
200 và MaxLength
100. Những gì bạn thấy trong Model.json là DBLength
và nếu bạn sử dụng nó cho các quy trình hạ lưu, bạn sẽ không bao giờ khoản dự phòng chiếm ít không gian hơn cho Dataverse các cột của mình.
Lưu ý
Các trường ghi nhớ được định nghĩa là varchar(max)
với độ dài tối đa mặc định là 9999.
Những định dạng ngày và giờ nào có thể được mong đợi khi xuất bảng Dataverse?
Có ba định dạng ngày và giờ có thể được mong đợi khi xuất bảng Dataverse.
Tên cột | Định dạng | Loại dữ liệu | Ví dụ: |
---|---|---|---|
SinkCreatedOn và SinkModifiedOn | M/d/yyyy H:mm:ss tt | datetime | 6/28/2021 4:34:35 CH |
CreatedOn | yyyy-MM-dd'T'HH:mm:ss.sssssssXXX | datetimeOffset | 2018-05-25T16:21:09.0000000+00:00 |
Tất cả các cột khác | yyyy-MM-dd'T'HH:mm:ss'Z' | datetime | 2021-06-25T16:21:12Z |
Lưu ý
Kiểu dữ liệu CreatedOn đã thay đổi từ datetime
thành datetimeOffset
vào ngày 29/07/2022. Để chỉnh sửa định dạng kiểu dữ liệu cho bảng được tạo trước khi thay đổi, hãy xóa và thêm lại bảng.
Bạn có thể chọn các hành vi cột khác nhau cho cột Ngày và Giờ trong Dataverse, giúp cập nhật định dạng kiểu dữ liệu. Thông tin thêm: Hành vi và định dạng của cột Ngày và giờ
Tại sao tôi lại thấy tên tệp 1.csv hoặc 1_001.csv thay vì tên tệp phân vùng ngày giờ thông thường cho một số bảng? Dataverse
Hành vi này xảy ra khi bạn chọn chế độ xuất chỉ thêm và có các bảng không có cột CreatedOn hợp lệ. Các blob được sắp xếp thành các tệp như 1.csv, 2.csv (sử dụng phân vùng tùy chỉnh do không có ngày tạo hợp lệ). Khi bất kỳ phân vùng nào đạt tới 95% MaxBlockPerBlobLimit, hệ thống sẽ tự động tạo một tệp mới—minh họa ở đây là 1_001.csv.
Khi nào tôi nên sử dụng chiến lược phân vùng hàng năm hoặc hàng tháng?
Đối với các bảng Dataverse có khối lượng dữ liệu cao trong vòng một năm, chúng tôi khuyên bạn nên sử dụng phân vùng hàng tháng. Cách này giúp tách các tệp nhỏ hơn và hiệu suất tốt hơn. Ngoài ra, nếu các hàng trong bảng được cập nhật thường xuyên, việc chia thành nhiều tệp nhỏ hơn sẽ giúp cải thiện hiệu suất trong trường hợp cập nhật tại chỗ. Dataverse Delta Lake chỉ khả dụng với phân vùng hàng năm do hiệu suất vượt trội so với định dạng CSV.
Chế độ chỉ thêm vào là gì và sự khác biệt giữa chế độ chỉ thêm vào và chế độ cập nhật tại chỗ là gì?
Ở chế độ chỉ thêm, dữ liệu gia tăng từ các bảng Dataverse được thêm vào phân vùng tệp tương ứng trong hồ. Để biết thêm thông tin: Tùy chọn cấu hình nâng cao trong Azure Synapse Link
Khi nào tôi sử dụng chế độ chỉ thêm vào để xem lịch sử thay đổi?
Chế độ chỉ gắn thêm là tùy chọn được đề xuất để viết bảng dữ liệu Dataverse vào kho, đặc biệt khi khối lượng dữ liệu cao trong một phân vùng có dữ liệu thường xuyên thay đổi. Một lần nữa, đây là lựa chọn thường được sử dụng và rất được khuyến khích cho khách hàng doanh nghiệp. Ngoài ra, bạn có thể chọn sử dụng chế độ này cho các tình huống mà mục đích là xem xét từng bước các thay đổi từ Dataverse và xử lý các thay đổi cho các kịch bản ETL, AI và ML. Chế độ chỉ gắn thêm cung cấp lịch sử các thay đổi, thay vì thay đổi mới nhất hoặc cập nhật tại chỗ và cho phép một số chuỗi thời gian từ các kịch bản AI, chẳng hạn như dự đoán hoặc phân tích dự báo dựa trên các giá trị lịch sử.
Làm thế nào để lấy hàng cập nhật nhất của mỗi bản ghi và loại trừ các hàng đã xóa khi tôi xuất dữ liệu ở chế độ chỉ thêm?
Ở chế độ chỉ thêm, bạn nên xác định phiên bản bản ghi mới nhất có cùng ID bằng cách sử dụng VersionNumber
và SinkModifiedOn
sau đó áp dụng isDeleted=0
vào phiên bản mới nhất.
Tại sao tôi thấy số phiên bản trùng lặp khi xuất dữ liệu bằng chế độ chỉ thêm?
Đối với chế độ chỉ thêm, nếu Azure Synapse Link for Dataverse không nhận được xác nhận từ hồ dữ liệu Azure rằng dữ liệu đã được cam kết do bất kỳ lý do nào như độ trễ mạng, Azure Synapse Link sẽ thử lại trong các trường hợp đó và cam kết dữ liệu một lần nữa. Mức tiêu thụ hạ nguồn phải được điều chỉnh để thích ứng với tình huống này bằng cách lọc dữ liệu bằng SinkModifiedOn
.
Tại sao tôi lại thấy sự khác biệt giữa các cột Sinkmodifiedon và Modifiedon?
Điều này đã được dự đoán. Modifiedon
là ngày giờ mà bản ghi được thay đổi Dataverse; Sinkmodifiedon
là ngày giờ mà bản ghi được sửa đổi trong hồ dữ liệu.
Bảng nào không được hỗ trợ để xuất? Dataverse
Bất kỳ bảng nào không bật tính năng theo dõi thay đổi đều không được hỗ trợ, ngoài các bảng hệ thống sau:
- Đính kèm
- Lịch
- Quy tắc lịch
Lưu ý
Bạn có thể thêm bảng kiểm tra để xuất bằng cách sử dụng Azure Synapse Link for Dataverse. Tuy nhiên, việc xuất bảng kiểm tra chỉ được hỗ trợ với cấu hình Delta Lake.
Tôi đang sử dụng tính năng xuất sang delta lake, tôi có thể dừng công việc hoặc thay đổi thời gian thực hiện không? Apache Spark
Công việc chuyển đổi Delta Lake được kích hoạt khi có sự thay đổi dữ liệu trong khoảng thời gian đã cấu hình. Không có tùy chọn nào để dừng hoặc tạm dừng nhóm. Apache Spark Tuy nhiên, bạn có thể sửa đổi khoảng thời gian sau khi tạo liên kết trong mục Quản lý bảng > Khoảng thời gian nâng cao.
Có hỗ trợ cột tra cứu không? Azure Synapse Link
Cột tra cứu bao gồm một ID và một giá trị. Giá trị tra cứu chỉ thay đổi trên bảng gốc. Để phản ánh tốt hơn giá trị của cột tra cứu, chúng tôi khuyên bạn nên liên kết với bảng gốc để có được giá trị mới nhất.
Có hỗ trợ các cột được tính toán không? Azure Synapse Link
Trong Dataverse, các cột được tính toán chỉ giữ lại thông tin công thức và giá trị thực phụ thuộc vào cột của bảng cơ sở. Vì vậy, các cột được tính toán chỉ được hỗ trợ khi tất cả các cột đều nằm trong cùng một bảng được xuất.
Bảng nào sử dụng chế độ chỉ thêm vào theo mặc định? Dataverse
Theo mặc định, tất cả các bảng không có trường createdOn đều được đồng bộ hóa bằng chế độ chỉ thêm vào. Điều này bao gồm các bảng quan hệ và bảng ActivityParty.
Tại sao tôi thấy thông báo lỗi - Không thể liệt kê nội dung của thư mục trên đường dẫn?
- Dataverse dữ liệu được lưu trữ trong bộ lưu trữ được kết nối. Bạn cần có vai trò "Người đóng góp dữ liệu Blob lưu trữ" trong tài khoản lưu trữ được liên kết để thực hiện các hoạt động đọc và truy vấn thông qua Synapse Workspace.
- Nếu bạn chọn xuất dữ liệu theo định dạng Delta Lake, tệp CSV của bạn sẽ được dọn dẹp sau khi chuyển đổi sang Delta Lake. Bạn cần truy vấn dữ liệu với các bảng không được phân vùng thông qua Synapse Workspace.
Tại sao tôi lại thấy thông báo lỗi - không thể tải hàng loạt vì tệp không đầy đủ hoặc không thể đọc được (chỉ tệp CSV)?
Dữ liệu Dataverse có thể liên tục thay đổi thông qua việc tạo, cập nhật và xóa các giao dịch. Lỗi này xảy ra do tệp tin cơ bản bị thay đổi khi bạn đọc dữ liệu từ tệp đó. Vì vậy, đối với các bảng có thay đổi liên tục, hãy thay đổi đường dẫn tiêu thụ của bạn để sử dụng dữ liệu hình chụp nhanh (bảng phân vùng) để tiêu thụ. Thông tin thêm: Khắc phục sự cố nhóm SQL không có máy chủ
Tôi có thể sử dụng Azure Synapse Link để lưu trữ dữ liệu quan trọng như thế nào?
Azure Synapse Link for Dataverse được thiết kế cho mục đích phân tích. Chúng tôi khuyên khách hàng nên sử dụng chế độ lưu trữ dài hạn cho mục đích lưu trữ. Thông tin thêm: Dataverse Tổng quan về lưu giữ dữ liệu dài hạn
Tại sao tôi không thấy bất kỳ thay đổi dữ liệu nào trong kho dữ liệu khi các bản ghi đã bị xóa trong Dataverse?
Đối với bất kỳ lệnh gọi SQL trực tiếp nào để xóa bản ghi, dịch vụ Azure Synapse Link for Dataverse sẽ không kích hoạt vì BPO.Delete không được gọi. Để biết tính năng mẫu, hãy truy cập Cách dọn dẹp quyền truy cập được thừa kế.