Κοινή χρήση μέσω


Άνοιγμα απαιτήσεων και μορφής ζώνης προσγείωσης κατοπτρισμού

Αυτό το άρθρο περιγράφει τις απαιτήσεις λειτουργίας ζώνης προορισμού και πίνακα/στήλης για άνοιγμα κατοπτρισμού στο Microsoft Fabric.

Σημαντικό

Αυτή η δυνατότητα είναι σε προεπισκόπηση.

Αφού δημιουργήσετε την ανοιχτή βάση δεδομένων κατοπτρισμού μέσω της πύλης Fabric ή του δημόσιου API στον χώρο εργασίας fabric σας, λαμβάνετε μια διεύθυνση URL ζώνης προορισμού στο OneLake στην Αρχική σελίδα του στοιχείου βάσης δεδομένων κατοπτρισμού. Αυτή η ζώνη προορισμού είναι το σημείο όπου η εφαρμογή σας θα δημιουργήσει ένα αρχείο μετα-δεδομένων και δεδομένα γης σε μορφή Parquet (χωρίς συμπίεση, Snappy, GZIP, ZSTD).

Στιγμιότυπο οθόνης από την πύλη Fabric που εμφανίζει τη θέση διεύθυνσης URL της ζώνης προορισμού στην Αρχική σελίδα του στοιχείου βάσης δεδομένων κατοπτρισμού.

Ζώνη προορισμού

Για κάθε βάση δεδομένων κατοπτρισμού, υπάρχει μια μοναδική θέση αποθήκευσης στο OneLake για μετα-δεδομένα και πίνακες δέλτα. Το άνοιγμα κατοπτρισμού παρέχει έναν φάκελο ζώνης προορισμού για την εφαρμογή για να δημιουργήσει ένα αρχείο μετα-δεδομένων και να προωθήσει δεδομένα στο OneLake. Το κατοπτρικό παρακολουθεί αυτά τα αρχεία στη ζώνη προορισμού και διαβάζει τον φάκελο για νέους πίνακες και δεδομένα που έχουν προστεθεί.

Για παράδειγμα, εάν έχετε πίνακες (Table A, Table B, Table C) που θα δημιουργηθούν στη ζώνη προορισμού, δημιουργήστε φακέλους όπως οι παρακάτω διευθύνσεις URL:

  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/TableA
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/TableB
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/TableC

Αρχείο μετα-δεδομένων στη ζώνη προορισμού

Κάθε φάκελος πίνακα πρέπει να περιέχει ένα _metadata.json αρχείο.

Αυτό το αρχείο μετα-δεδομένων πίνακα περιέχει μια εγγραφή JSON για να καθορίσετε προς το παρόν μόνο τις στήλες μοναδικού κλειδιού ως keyColumns.

Για παράδειγμα, για να δηλώσετε στήλες C1 και C2 ως ένα σύνθετο μοναδικό κλειδί για τον πίνακα:

{
   "keyColumns" : ["C1", "C2"]
}

Εάν keyColumns δεν έχει καθοριστεί ή _metadata.json δεν έχει καθοριστεί, τότε οι ενημερώσεις/διαγραφές δεν είναι δυνατές. Αυτό το αρχείο μπορεί να προστεθεί οποιαδήποτε στιγμή, αλλά αφού προστεθεί keyColumns δεν μπορεί να αλλάξει.

Αρχείο δεδομένων και μορφή στη ζώνη προορισμού

Το άνοιγμα κατοπτρισμού υποστηρίζει το Parquet ως μορφή αρχείου ζώνης προορισμού με ή χωρίς συμπίεση. Οι υποστηριζόμενες μορφές συμπίεσης περιλαμβάνουν τα Snappy, GZIP και ZSTD.

Όλα τα αρχεία Parquet που είναι γραμμένα στη ζώνη προσγείωσης έχουν την ακόλουθη μορφή:

<RowMarker><DataColumns>

  • RowMarker: Το όνομα στήλης είναι __rowMarker__ (συμπεριλαμβάνοντας δύο χαρακτήρες υπογράμμισης πριν και μετά το rowMarker).

    • RowMaker αξιεσ:
      • 0 για ΕΙΣΑΓΩΓΉ
      • 1 για ΕΝΗΜΈΡΩΣΗ
      • 2 για DELETE
      • 4 για UPSERT
  • Σειρά γραμμών: Όλα τα αρχεία καταγραφής στο αρχείο πρέπει να είναι με φυσική σειρά, όπως εφαρμόζεται στη συναλλαγή. Αυτό είναι σημαντικό για την ίδια γραμμή που ενημερώνεται πολλές φορές. Το άνοιγμα κατοπτρισμού εφαρμόζει τις αλλαγές χρησιμοποιώντας τη σειρά στα αρχεία.

  • Σειρά αρχείων: Τα αρχεία πρέπει να προστίθενται σε μοντονικά αυξανόμενους αριθμούς.

  • Όνομα αρχείου: Το όνομα αρχείου είναι 20 ψηφία, όπως 00000000000000000001.parquet για το πρώτο αρχείο και 00000000000000000002.parquet για το δεύτερο. Τα ονόματα αρχείων πρέπει να είναι σε συνεχείς αριθμούς. Τα αρχεία θα διαγραφούν αυτόματα από την υπηρεσία κατοπτρισμού, αλλά το τελευταίο αρχείο θα μείνει έτσι ώστε το σύστημα εκδότη να μπορεί να το αναφέρει για να προσθέσει το επόμενο αρχείο με τη σειρά.

Αρχική φόρτωση

Για την αρχική φόρτωση των δεδομένων σε μια ανοιχτή βάση δεδομένων κατοπτρισμού, όλες οι γραμμές πρέπει να έχουν τον δείκτη ΕΙΣΑΓΩΓΉ ως γραμμή. Χωρίς RowMarker δεδομένα σε ένα αρχείο, ο κατοπτρικός χειρισμός ολόκληρου του αρχείου ως ΕΙΣΑΓΩΓΉ.

Επαυξητικές αλλαγές

Το άνοιγμα κατοπτρισμού διαβάζει επαυξητικές αλλαγές στη σειρά και τις εφαρμόζει στον πίνακα δέλτα προορισμού. Η σειρά είναι έμμεση στο αρχείο καταγραφής αλλαγών και στη σειρά των αρχείων.

Οι ενημερωμένες γραμμές πρέπει να περιέχουν δεδομένα πλήρους γραμμής, με όλες τις στήλες.

Εδώ θα βρείτε ορισμένα δείγματα δεδομένων parquet του ιστορικού γραμμών για να αλλάξετε το για EmployeeLocation το EmployeeID E0001 από Redmond σε Bellevue. Σε αυτό το σενάριο, η EmployeeID στήλη έχει επισημανθεί ως στήλη κλειδιού στο αρχείο μετα-δεδομένων στη ζώνη προορισμού.

__rowMarker__,EmployeeID,EmployeeLocation
0,E0001,Redmond
0,E0002,Redmond
0,E0003,Redmond
1,E0001,Bellevue

Εάν ενημερωθούν οι στήλες κλειδιού, θα πρέπει να εμφανίζεται από τη συνάρτηση DELETE σε προηγούμενες στήλες κλειδιού και γραμμές ΕΙΣΑΓΩΓΉς με νέο κλειδί και δεδομένα. Για παράδειγμα, το ιστορικό γραμμών για την αλλαγή του RowMarker μοναδικού αναγνωριστικού για EmployeeID το E0001 σε E0002. Δεν χρειάζεται να καταχωρήσετε όλα τα δεδομένα στήλης για μια γραμμή DELETE, μόνο τις στήλες κλειδιού.

__rowMarker__,EmployeeID,EmployeeLocation
0,E0001,Bellevue
2,E0001,NULL
0,E0002,Bellevue

Λειτουργίες πίνακα

Το άνοιγμα κατοπτρισμού υποστηρίζει λειτουργίες πίνακα όπως η προσθήκη, η απόθεση και η μετονομασία πινάκων.

Προσθήκη πίνακα

Το άνοιγμα κατοπτρισμού επιλέγει οποιονδήποτε πίνακα προστεθεί στη ζώνη προορισμού από την εφαρμογή. Ανοίξτε τις σαρώσεις κατοπτρισμού για νέους πίνακες σε κάθε επανάληψη.

Πίνακας απόθεσης

Το άνοιγμα κατοπτρισμού παρακολουθεί το όνομα του φακέλου. Εάν διαγραφεί ένας φάκελος πίνακα, το άνοιγμα κατοπτρισμού απορρίπτει τον πίνακα στη βάση δεδομένων κατοπτρισμού.

Εάν δημιουργηθεί ξανά ένας φάκελος, το άνοιγμα κατοπτρισμού απορρίπτει τον πίνακα και τον δημιουργεί εκ νέου με τα νέα δεδομένα στον φάκελο, επιτυγχαίνοντάς τον παρακολουθώντας το ETag για τον φάκελο.

Όταν επιχειρείτε να αποθέσετε έναν πίνακα, μπορείτε να δοκιμάσετε να διαγράψετε τον φάκελο, αλλά υπάρχει πιθανότητα το άνοιγμα κατοπτρισμού να εξακολουθεί να χρησιμοποιεί τα δεδομένα από τον φάκελο, προκαλώντας αποτυχία διαγραφής για τον εκδότη.

Μετονομασία πίνακα

Για να μετονομάσετε έναν πίνακα, αποθέστε και δημιουργήστε ξανά τον φάκελο με αρχικά και επαυξητικά δεδομένα. Τα δεδομένα θα πρέπει να επανασχεδιαστούν στον μετονομασμένο πίνακα.

Σχήμα

Μια διαδρομή πίνακα μπορεί να καθοριστεί μέσα σε έναν φάκελο σχήματος. Μια ζώνη προορισμού σχήματος πρέπει να έχει ένα <schemaname>.schema όνομα φακέλου. Μπορεί να υπάρχουν πολλά σχήματα και μπορεί να υπάρχουν πολλοί πίνακες σε ένα σχήμα.

Για παράδειγμα, εάν έχετε σχήματα (Schema1, Schema2) και πίνακες (Table A, Table B, Table C) που θα δημιουργηθούν στη ζώνη προορισμού, δημιουργήστε φακέλους όπως τις ακόλουθες διαδρομές στο OneLake:

  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/Schema1.schema/TableA
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/Schema1.schema/TableB
  • https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/Files/LandingZone/Schema2.schema/TableC

Στήλες πίνακα και λειτουργίες στηλών

Τύποι στηλών

  • Στη ζώνη προσγείωσης υποστηρίζονται απλοί τύποι παρκέ.
  • Οι σύνθετοι τύποι πρέπει να συντάσσονται ως συμβολοσειρά JSON.
  • Δυαδικοί σύνθετοι τύποι όπως γεωγραφική τοποθεσία, εικόνες κ.λπ. μπορούν να αποθηκευτούν ως δυαδικός τύπος στη ζώνη προορισμού.

Προσθήκη στήλης

Εάν προστεθούν νέες στήλες στα αρχεία parquet, ο ανοιχτός καθρέφτης προσθέτει τις στήλες στους πίνακες δέλτα.

Διαγραφή στήλης

Εάν μια στήλη καταργηθεί από τα νέα αρχεία καταγραφής, ανοίξτε καταστήματα NULL κατοπτρισμού για αυτές τις στήλες σε νέες γραμμές και οι παλιές γραμμές έχουν τις στήλες που υπάρχουν στα δεδομένα. Για να διαγράψετε τη στήλη, αποθέστε τον πίνακα και δημιουργήστε ξανά τον φάκελο πίνακα στη ζώνη προορισμού, το οποίο θα οδηγήσει σε αναψυχή του πίνακα Delta με νέο σχήμα και δεδομένα.

Το άνοιγμα κατοπτρισμού ενώνει πάντα όλες τις στήλες από την προηγούμενη έκδοση των δεδομένων που προστέθηκαν. Για να καταργήσετε μια στήλη, δημιουργήστε ξανά τον πίνακα/φάκελο.

Αλλαγή τύπου στήλης

Για να αλλάξετε έναν τύπο στήλης, αποθέστε και δημιουργήστε ξανά τον φάκελο με αρχικά και επαυξητικά δεδομένα με τον νέο τύπο στήλης. Η παροχή ενός νέου τύπου στήλης χωρίς τη δημιουργία εκ νέου του πίνακα έχει ως αποτέλεσμα σφάλμα και θα διακοπεί η αναπαραγωγή για αυτόν τον πίνακα. Όταν δημιουργηθεί ξανά ο φάκελος πίνακα, η αναπαραγωγή συνεχίζεται με νέα δεδομένα και σχήμα.

Μετονομασία στήλης

Για να μετονομάσετε μια στήλη, διαγράψτε τον φάκελο πίνακα και δημιουργήστε ξανά τον φάκελο με όλα τα δεδομένα και με το νέο όνομα στήλης.

Επόμενο βήμα