قم ببناء منصة تحليل بيانات باستخدام Flask و SQL و Redis

في هذه المقالة، سأقوم بشرح تطوير تطبيق ويب قائم على Flask الذي يتفاعل مع قاعدة بيانات SQL Server لتحليل بيانات السكان. يسمح التطبيق للمستخدمين باستعلام نطاقات السكان، واسترجاع المقاطعات حسب الولاية، واسترداد الولايات ضمن نطاقات السكان المحددة. كما سأناقش كيفية دمج Redis لتخزين نتائج الاستعلام بغرض تحسين الأداء.

لماذا Flask، SQL Server، وRedis؟

Flask هو إطار عمل ويب بسيط ومرن مكتوب بلغة Python مثالي لبناء تطبيقات ويب صغيرة إلى متوسطة الحجم. يوفر الأدوات اللازمة لإنشاء واجهات برمجة تطبيقات RESTful، وتقديم قوالب HTML ديناميكية، والتفاعل مع قواعد البيانات. من ناحية أخرى، SQL Server هو نظام إدارة قواعد بيانات علاقية قوي يُستخدم على نطاق واسع في تطبيقات الشركات. يسمح دمج Flask مع SQL Server لنا ببناء تطبيق قوي لتحليل البيانات والتصوير.

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

نظرة عامة على التطبيق

يقوم تطبيق Flask الخاص بنا بأداء المهام التالية:

  1. نطاقات تعداد السكان. يمكن للمستخدمين تحديد عام ونطاق سكاني للحصول على عدد الولايات التي تقع ضمن تلك النطاقات.
  2. احصل على المقاطعات حسب الولاية. يمكن للمستخدمين إدخال رمز ولاية لاسترداد قائمة بالمقاطعات.
  3. استرداد الولايات حسب نطاق السكان. يمكن للمستخدمين تحديد نطاق سكاني وعام للحصول على قائمة بالولايات ضمن تلك النطاق.
  4. ملاحظة. للقيام بالاختبار، لا تتردد في إنشاء بنية البيانات الخاصة بك في قاعدة البيانات وإدراج بيانات عينية حسب الحاجة استنادًا إلى واجهات برمجة التطبيقات المشتركة التالية باستخدام استعلامات SQL. أيضًا، يمكن أن تكون صفحات HTML المستخدمة هنا تصميم جداول أساسي يلتقط البيانات المُرجعة من كود تطبيق Flask ويعرض النتائج.

لنتعمق في تفاصيل التنفيذ.

إعداد تطبيق Flask

1. المتطلبات الأساسية

قبل البدء، تأكد من أنك قمت بتثبيت ما يلي من خلال جذر الطرفية الخاص بك (الأوامر متوافقة مع MacOS):

  • Python 3.x 
  • Flask (pip install flask)
  • SQLAlchemy (pip install sqlalchemy)
  • PyODBC (pip install pyodbc)
  • Redis (pip install redis

2. اتصال بقاعدة البيانات

نستخدم SQLAlchemy للاتصال بقاعدة بيانات خادم SQL. وفيما يلي كيفية تكوين الاتصال:

Python

 

يستخدم سلسلة الاتصال هذه سائق ODBC لخادم SQL وتتضمن معلمات للتشفير والمهلة.

3. تكوين Redis

يُستخدم Redis لتخزين نتائج الاستعلام. إليك كيفية إعداد اتصال Redis:

Python

 

4. تنفيذ مسارات التطبيق

مسار الصفحة الرئيسية

يقوم مسار الصفحة الرئيسية بعرض الصفحة الرئيسية للتطبيق:

Python

 

استعلام نطاق السكان بتخزين Redis

يتعامل هذا المسار مع الاستعلامات بنطاقات السكان. يتحقق أولاً مما إذا كانت النتيجة مخزنة في Redis. إذا لم يكن كذلك، يقوم بالاستعلام عن قاعدة البيانات ويخزن النتيجة للاستخدام المستقبلي:

Python

 

احضار المقاطعات حسب رمز الولاية مع تخزين Redis

يقوم هذا المسار بجلب المقاطعات بالنسبة لرمز الولاية المعطى. كما يستخدم Redis لتخزين النتائج:

Python

 

استرداد الولايات حسب نطاق السكان مع تخزين Redis

يقوم هذا المسار بجلب الولايات ضمن نطاق سكان محدد ويخزن النتائج:

Python

 

مقارنة الأداء: SQL Server مقابل Redis

Query Type Redis Fetch Time SQL Execution Time
استعلام نطاق السكان (مخزن) 0.002 ثانية 0.000 ثانية
استعلام نطاق السكان (جديد) 0.002 ثانية 1.342 ثانية

النقطة الرئيسية: يقلل Redis من وقت التنفيذ من حوالي 1.3 ثانية إلى حوالي 0.002 ثانية، مما يجعل الاستعلامات 650 مرة أسرع!

كيف تعزز Redis الأداء

Redis هو متجر بيانات في الذاكرة يعمل كطبقة تخزين مؤقت بين التطبيق وقاعدة البيانات. إليك كيف يعمل في تطبيقنا:

  • مفتاح التخزين المؤقت. يتم إنشاء مفتاح فريد لكل استعلام استنادًا إلى معلماته.
  • فحص التخزين المؤقت. قبل تنفيذ استعلام قاعدة البيانات، يقوم التطبيق بالتحقق مما إذا كانت النتيجة قد تم تخزينها بالفعل في Redis.
  • العثور على التخزين المؤقت. إذا تم العثور على النتيجة في Redis، يتم إرجاعها على الفور، مما يجنب استعلام قاعدة البيانات.
  • عدم العثور على التخزين المؤقت. إذا لم يتم العثور على النتيجة، يتم تنفيذ الاستعلام، وتتم تخزين النتيجة في Redis للاستخدام المستقبلي.
  • انتهاء صلاحية التخزين المؤقت. يتم تعيين انتهاء صلاحية النتائج المخزنة بعد وقت محدد (على سبيل المثال، ساعة واحدة) لضمان نضارة البيانات.

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

الاستنتاج

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

الرابط: يمكن العثور على رمز المصدر لهذا التطبيق الكامل على GitHub.

Source:
https://dzone.com/articles/build-data-analytics-platform-flask-sql-redis