Παγόβουνο Apache είναι μια μορφή ανοιχτού πίνακα για πολύ μεγάλα αναλυτικά σύνολα δεδομένων, η οποία καταγράφει πληροφορίες μεταδεδομένων σχετικά με την κατάσταση των συνόλων δεδομένων καθώς εξελίσσονται και αλλάζουν με την πάροδο του χρόνου. Προσθέτει πίνακες σε υπολογιστικές μηχανές, συμπεριλαμβανομένων των Spark, Trino, PrestoDB, Flink και Hive χρησιμοποιώντας μια μορφή πίνακα υψηλής απόδοσης που λειτουργεί ακριβώς όπως ένας πίνακας SQL. Το Iceberg έχει γίνει πολύ δημοφιλές για την υποστήριξή του για συναλλαγές ACID σε λίμνες δεδομένων και λειτουργίες όπως η εξέλιξη σχημάτων και διαμερισμάτων, ταξίδι στο χρόνο και επαναφορά.
Η ενοποίηση του Apache Iceberg υποστηρίζεται από υπηρεσίες ανάλυσης AWS, συμπεριλαμβανομένων EMR Αμαζονίου, Αμαζόν Αθηνά, να Κόλλα AWS. Το Amazon EMR μπορεί να παρέχει συμπλέγματα με Spark, Hive, Trino και Flink που μπορούν να τρέξουν το Iceberg. Ξεκινώντας με την έκδοση 6.5.0 του Amazon EMR, μπορείτε χρησιμοποιήστε το Iceberg με το σύμπλεγμα EMR χωρίς να απαιτείται ενέργεια bootstrap. Στις αρχές του 2022, η AWS ανακοίνωσε τη γενική διαθεσιμότητα των συναλλαγών Athena ACID, που υποστηρίζονται από το Apache Iceberg. Το πρόσφατα κυκλοφόρησε Athena query engine έκδοση 3 παρέχει καλύτερη ενοποίηση με τη μορφή πίνακα Iceberg. AWS Glue 3.0 και νεότερη έκδοση υποστηρίζει το πλαίσιο Apache Iceberg για τις λίμνες δεδομένων.
Σε αυτήν την ανάρτηση, συζητάμε τι θέλουν οι πελάτες στις σύγχρονες λίμνες δεδομένων και πώς το Apache Iceberg βοηθά στην αντιμετώπιση των αναγκών των πελατών. Στη συνέχεια βαδίζουμε σε μια λύση για την κατασκευή μιας υψηλής απόδοσης και εξελισσόμενης λίμνης δεδομένων Iceberg Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) και επεξεργάζονται στοιχειώδη δεδομένα εκτελώντας την εισαγωγή, ενημέρωση και διαγραφή δηλώσεων SQL. Τέλος, σας δείχνουμε πώς να συντονίσετε την απόδοση της διαδικασίας για να βελτιώσετε την απόδοση ανάγνωσης και εγγραφής.
Πώς το Apache Iceberg αντιμετωπίζει αυτό που θέλουν οι πελάτες στις σύγχρονες λίμνες δεδομένων
Όλο και περισσότεροι πελάτες κατασκευάζουν λίμνες δεδομένων, με δομημένα και αδόμητα δεδομένα, για την υποστήριξη πολλών χρηστών, εφαρμογών και εργαλείων ανάλυσης. Υπάρχει αυξημένη ανάγκη για λίμνες δεδομένων να υποστηρίζουν λειτουργίες βάσης δεδομένων όπως συναλλαγές ACID, ενημερώσεις και διαγραφές σε επίπεδο αρχείου, ταξίδι στο χρόνο και επαναφορά. Το Apache Iceberg έχει σχεδιαστεί για να υποστηρίζει αυτές τις δυνατότητες σε οικονομικά αποδοτικές λίμνες δεδομένων σε κλίμακα petabyte στο Amazon S3.
Το Apache Iceberg αντιμετωπίζει τις ανάγκες των πελατών συλλέγοντας πλούσιες πληροφορίες μεταδεδομένων σχετικά με το σύνολο δεδομένων τη στιγμή που δημιουργούνται τα μεμονωμένα αρχεία δεδομένων. Υπάρχουν τρία επίπεδα στην αρχιτεκτονική ενός πίνακα Iceberg: ο κατάλογος Iceberg, το επίπεδο μεταδεδομένων και το επίπεδο δεδομένων, όπως απεικονίζεται στο παρακάτω σχήμα (πηγή).
Ο κατάλογος Iceberg αποθηκεύει τον δείκτη μεταδεδομένων στο τρέχον αρχείο μεταδεδομένων πίνακα. Όταν ένα επιλεγμένο ερώτημα διαβάζει έναν πίνακα Iceberg, η μηχανή ερωτημάτων πηγαίνει πρώτα στον κατάλογο Iceberg και, στη συνέχεια, ανακτά τη θέση του τρέχοντος αρχείου μεταδεδομένων. Κάθε φορά που υπάρχει ενημέρωση στον πίνακα Iceberg, δημιουργείται ένα νέο στιγμιότυπο του πίνακα και ο δείκτης μεταδεδομένων οδηγεί στο τρέχον αρχείο μεταδεδομένων πίνακα.
Ακολουθεί ένα παράδειγμα καταλόγου Iceberg με εφαρμογή AWS Glue. Μπορείτε να δείτε το όνομα της βάσης δεδομένων, τη θέση (διαδρομή S3) του πίνακα Iceberg και τη θέση μεταδεδομένων.
Το επίπεδο μεταδεδομένων έχει τρεις τύπους αρχείων: το αρχείο μεταδεδομένων, τη λίστα δήλωσης και το αρχείο δήλωσης σε μια ιεραρχία. Στην κορυφή της ιεραρχίας βρίσκεται το αρχείο μεταδεδομένων, το οποίο αποθηκεύει πληροφορίες σχετικά με το σχήμα του πίνακα, τις πληροφορίες διαμερισμάτων και τα στιγμιότυπα. Το στιγμιότυπο δείχνει στη λίστα δήλωσης. Η λίστα μανιφέστου έχει τις πληροφορίες για κάθε αρχείο μανιφέστου που συνθέτει το στιγμιότυπο, όπως τη θέση του αρχείου δήλωσης, τα διαμερίσματα στα οποία ανήκει και τα κάτω και άνω όρια για τις στήλες διαμερισμάτων για τα αρχεία δεδομένων που παρακολουθεί. Το αρχείο μανιφέστου παρακολουθεί αρχεία δεδομένων καθώς και πρόσθετες λεπτομέρειες για κάθε αρχείο, όπως τη μορφή αρχείου. Και τα τρία αρχεία λειτουργούν σε μια ιεραρχία για την παρακολούθηση των στιγμιότυπων, του σχήματος, των διαμερισμάτων, των ιδιοτήτων και των αρχείων δεδομένων σε έναν πίνακα Iceberg.
Το επίπεδο δεδομένων έχει τα μεμονωμένα αρχεία δεδομένων του πίνακα Iceberg. Το Iceberg υποστηρίζει ένα ευρύ φάσμα μορφών αρχείων, όπως Parquet, ORC και Avro. Επειδή ο πίνακας Iceberg παρακολουθεί τα μεμονωμένα αρχεία δεδομένων αντί να δείχνει μόνο τη θέση του διαμερίσματος με τα αρχεία δεδομένων, απομονώνει τις λειτουργίες εγγραφής από τις λειτουργίες ανάγνωσης. Μπορείτε να γράψετε τα αρχεία δεδομένων ανά πάσα στιγμή, αλλά μόνο να πραγματοποιήσετε την αλλαγή ρητά, η οποία δημιουργεί μια νέα έκδοση του στιγμιότυπου και των αρχείων μεταδεδομένων.
Επισκόπηση λύσεων
Σε αυτήν την ανάρτηση, σας καθοδηγούμε σε μια λύση για την κατασκευή μιας λίμνης δεδομένων Apache Iceberg υψηλής απόδοσης στο Amazon S3. Επεξεργασία στοιχειωδών δεδομένων με εισαγωγή, ενημέρωση και διαγραφή δηλώσεων SQL. και συντονίστε το τραπέζι Iceberg για να βελτιώσετε την απόδοση ανάγνωσης και εγγραφής. Το παρακάτω διάγραμμα απεικονίζει την αρχιτεκτονική λύσης.
Για να δείξουμε αυτή τη λύση, χρησιμοποιούμε το Κριτικές πελατών της Amazon σύνολο δεδομένων σε έναν κάδο S3 (s3://amazon-reviews-pds/parquet/
). Στην περίπτωση πραγματικής χρήσης, θα ήταν ακατέργαστα δεδομένα που αποθηκεύονται στον κάδο S3 σας. Μπορούμε να ελέγξουμε το μέγεθος των δεδομένων με τον παρακάτω κώδικα στο Διεπαφή γραμμής εντολών AWS (AWS CLI):
Ο συνολικός αριθμός αντικειμένων είναι 430 και το συνολικό μέγεθος είναι 47.4 GiB.
Για να ρυθμίσετε και να δοκιμάσετε αυτήν τη λύση, ολοκληρώνουμε τα ακόλουθα βήματα υψηλού επιπέδου:
- Ρυθμίστε έναν κάδο S3 στην επιλεγμένη ζώνη για αποθήκευση δεδομένων που έχουν μετατραπεί σε μορφή πίνακα Iceberg.
- Εκκινήστε ένα σύμπλεγμα EMR με κατάλληλες διαμορφώσεις για το Apache Iceberg.
- Δημιουργήστε ένα σημειωματάριο στο EMR Studio.
- Διαμορφώστε την περίοδο λειτουργίας Spark για το Apache Iceberg.
- Μετατρέψτε τα δεδομένα σε μορφή πίνακα Iceberg και μετακινήστε τα δεδομένα στην επιλεγμένη ζώνη.
- Εκτελέστε ερωτήματα εισαγωγής, ενημέρωσης και διαγραφής στο Athena για επεξεργασία στοιχειωδών δεδομένων.
- Πραγματοποιήστε συντονισμό απόδοσης.
Προϋποθέσεις
Για να ακολουθήσετε αυτήν την πορεία, πρέπει να έχετε ένα Λογαριασμός AWS με ένα Διαχείριση ταυτότητας και πρόσβασης AWS (IAM) ρόλος που έχει επαρκή πρόσβαση για την παροχή των απαιτούμενων πόρων.
Ρυθμίστε τον κάδο S3 για δεδομένα Iceberg στην επιλεγμένη ζώνη στη λίμνη δεδομένων σας
Επιλέξτε την περιοχή στην οποία θέλετε να δημιουργήσετε τον κάδο S3 και δώστε ένα μοναδικό όνομα:
Εκκινήστε ένα σύμπλεγμα EMR για να εκτελέσετε εργασίες Iceberg χρησιμοποιώντας το Spark
Μπορείτε να δημιουργήσετε ένα σύμπλεγμα EMR από το Κονσόλα διαχείρισης AWS, Amazon EMR CLI, ή Κιτ ανάπτυξης AWS Cloud (AWS CDK). Για αυτήν την ανάρτηση, σας καθοδηγούμε πώς να δημιουργήσετε ένα σύμπλεγμα EMR από την κονσόλα.
- Στην κονσόλα Amazon EMR, επιλέξτε Δημιουργία συμπλέγματος.
- Επιλέξτε Επιλογές για προχωρημένους.
- Για Διαμόρφωση λογισμικού, επιλέξτε την πιο πρόσφατη έκδοση του Amazon EMR. Από τον Ιανουάριο του 2023, η τελευταία έκδοση είναι η 6.9.0. Το Iceberg απαιτεί έκδοση 6.5.0 και άνω.
- Αγορά JupyterEnterpriseGateway και Σπινθήρας ως λογισμικό προς εγκατάσταση.
- Για Επεξεργαστείτε τις ρυθμίσεις λογισμικού, Επιλέξτε Εισαγάγετε τη διαμόρφωση και εισάγετε
[{"classification":"iceberg-defaults","properties":{"iceberg.enabled":true}}]
. - Αφήστε τις άλλες ρυθμίσεις στην προεπιλογή τους και επιλέξτε Επόμενο.
- Για υλικού, χρησιμοποιήστε την προεπιλεγμένη ρύθμιση.
- Επιλέξτε Επόμενο.
- Για Όνομα συμπλέγματος, πληκτρολογήστε ένα όνομα. Χρησιμοποιούμε
iceberg-blog-cluster
. - Αφήστε τις υπόλοιπες ρυθμίσεις αμετάβλητες και επιλέξτε Επόμενο.
- Επιλέξτε Δημιουργία συμπλέγματος.
Δημιουργήστε ένα σημειωματάριο στο EMR Studio
Τώρα σας καθοδηγούμε πώς να δημιουργήσετε ένα σημειωματάριο στο EMR Studio από την κονσόλα.
- Στην κονσόλα IAM, δημιουργήστε έναν ρόλο υπηρεσίας EMR Studio.
- Στην κονσόλα Amazon EMR, επιλέξτε EMR Studio.
- Επιλέξτε Αγορά.
Η Αγορά η σελίδα εμφανίζεται σε νέα καρτέλα.
- Επιλέξτε Δημιουργία Studio στη νέα καρτέλα.
- Εισαγάγετε ένα όνομα. Χρησιμοποιούμε iceberg-studio.
- Επιλέξτε το ίδιο VPC και υποδίκτυο με αυτά για το σύμπλεγμα EMR και την προεπιλεγμένη ομάδα ασφαλείας.
- Επιλέξτε Διαχείριση ταυτότητας και πρόσβασης AWS (IAM) για έλεγχο ταυτότητας και επιλέξτε τον ρόλο της υπηρεσίας EMR Studio που μόλις δημιουργήσατε.
- Επιλέξτε μια διαδρομή S3 για Δημιουργία αντιγράφων ασφαλείας χώρων εργασίας.
- Επιλέξτε Δημιουργία Studio.
- Αφού δημιουργηθεί το Studio, επιλέξτε τη διεύθυνση URL πρόσβασης στο Studio.
- Στον πίνακα εργαλείων EMR Studio, επιλέξτε Δημιουργία χώρου εργασίας.
- Εισαγάγετε ένα όνομα για τον χώρο εργασίας σας. Χρησιμοποιούμε
iceberg-workspace
. - Ανάπτυξη Προηγμένη διαμόρφωση Και επιλέξτε Συνδέστε το Workspace σε ένα σύμπλεγμα EMR.
- Επιλέξτε το σύμπλεγμα EMR που δημιουργήσατε νωρίτερα.
- Επιλέξτε Δημιουργία χώρου εργασίας.
- Επιλέξτε το όνομα χώρου εργασίας για να ανοίξετε μια νέα καρτέλα.
Στο παράθυρο πλοήγησης, υπάρχει ένα σημειωματάριο που έχει το ίδιο όνομα με το Workspace. Στην περίπτωσή μας, είναι παγόβουνο-χώρος εργασίας.
- Ανοίξτε το σημειωματάριο.
- Όταν σας ζητηθεί να επιλέξετε έναν πυρήνα, επιλέξτε Σπινθήρας.
Διαμορφώστε μια περίοδο λειτουργίας Spark για το Apache Iceberg
Χρησιμοποιήστε τον ακόλουθο κωδικό, παρέχοντας το δικό σας όνομα κάδου S3:
Αυτό ορίζει τις ακόλουθες διαμορφώσεις περιόδου λειτουργίας Spark:
- spark.sql.catalog.demo – Καταχωρεί έναν κατάλογο Spark με το όνομα demo, ο οποίος χρησιμοποιεί την προσθήκη καταλόγου Iceberg Spark.
- spark.sql.catalog.demo.catalog-impl – Ο δοκιμαστικός κατάλογος Spark χρησιμοποιεί το AWS Glue ως φυσικό κατάλογο για την αποθήκευση της βάσης δεδομένων Iceberg και των πληροφοριών πίνακα.
- spark.sql.catalog.demo.warehouse – Ο κατάλογος επίδειξης Spark αποθηκεύει όλα τα μεταδεδομένα και τα αρχεία δεδομένων του Iceberg κάτω από τη διαδρομή ρίζας που ορίζεται από αυτήν την ιδιότητα:
s3://iceberg-curated-blog-data
. - spark.sql.extensions – Προσθέτει υποστήριξη στις επεκτάσεις Iceberg Spark SQL, οι οποίες σας επιτρέπουν να εκτελείτε διαδικασίες Iceberg Spark και ορισμένες εντολές SQL μόνο για Iceberg (το χρησιμοποιείτε σε επόμενο βήμα).
- spark.sql.catalog.demo.io-impl – Το Iceberg επιτρέπει στους χρήστες να γράφουν δεδομένα στο Amazon S3 μέσω του S3FileIO. Ο κατάλογος δεδομένων AWS Glue χρησιμοποιεί από προεπιλογή αυτό το FileIO και άλλοι κατάλογοι μπορούν να φορτώσουν αυτό το FileIO χρησιμοποιώντας την ιδιότητα καταλόγου io-impl.
Μετατροπή δεδομένων σε μορφή πίνακα Iceberg
Μπορείτε να χρησιμοποιήσετε είτε το Spark στο Amazon EMR είτε το Athena για να φορτώσετε το τραπέζι Iceberg. Στην περίοδο λειτουργίας Spark του σημειωματάριου EMR Studio Workspace, εκτελέστε τις ακόλουθες εντολές για να φορτώσετε τα δεδομένα:
Αφού εκτελέσετε τον κώδικα, θα πρέπει να βρείτε δύο προθέματα που έχουν δημιουργηθεί στη διαδρομή S3 της αποθήκης δεδομένων σας (s3://iceberg-curated-blog-data/reviews.db/all_reviews
): δεδομένα και μεταδεδομένα.
Επεξεργαστείτε τα αυξητικά δεδομένα χρησιμοποιώντας εισαγωγή, ενημέρωση και διαγραφή εντολών SQL στο Athena
Το Athena είναι μια μηχανή ερωτημάτων χωρίς διακομιστή που μπορείτε να χρησιμοποιήσετε για να εκτελέσετε εργασίες ανάγνωσης, εγγραφής, ενημέρωσης και βελτιστοποίησης έναντι πινάκων Iceberg. Για να δείξουμε πώς η μορφή λίμνης δεδομένων Apache Iceberg υποστηρίζει αυξητική απορρόφηση δεδομένων, εκτελούμε την εισαγωγή, ενημέρωση και διαγραφή δηλώσεων SQL στη λίμνη δεδομένων.
Μεταβείτε στην κονσόλα Athena και επιλέξτε Ερώτημα-επεξεργαστής. Εάν αυτή είναι η πρώτη φορά που χρησιμοποιείτε το πρόγραμμα επεξεργασίας ερωτημάτων Athena, πρέπει να το κάνετε διαμορφώστε τη θέση του αποτελέσματος του ερωτήματος να είναι ο κάδος S3 που δημιουργήσατε νωρίτερα. Θα πρέπει να μπορείτε να δείτε ότι ο πίνακας reviews.all_reviews είναι διαθέσιμος για αναζήτηση. Εκτελέστε το ακόλουθο ερώτημα για να επαληθεύσετε ότι έχετε φορτώσει με επιτυχία τον πίνακα Iceberg:
Επεξεργαστείτε τα στοιχειώδη δεδομένα εκτελώντας δηλώσεις εισαγωγής, ενημέρωσης και διαγραφής SQL:
Ρύθμιση απόδοσης
Σε αυτήν την ενότητα, εξετάζουμε διάφορους τρόπους για να βελτιώσουμε την απόδοση ανάγνωσης και εγγραφής του Apache Iceberg.
Διαμόρφωση ιδιοτήτων πίνακα Apache Iceberg
Το Apache Iceberg είναι μια μορφή πίνακα και υποστηρίζει ιδιότητες πίνακα για τη διαμόρφωση της συμπεριφοράς του πίνακα όπως η ανάγνωση, η εγγραφή και ο κατάλογος. Μπορείτε να βελτιώσετε την απόδοση ανάγνωσης και εγγραφής σε πίνακες Iceberg προσαρμόζοντας τις ιδιότητες του πίνακα.
Για παράδειγμα, εάν παρατηρήσετε ότι γράφετε πάρα πολλά μικρά αρχεία για έναν πίνακα Iceberg, μπορείτε να ρυθμίσετε το μέγεθος του αρχείου εγγραφής ώστε να γράφει λιγότερα αλλά μεγαλύτερα αρχεία, για να βελτιώσετε την απόδοση του ερωτήματος.
Περιουσία | Προεπιλογή | Περιγραφή |
write.target-file-size-bytes | 536870912 (512 MB) | Ελέγχει το μέγεθος των αρχείων που δημιουργούνται για στόχευση περίπου τόσα πολλά byte |
Χρησιμοποιήστε τον ακόλουθο κώδικα για να αλλάξετε τη μορφή του πίνακα:
Διαμερισμός και ταξινόμηση
Για να εκτελείται ένα ερώτημα γρήγορα, όσο λιγότερα δεδομένα διαβάζονται τόσο το καλύτερο. Το Iceberg εκμεταλλεύεται τα πλούσια μεταδεδομένα που συλλαμβάνει κατά το χρόνο εγγραφής και διευκολύνει τεχνικές όπως σχεδιασμός σάρωσης, διαχωρισμός, κλάδεμα και στατιστικά σε επίπεδο στήλης, όπως τιμές ελάχ./μέγ., για να παραλείψει αρχεία δεδομένων που δεν έχουν εγγραφές αντιστοίχισης. Σας καθοδηγούμε στον τρόπο με τον οποίο λειτουργεί ο σχεδιασμός σάρωσης ερωτημάτων και η διαμέριση στο Iceberg και πώς τα χρησιμοποιούμε για να βελτιώσουμε την απόδοση των ερωτημάτων.
Σχεδιασμός σάρωσης ερωτημάτων
Για ένα δεδομένο ερώτημα, το πρώτο βήμα σε μια μηχανή ερωτημάτων είναι ο σχεδιασμός σάρωσης, ο οποίος είναι η διαδικασία εύρεσης των αρχείων σε έναν πίνακα που απαιτούνται για ένα ερώτημα. Ο σχεδιασμός σε έναν πίνακα Iceberg είναι πολύ αποτελεσματικός, επειδή τα πλούσια μεταδεδομένα του Iceberg μπορούν να χρησιμοποιηθούν για την περικοπή αρχείων μεταδεδομένων που δεν χρειάζονται, εκτός από το φιλτράρισμα αρχείων δεδομένων που δεν περιέχουν αντίστοιχα δεδομένα. Στις δοκιμές μας, παρατηρήσαμε ότι η Athena σάρωνε 50% ή λιγότερα δεδομένα για ένα δεδομένο ερώτημα σε έναν πίνακα Iceberg σε σύγκριση με τα αρχικά δεδομένα πριν από τη μετατροπή σε μορφή Iceberg.
Υπάρχουν δύο τύποι φιλτραρίσματος:
- Φιλτράρισμα μεταδεδομένων – Το Iceberg χρησιμοποιεί δύο επίπεδα μεταδεδομένων για την παρακολούθηση των αρχείων σε ένα στιγμιότυπο: τη λίστα δήλωσης και τα αρχεία δήλωσης. Χρησιμοποιεί πρώτα τη λίστα δήλωσης, η οποία λειτουργεί ως ευρετήριο των αρχείων δήλωσης. Κατά τη διάρκεια του σχεδιασμού, το Iceberg φιλτράρει τις εκδηλώσεις χρησιμοποιώντας το εύρος τιμών διαμερίσματος στη λίστα δήλωσης χωρίς να διαβάζει όλα τα αρχεία δήλωσης. Στη συνέχεια, χρησιμοποιεί επιλεγμένα αρχεία δήλωσης για τη λήψη αρχείων δεδομένων.
- Φιλτράρισμα δεδομένων – Αφού επιλέξει τη λίστα των αρχείων δήλωσης, το Iceberg χρησιμοποιεί τα δεδομένα διαμερισμάτων και τα στατιστικά σε επίπεδο στήλης για κάθε αρχείο δεδομένων που είναι αποθηκευμένο σε αρχεία δήλωσης για να φιλτράρει τα αρχεία δεδομένων. Κατά τον προγραμματισμό, τα κατηγορήματα ερωτημάτων μετατρέπονται σε κατηγορήματα στα δεδομένα του διαμερίσματος και εφαρμόζονται πρώτα για το φιλτράρισμα των αρχείων δεδομένων. Στη συνέχεια, τα στατιστικά στοιχεία στηλών, όπως μετρήσεις τιμών σε επίπεδο στήλης, πλήθος μηδενικών, κάτω και άνω ορίων χρησιμοποιούνται για το φιλτράρισμα αρχείων δεδομένων που δεν μπορούν να αντιστοιχούν στο κατηγόρημα του ερωτήματος. Με τη χρήση άνω και κάτω ορίων για το φιλτράρισμα των αρχείων δεδομένων κατά τον χρόνο προγραμματισμού, το Iceberg βελτιώνει σημαντικά την απόδοση των ερωτημάτων.
Διαμερισμός και ταξινόμηση
Η κατάτμηση είναι ένας τρόπος για να ομαδοποιήσετε εγγραφές με τις ίδιες τιμές στηλών κλειδιών γραπτώς. Το πλεονέκτημα της κατάτμησης είναι τα ταχύτερα ερωτήματα που έχουν πρόσβαση μόνο σε μέρος των δεδομένων, όπως εξηγήθηκε νωρίτερα στον σχεδιασμό σάρωσης ερωτημάτων: φιλτράρισμα δεδομένων. Το Iceberg κάνει τη διαμέριση απλή υποστηρίζοντας κρυφή κατάτμηση, με τον τρόπο που το Iceberg παράγει τιμές διαμερισμάτων παίρνοντας μια τιμή στήλης και προαιρετικά μετατρέποντάς την.
Στην περίπτωση χρήσης μας, εκτελούμε πρώτα το ακόλουθο ερώτημα στον πίνακα Iceberg που δεν είναι διαμερισμένος. Στη συνέχεια χωρίζουμε τον πίνακα Iceberg κατά την κατηγορία των κριτικών, η οποία θα χρησιμοποιηθεί στην συνθήκη του ερωτήματος WHERE για να φιλτράρει τις εγγραφές. Με την κατάτμηση, το ερώτημα θα μπορούσε να σαρώσει πολύ λιγότερα δεδομένα. Δείτε τον παρακάτω κώδικα:
Εκτελέστε την ακόλουθη πρόταση επιλογής στον πίνακα all_reviews που δεν έχει κατατμηθεί σε σύγκριση με τον πίνακα με διαμερίσματα για να δείτε τη διαφορά απόδοσης:
Ο παρακάτω πίνακας δείχνει τη βελτίωση της απόδοσης της κατάτμησης δεδομένων, με περίπου 50% βελτίωση απόδοσης και 70% λιγότερα δεδομένα που έχουν σαρωθεί.
Όνομα συνόλου δεδομένων | Μη κατατμημένο σύνολο δεδομένων | Διαμερισμένο σύνολο δεδομένων |
Χρόνος εκτέλεσης (δευτερόλεπτα) | 8.20 | 4.25 |
Σαρωμένα δεδομένα (MB) | 131.55 | 33.79 |
Σημειώστε ότι ο χρόνος εκτέλεσης είναι ο μέσος χρόνος εκτέλεσης με πολλαπλές εκτελέσεις στη δοκιμή μας.
Είδαμε καλή βελτίωση της απόδοσης μετά την κατάτμηση. Ωστόσο, αυτό μπορεί να βελτιωθεί περαιτέρω χρησιμοποιώντας στατιστικά σε επίπεδο στήλης από αρχεία δήλωσης Iceberg. Για να χρησιμοποιήσετε αποτελεσματικά τα στατιστικά σε επίπεδο στήλης, θέλετε να ταξινομήσετε περαιτέρω τις εγγραφές σας με βάση τα μοτίβα ερωτημάτων. Η ταξινόμηση ολόκληρου του συνόλου δεδομένων χρησιμοποιώντας τις στήλες που χρησιμοποιούνται συχνά σε ερωτήματα θα αναδιατάξει τα δεδομένα με τέτοιο τρόπο ώστε κάθε αρχείο δεδομένων να καταλήγει σε ένα μοναδικό εύρος τιμών για τις συγκεκριμένες στήλες. Εάν αυτές οι στήλες χρησιμοποιούνται στη συνθήκη ερωτήματος, επιτρέπει στις μηχανές ερωτημάτων να παρακάμπτουν περαιτέρω τα αρχεία δεδομένων, επιτρέποντας έτσι ακόμη πιο γρήγορα ερωτήματα.
Αντιγραφή σε εγγραφή έναντι ανάγνωσης σε συγχώνευση
Κατά την εφαρμογή ενημέρωσης και διαγραφής σε πίνακες Iceberg στη λίμνη δεδομένων, υπάρχουν δύο προσεγγίσεις που ορίζονται από τις ιδιότητες του πίνακα Iceberg:
- Αντιγραφή σε εγγραφή – Με αυτήν την προσέγγιση, όταν υπάρχουν αλλαγές στον πίνακα Iceberg, είτε ενημερώσεις είτε διαγραφές, τα αρχεία δεδομένων που σχετίζονται με τις επηρεαζόμενες εγγραφές θα αντιγράφονται και θα ενημερώνονται. Οι εγγραφές είτε θα ενημερωθούν είτε θα διαγραφούν από τα διπλότυπα αρχεία δεδομένων. Θα δημιουργηθεί ένα νέο στιγμιότυπο του πίνακα Iceberg και θα δείχνει τη νεότερη έκδοση των αρχείων δεδομένων. Αυτό κάνει τη συνολική εγγραφή πιο αργή. Μπορεί να υπάρχουν περιπτώσεις που απαιτούνται ταυτόχρονες εγγραφές με διενέξεις, επομένως πρέπει να γίνει επανάληψη, γεγονός που αυξάνει ακόμη περισσότερο τον χρόνο εγγραφής. Από την άλλη πλευρά, κατά την ανάγνωση των δεδομένων, δεν χρειάζεται επιπλέον διαδικασία. Το ερώτημα θα ανακτήσει δεδομένα από την πιο πρόσφατη έκδοση των αρχείων δεδομένων.
- Συγχώνευση σε ανάγνωση – Με αυτήν την προσέγγιση, όταν υπάρχουν ενημερώσεις ή διαγραφές στον πίνακα Iceberg, τα υπάρχοντα αρχεία δεδομένων δεν θα ξαναγραφούν. Αντίθετα, θα δημιουργηθούν νέα αρχεία διαγραφής για την παρακολούθηση των αλλαγών. Για τις διαγραφές, θα δημιουργηθεί ένα νέο αρχείο διαγραφής με τις διαγραμμένες εγγραφές. Κατά την ανάγνωση του πίνακα Iceberg, το αρχείο διαγραφής θα εφαρμοστεί στα δεδομένα που ανακτήθηκαν για να φιλτράρονται οι εγγραφές διαγραφής. Για ενημερώσεις, θα δημιουργηθεί ένα νέο αρχείο διαγραφής για την επισήμανση των ενημερωμένων εγγραφών ως διαγραμμένων. Στη συνέχεια θα δημιουργηθεί ένα νέο αρχείο για αυτές τις εγγραφές αλλά με ενημερωμένες τιμές. Κατά την ανάγνωση του πίνακα Iceberg, τόσο τα αρχεία διαγραφής όσο και τα νέα αρχεία θα εφαρμοστούν στα δεδομένα που ανακτήθηκαν για να αντικατοπτρίζουν τις πιο πρόσφατες αλλαγές και να παράγουν τα σωστά αποτελέσματα. Έτσι, για τυχόν επόμενα ερωτήματα, θα συμβεί ένα επιπλέον βήμα για τη συγχώνευση των αρχείων δεδομένων με τα αρχεία διαγραφής και νέων, το οποίο συνήθως θα αυξήσει τον χρόνο ερωτήματος. Από την άλλη πλευρά, οι εγγραφές μπορεί να είναι πιο γρήγορες επειδή δεν χρειάζεται να ξαναγράψετε τα υπάρχοντα αρχεία δεδομένων.
Για να ελέγξετε τον αντίκτυπο των δύο προσεγγίσεων, μπορείτε να εκτελέσετε τον ακόλουθο κώδικα για να ορίσετε τις ιδιότητες του πίνακα Iceberg:
Εκτελέστε την ενημέρωση, διαγράψτε και επιλέξτε δηλώσεις SQL στο Athena για να εμφανίσετε τη διαφορά χρόνου εκτέλεσης για αντιγραφή σε εγγραφή έναντι συγχώνευσης σε ανάγνωση:
Ο παρακάτω πίνακας συνοψίζει τους χρόνους εκτέλεσης του ερωτήματος.
Απορία | Αντιγραφή σε Εγγραφή | Merge-on-Read | ||||
ΕΚΣΥΓΧΡΟΝΊΖΩ | ΔΙΑΓΡΑΦΗ | SELECT | ΕΚΣΥΓΧΡΟΝΊΖΩ | ΔΙΑΓΡΑΦΗ | SELECT | |
Χρόνος εκτέλεσης (δευτερόλεπτα) | 66.251 | 116.174 | 97.75 | 10.788 | 54.941 | 113.44 |
Σαρώθηκαν δεδομένα (MB) | 494.06 | 3.07 | 137.16 | 494.06 | 3.07 | 137.16 |
Σημειώστε ότι ο χρόνος εκτέλεσης είναι ο μέσος χρόνος εκτέλεσης με πολλαπλές εκτελέσεις στη δοκιμή μας.
Όπως δείχνουν τα αποτελέσματα των δοκιμών μας, υπάρχουν πάντα συμβιβασμούς στις δύο προσεγγίσεις. Ποια προσέγγιση θα χρησιμοποιήσετε εξαρτάται από τις περιπτώσεις χρήσης σας. Συνοπτικά, οι εκτιμήσεις καταλήγουν στον λανθάνοντα χρόνο στην ανάγνωση έναντι της εγγραφής. Μπορείτε να ανατρέξετε στον παρακάτω πίνακα και να κάνετε τη σωστή επιλογή.
. | Αντιγραφή σε Εγγραφή | Merge-on-Read |
ΥΠΕΡ | Πιο γρήγορα διαβάζει | Ο Faster γράφει |
ΚΑΤΑ | Ακριβά γράφει | Υψηλότερη καθυστέρηση στις αναγνώσεις |
Πότε να χρησιμοποιήσετε | Κατάλληλο για συχνές αναγνώσεις, σπάνιες ενημερώσεις και διαγραφές ή μεγάλες μαζικές ενημερώσεις | Κατάλληλο για πίνακες με συχνές ενημερώσεις και διαγραφές |
Συμπίεση δεδομένων
Εάν το μέγεθος του αρχείου δεδομένων σας είναι μικρό, μπορεί να καταλήξετε με χιλιάδες ή εκατομμύρια αρχεία σε έναν πίνακα Iceberg. Αυτό αυξάνει δραματικά τη λειτουργία I/O και επιβραδύνει τα ερωτήματα. Επιπλέον, το Iceberg παρακολουθεί κάθε αρχείο δεδομένων σε ένα σύνολο δεδομένων. Περισσότερα αρχεία δεδομένων οδηγούν σε περισσότερα μεταδεδομένα. Αυτό με τη σειρά του αυξάνει την επιβάρυνση και τη λειτουργία I/O για την ανάγνωση αρχείων μεταδεδομένων. Προκειμένου να βελτιωθεί η απόδοση του ερωτήματος, συνιστάται η συμπίεση μικρών αρχείων δεδομένων σε μεγαλύτερα αρχεία δεδομένων.
Κατά την ενημέρωση και τη διαγραφή εγγραφών στον πίνακα Iceberg, εάν χρησιμοποιείται η προσέγγιση ανάγνωσης σε συγχώνευση, ενδέχεται να καταλήξετε με πολλές μικρές διαγραφές ή νέα αρχεία δεδομένων. Η εκτέλεση συμπίεσης θα συνδυάσει όλα αυτά τα αρχεία και θα δημιουργήσει μια νεότερη έκδοση του αρχείου δεδομένων. Αυτό εξαλείφει την ανάγκη να τα εναρμονίσετε κατά τις αναγνώσεις. Συνιστάται να κάνετε τακτικές εργασίες συμπίεσης για να επηρεάζετε όσο το δυνατόν λιγότερο τις αναγνώσεις, διατηρώντας παράλληλα μεγαλύτερη ταχύτητα εγγραφής.
Εκτελέστε την ακόλουθη εντολή συμπίεσης δεδομένων και, στη συνέχεια, εκτελέστε το ερώτημα επιλογής από το Athena:
Ο παρακάτω πίνακας συγκρίνει το χρόνο εκτέλεσης πριν από τη συμπίεση δεδομένων μετά. Μπορείτε να δείτε περίπου 40% βελτίωση της απόδοσης.
Απορία | Πριν από τη συμπίεση δεδομένων | Μετά τη συμπίεση δεδομένων |
Χρόνος εκτέλεσης (δευτερόλεπτα) | 97.75 | 32.676 δευτερόλεπτα |
Σαρώθηκαν δεδομένα (MB) | 137.16 M | 189.19 M |
Σημειώστε ότι τα ερωτήματα επιλογής εκτελούνταν στο all_reviews
πίνακα μετά τις λειτουργίες ενημέρωσης και διαγραφής, πριν και μετά τη συμπίεση δεδομένων. Ο χρόνος εκτέλεσης είναι ο μέσος χρόνος εκτέλεσης με πολλαπλές εκτελέσεις στη δοκιμή μας.
εκκαθάριση
Αφού ακολουθήσετε την αναλυτική περιγραφή της λύσης για να εκτελέσετε τις περιπτώσεις χρήσης, ολοκληρώστε τα παρακάτω βήματα για να καθαρίσετε τους πόρους σας και να αποφύγετε περαιτέρω κόστος:
- Αποθέστε τους πίνακες και τη βάση δεδομένων AWS Glue από το Athena ή εκτελέστε τον ακόλουθο κώδικα στο σημειωματάριό σας:
- Στην κονσόλα EMR Studio, επιλέξτε Χώροι εργασίας στο παράθυρο πλοήγησης.
- Επιλέξτε τον χώρο εργασίας που δημιουργήσατε και επιλέξτε Διαγραφή.
- Στην κονσόλα EMR, μεταβείτε στο Studios .
- Επιλέξτε το Studio που δημιουργήσατε και επιλέξτε Διαγραφή.
- Στην κονσόλα EMR, επιλέξτε Συστοιχίες στο παράθυρο πλοήγησης.
- Επιλέξτε το σύμπλεγμα και επιλέξτε Περατώ.
- Διαγράψτε τον κάδο S3 και τυχόν άλλους πόρους που δημιουργήσατε ως μέρος των προαπαιτούμενων για αυτήν την ανάρτηση.
Συμπέρασμα
Σε αυτήν την ανάρτηση, παρουσιάσαμε το πλαίσιο του Apache Iceberg και πώς βοηθά στην επίλυση ορισμένων από τις προκλήσεις που αντιμετωπίζουμε σε μια σύγχρονη λίμνη δεδομένων. Στη συνέχεια, σας δώσαμε μια λύση για την επεξεργασία στοιχειωδών δεδομένων σε μια λίμνη δεδομένων χρησιμοποιώντας το Apache Iceberg. Τέλος, κάναμε μια βαθιά βουτιά στη ρύθμιση απόδοσης για να βελτιώσουμε την απόδοση ανάγνωσης και εγγραφής για τις περιπτώσεις χρήσης μας.
Ελπίζουμε ότι αυτή η ανάρτηση παρέχει μερικές χρήσιμες πληροφορίες για να αποφασίσετε εάν θέλετε να υιοθετήσετε το Apache Iceberg στη λύση της λίμνης δεδομένων σας.
Σχετικά με τους Συγγραφείς
Φλόρα Γου είναι Sr. Resident Architect στο AWS Data Lab. Βοηθά τους εταιρικούς πελάτες να δημιουργήσουν στρατηγικές ανάλυσης δεδομένων και να δημιουργήσουν λύσεις για να επιταχύνουν τα αποτελέσματα της επιχείρησής τους. Στον ελεύθερο χρόνο της, της αρέσει να παίζει τένις, να χορεύει σάλσα και να ταξιδεύει.
Ντάνιελ Λι είναι αρχιτέκτονας λύσεων Sr. στο Amazon Web Services. Επικεντρώνεται στο να βοηθά τους πελάτες να αναπτύξουν, να υιοθετήσουν και να εφαρμόσουν υπηρεσίες και στρατηγική cloud. Όταν δεν εργάζεται, του αρέσει να περνά χρόνο σε εξωτερικούς χώρους με την οικογένειά του.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- Platoblockchain. Web3 Metaverse Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- πηγή: https://aws.amazon.com/blogs/big-data/use-apache-iceberg-in-a-data-lake-to-support-incremental-data-processing/
- 10
- 100
- 11
- 2022
- 2023
- 7
- 9
- a
- Ικανός
- Σχετικά
- πάνω από
- επιταχύνουν
- πρόσβαση
- Διαχείριση Πρόσβασης
- Ενέργειες
- πράξεις
- Επιπλέον
- Πρόσθετος
- διεύθυνση
- διευθύνσεις
- Προσθέτει
- ενστερνίζομαι
- Πλεονέκτημα
- Μετά το
- κατά
- Όλα
- επιτρέπει
- πάντοτε
- Amazon
- EMR Αμαζονίου
- Amazon υπηρεσίες Web
- Αναλυτικός
- analytics
- και
- ανακοίνωσε
- Apache
- εφαρμογές
- εφαρμοσμένος
- πλησιάζω
- προσεγγίσεις
- κατάλληλος
- αρχιτεκτονική
- συσχετισμένη
- Πιστοποίηση
- διαθεσιμότητα
- διαθέσιμος
- μέσος
- αποφύγετε
- AWS
- Κόλλα AWS
- βασίζονται
- επειδή
- γίνονται
- πριν
- όφελος
- Καλύτερα
- μεταξύ
- μεγαλύτερος
- Bootstrap
- χτίζω
- Κτίριο
- επιχειρήσεις
- συλλαμβάνει
- Καταγραφή
- περίπτωση
- περιπτώσεις
- κατάλογος
- καταλόγους
- κατηγορία
- προκλήσεις
- αλλαγή
- Αλλαγές
- έλεγχος
- επιλογή
- Επιλέξτε
- ταξινόμηση
- Backup
- υπηρεσίες cloud
- συστάδα
- κωδικός
- Στήλη
- Στήλες
- συνδυασμός
- Ελάτε
- διαπράττουν
- σύγκριση
- πλήρης
- Υπολογίστε
- ανταγωνιστής
- κατάσταση
- διαμορφώσεις
- θεωρήσεις
- πρόξενος
- Μετατροπή
- μετατρέπονται
- αποδοτική
- Δικαστικά έξοδα
- θα μπορούσε να
- δημιουργία
- δημιουργήθηκε
- δημιουργεί
- επιμέλεια
- Ρεύμα
- πελάτης
- Πελάτες
- Χορός
- ταμπλό
- ημερομηνία
- Δεδομένα Analytics
- Λίμνη δεδομένων
- επεξεργασία δεδομένων
- αποθήκη δεδομένων
- βάση δεδομένων
- σύνολα δεδομένων
- βαθύς
- βαθιά κατάδυση
- Προεπιλογή
- ορίζεται
- Διαδήλωση
- αποδεικνύουν
- εξαρτάται
- σχεδιασμένα
- καθέκαστα
- ανάπτυξη
- Ανάπτυξη
- διαφορά
- διαφορετικές
- συζητήσουν
- Μην
- κάτω
- δραματικά
- Πτώση
- κατά την διάρκεια
- κάθε
- Νωρίτερα
- Νωρίς
- συντάκτης
- αποτελεσματικά
- αποτελεσματικός
- είτε
- εξαλείφει
- ενεργοποιημένη
- ενεργοποίηση
- τελειώνει
- Κινητήρας
- Κινητήρες
- εισάγετε
- Εταιρεία
- επιχειρηματικούς πελάτες
- Αιθέρας (ΕΤΗ)
- Even
- εξέλιξη
- εξελίσσονται
- εξελίσσεται
- παράδειγμα
- υφιστάμενα
- υπάρχει
- εξήγησε
- επεκτάσεις
- επιπλέον
- διευκολύνει
- οικογένεια
- FAST
- γρηγορότερα
- Χαρακτηριστικά
- Εικόνα
- Αρχεία
- Αρχεία
- φιλτράρισμα
- φιλτράρισμα
- Φίλτρα
- Τελικά
- Εύρεση
- Όνομα
- πρώτη φορά
- εστιάζει
- ακολουθήστε
- Εξής
- μορφή
- Πλαίσιο
- συχνάζω
- από
- περαιτέρω
- Επί πλέον
- General
- παράγεται
- παίρνω
- δεδομένου
- πηγαίνει
- καλός
- σε μεγάλο βαθμό
- Group
- χέρι
- συμβαίνω
- βοήθεια
- βοήθεια
- βοηθά
- κρυμμένο
- ιεραρχία
- υψηλού επιπέδου
- υψηλή απόδοση
- υψηλή απόδοση
- Κυψέλη
- ελπίζω
- Πως
- Πώς να
- Ωστόσο
- HTML
- HTTPS
- IAM
- Ταυτότητα
- διαχείριση ταυτότητας και πρόσβασης
- Επίπτωση
- επηρεάζονται
- εφαρμογή
- εκτέλεση
- εκτελεστικών
- βελτίωση
- βελτιωθεί
- βελτίωση
- βελτιώνει
- in
- Συμπεριλαμβανομένου
- Αυξάνουν
- αυξημένη
- Αυξήσεις
- ευρετήριο
- ατομικές
- πληροφορίες
- εγκαθιστώ
- αντί
- ολοκλήρωση
- εισήγαγε
- Απομονωμένα
- IT
- Ιανουάριος
- Θέσεις εργασίας
- Κλειδί
- εργαστήριο
- λίμνη
- large
- μεγαλύτερος
- Αφάνεια
- αργότερο
- τελευταία έκδοση
- στρώμα
- στρώματα
- οδηγήσει
- επίπεδα
- LIMIT
- γραμμή
- Λίστα
- λίγο
- φορτίο
- τοποθεσία
- κάνω
- ΚΑΝΕΙ
- διαχείριση
- πολοί
- σημάδι
- αγορά
- Ταίριασμα
- ταιριάζουν
- πηγαίνω
- Μεταδεδομένα
- ενδέχεται να
- εκατομμύρια
- ΜΟΝΤΕΡΝΑ
- περισσότερο
- μετακινήσετε
- πολλαπλούς
- όνομα
- Ονομάστηκε
- Πλοηγηθείτε
- Πλοήγηση
- Ανάγκη
- που απαιτούνται
- ανάγκες
- Νέα
- σημειωματάριο
- αντικείμενο
- ανοίξτε
- λειτουργία
- λειτουργίες
- βελτιστοποίηση
- Βελτιστοποίηση
- τάξη
- πρωτότυπο
- ΑΛΛΑ
- ύπαιθρο
- φόρμες
- δική
- παράθυρο
- μέρος
- μονοπάτι
- πρότυπα
- εκτελέσει
- επίδοση
- φυσικός
- σχεδιασμό
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- παιχνίδι
- συνδέω
- σημεία
- Δημοφιλής
- δυνατός
- Θέση
- τροφοδοτείται
- προαπαιτούμενα
- διαδικασίες
- διαδικασια μας
- μεταποίηση
- παράγει
- ιδιότητες
- περιουσία
- παρέχουν
- παρέχει
- χορήγηση
- πρόβλεψη
- σειρά
- Ακατέργαστος
- ακατέργαστα δεδομένα
- Διάβασε
- Ανάγνωση
- πραγματικός
- πρόσφατα
- συνιστάται
- αρχεία
- αντανακλούν
- περιοχή
- μητρώα
- τακτικός
- απελευθερώνουν
- κυκλοφόρησε
- υπόλοιπα
- απαιτείται
- Απαιτεί
- Υποστηρικτικό υλικό
- αποτέλεσμα
- Αποτελέσματα
- Κριτικές
- Πλούσιος
- Ρόλος
- ρίζα
- τρέξιμο
- τρέξιμο
- ίδιο
- σάρωση
- δευτερόλεπτα
- Τμήμα
- ασφάλεια
- επιλέγονται
- επιλογή
- Χωρίς διακομιστή
- υπηρεσία
- Υπηρεσίες
- Συνεδρίαση
- σειρά
- Σέτς
- τον καθορισμό
- ρυθμίσεις
- θα πρέπει να
- δείχνουν
- Δείχνει
- Απλούς
- καταστάσεων
- Μέγεθος
- επιβραδύνει
- small
- Στιγμιότυπο
- So
- λογισμικό
- λύση
- Λύσεις
- μερικοί
- Σπινθήρας
- συγκεκριμένες
- ταχύτητα
- Δαπάνες
- SQL
- Ξεκινήστε
- Κατάσταση
- Δήλωση
- δηλώσεις
- stats
- Βήμα
- Βήματα
- Ακόμη
- χώρος στο δίσκο
- κατάστημα
- αποθηκεύονται
- καταστήματα
- στρατηγικές
- Στρατηγική
- δομημένος
- δομημένα και μη δομημένα δεδομένα
- στούντιο
- υποδίκτυο
- μεταγενέστερος
- Επιτυχώς
- τέτοιος
- επαρκής
- ΠΕΡΙΛΗΨΗ
- υποστήριξη
- υποστηριζόνται!
- Στήριξη
- Υποστηρίζει
- τραπέζι
- παίρνει
- λήψη
- στόχος
- εργασίες
- τεχνικές
- τένις
- δοκιμή
- Δοκιμές
- δοκιμές
- Η
- οι πληροφορίες
- Το κράτος
- τους
- εκ τούτου
- χιλιάδες
- τρία
- Μέσω
- ώρα
- ταξίδι στο χρόνο
- προς την
- μαζι
- πολύ
- εργαλεία
- κορυφή
- Σύνολο
- τροχιά
- Συναλλαγές
- μετασχηματίζοντας
- ταξίδι
- Ταξίδια
- ΣΤΡΟΦΗ
- τύποι
- υπό
- μοναδικός
- Ενημέρωση
- ενημερώθηκε
- ενημερώσεις
- ενημέρωση
- URL
- χρήση
- περίπτωση χρήσης
- Χρήστες
- συνήθως
- VAL
- αξία
- Αξίες
- επαληθεύει
- εκδοχή
- περπάτησε
- περιδιάβαση
- Αποθήκη
- ρολόγια
- τρόπους
- ιστός
- διαδικτυακές υπηρεσίες
- Τι
- αν
- Ποιό
- ενώ
- ευρύς
- Ευρύ φάσμα
- θα
- χωρίς
- Εργασία
- εργαζόμενος
- λειτουργεί
- θα
- γράφω
- γραφή
- Σας
- zephyrnet