الهندسة في R. الجزء 2: معالجة البيانات باستخدام DPLYR
Posted: Mon Dec 23, 2024 6:48 am
بافيل ليفشوك، مدير التحليلات والنمو
المحتوى
ما هي ترجمة التعليمات البرمجية؟
لقد بدأنا مؤخرًا سلسلة من المقالات حول كيفية تنظيم العمل في R Notebook. اليوم سنواصل الغوص في لغة R ونلقي نظرة على أداة DPLYR، التي تتيح لك معالجة البيانات.
يتم تخزين كمية هائلة من البيانات في قواعد البيانات، ويجب على شخص ما إخراجها من هناك. من الجيد أن يكون لديك شركة كبيرة ومهندسورقم الهاتف التايواني
بيانات يمكنهم التعامل مع هذه المهمة. ولكن غالبًا ما لا يكون هذا هو الحال، ويجب على المحلل الوصول إلى قواعد البيانات بنفسه. في الوقت نفسه، يتم تخزين بعض البيانات في بعض قواعد البيانات، وبعضها في قواعد بيانات أخرى. ماذا نفعل بهذا؟
يمكن حل هذه المهمة بسهولة باستخدام حزمة dplyr، وهي جزء من tidyverse. دعنا نلقي نظرة على مقتطف التعليمات البرمجية:
باستخدام هذا الكود، نقوم بإنشاء اتصال بقاعدة البيانات، ونطلب جدولًا معينًا منها، ونطلب منها إرفاق جداول أخرى. ثم نعطي تعليمات لإجراء عدد من التحويلات: التصفية حسب مجموعة من التواريخ، حسب أعمدة أخرى، والقيام بالتجميع. نكتب هذا في dplyr، الذي يحتوي على dbplyr تحت الغطاء، وبالتالي لا نحتاج إلى ترجمته إلى SQL.
لقد أنشأ RStudio أداة يمكنها العمل مع البيانات الموجودة في الذاكرة وعلى المصادر الخارجية (البرامج الخلفية). يفهم Dplyr أنه إذا قمت بالوصول إلى البيانات الموجودة في الذاكرة، فسوف يقوم بمعالجتها. إذا قمت بالاتصال ببرنامج خلفي ليس من ذاكرة الوصول العشوائي، فلن يتغير الكود بالنسبة لك. أنت تعمل مع نفس dplyr، وفي نفس الوقت، ستحدث لك الترجمة مع مراعاة المعيار المدعوم (MySQL / BigQuery / Postgres / RedShift). هذا يوفر الكثير من المال والوقت: يمكنك التبديل بسرعة من قاعدة بيانات إلى أخرى.
ما هي ترجمة الكود؟
يبدو الأمر كما يلي:
كيف تعمل الترجمة عمليًا؟ نقوم بتشغيل الكود والاتصال بقاعدة بيانات تحتوي على حوالي 1.3 مليار سجل. على الرغم من العدد الهائل من السجلات، يحدث التحميل بسرعة كبيرة. لماذا؟ الإجابة هي التحميل الكسول. لمعرفة كيفية عمل ذلك، يمكننا إجراء تحويلات وحفظها في المتغير visits. سيبدأ هذا في استدعاء استعلام SQL الحقيقي. نتيجة لذلك، نحصل على 1.54 جيجابايت من البيانات، بالإضافة إلى استعلام كسول بعدد غير معروف من الصفوف وثلاثة أعمدة:
المشكلة هي أن dplyr يحاول تجنب الوصول إلى مصدر البيانات لأطول فترة ممكنة. حتى تحتاج بالفعل إلى البيانات، سيجمع كل التحويلات ويخزنها، وعندما تكون هناك حاجة إلى البيانات، سيولد استعلام SQL ويرسله إلى قاعدة البيانات ويحصل على النتيجة. في هذه الحالة، أعطانا كمية صغيرة من البيانات لأننا لم نستدعي الأمر الذي يتطلب حساب كل شيء موجود هناك.
كما نرى، مع dplyr، لست مضطرًا إلى تذكر كل التحويلات التي يجب إجراؤها في SQL دفعة واحدة. إذا لم يكن لديك حق الوصول للكتابة، فإن القيام خطوة بخطوة في SQL أمر صعب للغاية. باستخدام dplyr، يمكنك إنشاء بعض المتغيرات وربطها وإجراء التحويلات، وعندما تكون جاهزًا، يمكنك إصدار الأمر لإخراج البيانات. عندما يكون لديك حوالي 700 سطر من التعليمات البرمجية وترغب في إضافة منطق إضافي، فإن هذا يجعل الأمور أسهل كثيرًا.
اشترك في مدونتنا، في المواد التالية في هذه السلسلة سنخبرك بما يجب استخدامه للوصول إلى قواعد البيانات وكيفية إجراء الحسابات بمثل هذه البيانات الضخمة.
المحتوى
ما هي ترجمة التعليمات البرمجية؟
لقد بدأنا مؤخرًا سلسلة من المقالات حول كيفية تنظيم العمل في R Notebook. اليوم سنواصل الغوص في لغة R ونلقي نظرة على أداة DPLYR، التي تتيح لك معالجة البيانات.
يتم تخزين كمية هائلة من البيانات في قواعد البيانات، ويجب على شخص ما إخراجها من هناك. من الجيد أن يكون لديك شركة كبيرة ومهندسورقم الهاتف التايواني
بيانات يمكنهم التعامل مع هذه المهمة. ولكن غالبًا ما لا يكون هذا هو الحال، ويجب على المحلل الوصول إلى قواعد البيانات بنفسه. في الوقت نفسه، يتم تخزين بعض البيانات في بعض قواعد البيانات، وبعضها في قواعد بيانات أخرى. ماذا نفعل بهذا؟
يمكن حل هذه المهمة بسهولة باستخدام حزمة dplyr، وهي جزء من tidyverse. دعنا نلقي نظرة على مقتطف التعليمات البرمجية:
باستخدام هذا الكود، نقوم بإنشاء اتصال بقاعدة البيانات، ونطلب جدولًا معينًا منها، ونطلب منها إرفاق جداول أخرى. ثم نعطي تعليمات لإجراء عدد من التحويلات: التصفية حسب مجموعة من التواريخ، حسب أعمدة أخرى، والقيام بالتجميع. نكتب هذا في dplyr، الذي يحتوي على dbplyr تحت الغطاء، وبالتالي لا نحتاج إلى ترجمته إلى SQL.
لقد أنشأ RStudio أداة يمكنها العمل مع البيانات الموجودة في الذاكرة وعلى المصادر الخارجية (البرامج الخلفية). يفهم Dplyr أنه إذا قمت بالوصول إلى البيانات الموجودة في الذاكرة، فسوف يقوم بمعالجتها. إذا قمت بالاتصال ببرنامج خلفي ليس من ذاكرة الوصول العشوائي، فلن يتغير الكود بالنسبة لك. أنت تعمل مع نفس dplyr، وفي نفس الوقت، ستحدث لك الترجمة مع مراعاة المعيار المدعوم (MySQL / BigQuery / Postgres / RedShift). هذا يوفر الكثير من المال والوقت: يمكنك التبديل بسرعة من قاعدة بيانات إلى أخرى.
ما هي ترجمة الكود؟
يبدو الأمر كما يلي:
كيف تعمل الترجمة عمليًا؟ نقوم بتشغيل الكود والاتصال بقاعدة بيانات تحتوي على حوالي 1.3 مليار سجل. على الرغم من العدد الهائل من السجلات، يحدث التحميل بسرعة كبيرة. لماذا؟ الإجابة هي التحميل الكسول. لمعرفة كيفية عمل ذلك، يمكننا إجراء تحويلات وحفظها في المتغير visits. سيبدأ هذا في استدعاء استعلام SQL الحقيقي. نتيجة لذلك، نحصل على 1.54 جيجابايت من البيانات، بالإضافة إلى استعلام كسول بعدد غير معروف من الصفوف وثلاثة أعمدة:
المشكلة هي أن dplyr يحاول تجنب الوصول إلى مصدر البيانات لأطول فترة ممكنة. حتى تحتاج بالفعل إلى البيانات، سيجمع كل التحويلات ويخزنها، وعندما تكون هناك حاجة إلى البيانات، سيولد استعلام SQL ويرسله إلى قاعدة البيانات ويحصل على النتيجة. في هذه الحالة، أعطانا كمية صغيرة من البيانات لأننا لم نستدعي الأمر الذي يتطلب حساب كل شيء موجود هناك.
كما نرى، مع dplyr، لست مضطرًا إلى تذكر كل التحويلات التي يجب إجراؤها في SQL دفعة واحدة. إذا لم يكن لديك حق الوصول للكتابة، فإن القيام خطوة بخطوة في SQL أمر صعب للغاية. باستخدام dplyr، يمكنك إنشاء بعض المتغيرات وربطها وإجراء التحويلات، وعندما تكون جاهزًا، يمكنك إصدار الأمر لإخراج البيانات. عندما يكون لديك حوالي 700 سطر من التعليمات البرمجية وترغب في إضافة منطق إضافي، فإن هذا يجعل الأمور أسهل كثيرًا.
اشترك في مدونتنا، في المواد التالية في هذه السلسلة سنخبرك بما يجب استخدامه للوصول إلى قواعد البيانات وكيفية إجراء الحسابات بمثل هذه البيانات الضخمة.