TuBrief
구독 채널
비디오
커뮤니티

ماذا تفعل إذا توقف تحليل البيانات بسبب نقص ذاكرة Pandas

TuBrief 편집팀
2026년 7월 13일
0
Computing/Software

원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.

العربية한국어EnglishEspañol中文DeutschFrançaisPortuguêsहिन्दीРусскийBahasa Indonesia日本語

관련 영상

قاعدة بيانات DuckDB أصبحت لا تُقهر...6:04

قاعدة بيانات DuckDB أصبحت لا تُقهر...

Better Stack

커뮤니티의 다른 글

사내 시스템에 llm api 붙일 때 마주하는 현실적인 한계와 대응법

2026년 9월 13일

레거시 백엔드에 GPT-6 Astra 붙일 때 예산 승인과 보안 통과를 먼저 끝내는 법이 있습니다

2026년 9월 13일

에이전트끼리 대화하다 6천만 원 청구서가 나오는 이유

2026년 9월 13일

사내 RAG 벡터 검색에 Okta 권한 필터를 직접 거는 방법

2026년 9월 13일

브라우저 에이전트에게 내 구글 계정을 통째로 넘기면 안 되는 이유

2026년 9월 12일

Apple Won the AI Race

2026년 9월 12일

댓글 (0)

Log in to leave a comment

아직 작성된 글이 없습니다

© 2026 . All rights reserved.

TuBrief
구독 채널
비디오
커뮤니티
로그인

ماذا تفعل إذا توقف تحليل البيانات بسبب نقص ذاكرة Pandas

لا تقم بتحميل البيانات بالكامل في ذاكرة الوصول العشوائي (RAM)

تقوم مكتبة Pandas بتحميل البيانات في الذاكرة دفعة واحدة. وهذا هو السبب في أن بايثون تنهار (تتعرض لخطأ الذاكرة) عند محاولة فتح ملف CSV بحجم 20 جيجابايت على جهاز كمبيوتر محمول بذاكرة 16 جيجابايت. بمجرد أن تصبح البيانات كبيرة قليلاً، يتوقف الكمبيوتر المحمول عن الاستجابة ويموت نواة Jupyter Notebook. لا يمكنك أخذ عينات من البيانات أو ترقية جهاز الكمبيوتر الخاص بك في كل مرة.

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

تحويل كود Pandas إلى 3 خطوات

تغيير بيئة تحليل البيانات أبسط مما تعتقد. ما عليك سوى الاحتفاظ بإطار بيانات Pandas الذي كنت تستخدمه واستبدال المحرك فقط.

  1. تجهيز البيانات: بدلاً من قراءة الملف باستخدام Pandas، اجعل DuckDB يشير إلى هذا المسار.
  2. تنفيذ الاستعلام: اكتب الشروط والتجميعات المطلوبة باستخدام دالة duckdb.sql(). لن تتم العمليات الحسابية الفعلية بعد.
  3. استخراج النتائج: يتم إجراء العملية الحسابية الفعلية فقط عند استدعاء .df() في النهاية.

هذه الطريقة توفر كفاءة تتجاوز مجرد تغيير الكود. فالعمليات التي كانت تتسبب في انهيار الذاكرة عند استخدام groupby في Pandas، تعمل الآن بشكل مستقر في DuckDB باستخدام القرص الصلب.

منع توقف التحليل بوضع حد 4 جيجابايت

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

أضف الكود التالي في أعلى النص البرمجي:

`python
import duckdb
con = duckdb.connect()
con.execute("SET memory_limit = '4GB'")
con.execute("SET temp_directory = './tmp'")

`

memory_limit هو الحد الذي يحدد مقدار الذاكرة التي سيستخدمها DuckDB. إذا قمت بضبطه على 4 جيجابايت، فلن يتجمد النظام بالكامل حتى على جهاز كمبيوتر محمول بذاكرة 16 جيجابايت. إذا لم تكن الذاكرة كافية، يقوم DuckDB تلقائياً بكتابة البيانات في ملفات مؤقتة على القرص. وفقاً لاختبارات الأداء لعام 2023، تمكن DuckDB من معالجة ملف Parquet بحجم 140 جيجابايت باستخدام 1.3 جيجابايت فقط من الذاكرة. وهو عمل كان سيشغل عشرات الجيجابايت من الذاكرة في Pandas وينتهي به المطاف بالانهيار.

التعامل مع البيانات الخاطئة

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

قم بتفعيل الخيارات التالية عند استخدام دالة read_csv:

`python
con.execute("""
SELECT * FROM read_csv('data.csv',
columns={'id': 'INTEGER', 'value': 'DOUBLE'},
store_rejects=true,
strict_mode=false)
""")

`

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

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