كيفية تحويل ملفات CSV و Log إلى تنسيق عمودي

جدول المحتويات:

كيفية تحويل ملفات CSV و Log إلى تنسيق عمودي
كيفية تحويل ملفات CSV و Log إلى تنسيق عمودي
Anonim

تنسيقات Columnar ، مثل Apache Parquet ، توفر توفيرًا كبيرًا في الضغط كما أنها أسهل بكثير في المسح والمعالجة والتحليل من التنسيقات الأخرى مثل CSV. في هذه المقالة ، نوضح لك كيفية تحويل بيانات CSV إلى باركيه باستخدام AWS Glue.

ما هو التنسيق العمودي؟

ملفات CSV ، وملفات السجل ، وأي ملف آخر محدد بأحرف ، كلها تخزن البيانات بشكل فعال في أعمدة. يحتوي كل صف بيانات على عدد معين من الأعمدة مفصولة بالمُحدد ، مثل الفواصل أو المسافات. لكن تحت الغطاء ، لا تزال هذه التنسيقات مجرد خطوط من الأوتار.لا توجد طريقة سهلة لمسح عمود واحد فقط من ملف CSV.

يمكن أن يكون هذا مشكلة في خدمات مثل AWS Athena ، التي يمكنها تشغيل استعلامات SQL على البيانات المخزنة في CSV والملفات المحددة الأخرى. حتى إذا كنت تستفسر عن عمود واحد فقط ، يتعين على Athena فحص محتويات الملف بالكامل. رسوم أثينا الوحيدة هي غيغابايت من البيانات التي تتم معالجتها ، لذا فإن تشغيل الفاتورة من خلال معالجة البيانات غير الضرورية ليس أفضل فكرة.

الحل هو تنسيق عمودي حقيقي. تخزن التنسيقات العمودية البيانات في أعمدة ، مثل قاعدة البيانات العلائقية التقليدية. يتم تخزين الأعمدة معًا ، وتكون البيانات أكثر تجانسًا ، مما يسهل ضغطها. إنها ليست قابلة للقراءة تمامًا من قبل الإنسان ، ولكن يتم فهمها من خلال معالجة التطبيق لها بشكل جيد. في الواقع ، نظرًا لوجود بيانات أقل لفحصها ، فإن معالجتها أسهل بكثير.

نظرًا لأن أثينا عليها فقط مسح عمود واحد لإجراء تحديد حسب العمود ، فإنها تقلل التكاليف بشكل كبير ، خاصة بالنسبة لمجموعات البيانات الأكبر. إذا كان لديك 10 أعمدة في كل ملف وقمت بمسح واحد فقط ، فهذا يوفر 90٪ من التكاليف بمجرد التبديل إلى الباركيه.

التحويل تلقائيًا باستخدام AWS Glue

AWS Glue هي أداة من Amazon تقوم بتحويل مجموعات البيانات بين التنسيقات. يتم استخدامه بشكل أساسي كجزء من خط أنابيب لمعالجة البيانات المخزنة بتنسيقات محددة وتنسيقات أخرى ، ويحقنها في قواعد البيانات لاستخدامها في أثينا. بينما يمكن إعداده ليكون تلقائيًا ، يمكنك أيضًا تشغيله يدويًا أيضًا ، ومع قليل من التغيير والتبديل ، يمكن استخدامه لتحويل ملفات CSV إلى تنسيق Parquet.

توجه إلى AWS Glue Console وحدد "البدء". من الشريط الجانبي ، انقر على "إضافة الزاحف" وأنشئ زاحفًا جديدًا. تم تكوين الزاحف للبحث عن البيانات من S3 Buckets ، واستيراد البيانات إلى قاعدة بيانات لاستخدامها في التحويل.

إنشاء الزاحف
إنشاء الزاحف

امنح الزاحف اسمًا ، واختر استيراد البيانات من مخزن البيانات. حدد S3 (على الرغم من أن DynamoDB هو خيار آخر) ، وأدخل المسار إلى مجلد يحتوي على ملفاتك. إذا كان لديك ملف واحد فقط تريد تحويله ، فضعه في مجلده الخاص.

اختيار مخزن البيانات لاستيراد البيانات إلى الزاحف الخاص بك
اختيار مخزن البيانات لاستيراد البيانات إلى الزاحف الخاص بك

بعد ذلك ، يُطلب منك إنشاء دور IAM ليعمل الزاحف. أنشئ الدور ، ثم اختره من القائمة. قد تضطر إلى الضغط على زر التحديث بجواره حتى يظهر.

اختيار ودور IAM للزاحف الخاص بك
اختيار ودور IAM للزاحف الخاص بك

اختر قاعدة بيانات للزاحف لإخراجها ؛ إذا كنت قد استخدمت Athena من قبل ، فيمكنك استخدام قاعدة البيانات المخصصة الخاصة بك ، ولكن إذا لم تكن القاعدة الافتراضية ستعمل بشكل جيد.

تكوين قاعدة بيانات مخرجات الزاحف
تكوين قاعدة بيانات مخرجات الزاحف

إذا كنت ترغب في أتمتة العملية ، يمكنك إعطاء الزاحف الخاص بك جدولاً زمنيًا بحيث يعمل بشكل منتظم. إذا لم يكن كذلك ، اختر الوضع اليدوي وقم بتنفيذه بنفسك من وحدة التحكم.

بمجرد إنشائه ، انطلق وقم بتشغيل الزاحف لاستيراد البيانات إلى قاعدة البيانات التي اخترتها. إذا نجح كل شيء ، يجب أن ترى ملفك مستوردًا بالمخطط المناسب. يتم تعيين أنواع البيانات لكل عمود تلقائيًا بناءً على إدخال المصدر.

الملفات المستوردة بالمخطط الصحيح
الملفات المستوردة بالمخطط الصحيح

بمجرد أن تكون بياناتك في نظام AWS ، يمكنك تحويلها. من Glue Console ، انتقل إلى علامة التبويب "الوظائف" ، وأنشئ وظيفة جديدة. أعطه اسمًا ، وأضف دور IAM الخاص بك ، وحدد "A Proposed Script Generated By AWS Glue" على أنه ما يتم تشغيله.

قم بتسمية وظيفتك الجديدة ، وأضف دور IAM ، وحدد نصًا مقترحًا تم إنشاؤه بواسطة AWS Glue
قم بتسمية وظيفتك الجديدة ، وأضف دور IAM ، وحدد نصًا مقترحًا تم إنشاؤه بواسطة AWS Glue

حدد الجدول الخاص بك في الشاشة التالية ، ثم اختر "تغيير المخطط" لتحديد أن هذه الوظيفة تؤدي إلى تحويل.

اختر تغيير المخطط لتحديد أن وظيفتك تقوم بإجراء تحويل
اختر تغيير المخطط لتحديد أن وظيفتك تقوم بإجراء تحويل

بعد ذلك ، عليك تحديد "إنشاء جداول في هدف بياناتك" ، وتحديد باركيه كتنسيق ، وإدخال مسار هدف جديد. تأكد من أن هذا الموقع فارغ دون أي ملفات أخرى.

اختر هدف بيانات عن طريق تحديد إنشاء جداول في هدف البيانات الخاص بك ، وتحديد باركيه كتنسيق ، وإدخال مسار هدف جديد
اختر هدف بيانات عن طريق تحديد إنشاء جداول في هدف البيانات الخاص بك ، وتحديد باركيه كتنسيق ، وإدخال مسار هدف جديد

بعد ذلك ، يمكنك تعديل مخطط ملفك. هذا الإعداد الافتراضي هو تعيين واحد لواحد لأعمدة CSV إلى أعمدة باركيه ، وهو ما تريده على الأرجح ، ولكن يمكنك تعديله إذا احتجت إلى ذلك.

تحرير مخطط ملفك
تحرير مخطط ملفك

قم بإنشاء الوظيفة ، وسيتم نقلك إلى صفحة تمكنك من تحرير نص Python النصي الذي يتم تشغيله. يجب أن يعمل النص الافتراضي بشكل جيد ، لذا اضغط على "حفظ" واخرج مرة أخرى إلى علامة التبويب "الوظائف".

في اختبارنا ، فشل النص دائمًا ما لم يُمنح دور IAM إذنًا محددًا للكتابة إلى الموقع الذي حددنا الإخراج للانتقال إليه. قد تضطر إلى تعديل الأذونات يدويًا من وحدة تحكم إدارة IAM إذا واجهت نفس المشكلة.

وإلا ، فانقر فوق "تشغيل" وسيبدأ البرنامج النصي الخاص بك. قد تستغرق المعالجة دقيقة أو دقيقتين ، ولكن من المفترض أن ترى الحالة في لوحة المعلومات. عند الانتهاء ، سترى ملفًا جديدًا تم إنشاؤه في S3.

يمكن تكوين هذه الوظيفة لتشغيل المشغلات التي حددها الزاحف الذي يستورد البيانات ، وبالتالي يمكن أتمتة العملية برمتها من البداية إلى النهاية. إذا كنت تستورد سجلات الخادم إلى S3 بهذه الطريقة ، فقد تكون هذه طريقة سهلة لتحويلها إلى تنسيق أكثر قابلية للاستخدام.

موضوع شعبي