هذا المشروع عبارة عن زاحف ويب ومحرك بحث لمجموعات البيانات، وهو مخصص خصيصًا لمهام زيادة البيانات في التعلم الآلي. إنه قادر على العثور على مجموعات البيانات في مستودعات مختلفة وفهرستها لاسترجاعها لاحقًا.
الوثائق متاحة هنا
وهي مقسمة إلى مكونات متعددة:
datamart_geo
. يحتوي هذا على بيانات حول المناطق الإدارية المستخرجة من ويكي بيانات وOpenStreetMap. إنه يعيش في مستودعه الخاص ويستخدم هنا كوحدة فرعية.datamart_profiler
. يمكن للعملاء تثبيت هذا، وسيسمح لمكتبة العميل بملف تعريف مجموعات البيانات محليًا بدلاً من إرسالها إلى الخادم. يتم استخدامه أيضًا بواسطة خدمات apiserver وملفات التعريف.datamart_materialize
. يُستخدم هذا لتجسيد مجموعة البيانات من المصادر المختلفة التي يدعمها Auctus. يمكن للعملاء تثبيته، مما سيسمح لهم بإنشاء مجموعات البيانات محليًا بدلاً من استخدام الخادم كوكيل.datamart_augmentation
. يؤدي هذا إلى ربط أو توحيد مجموعتي بيانات ويتم استخدامه بواسطة خدمة apiserver، ولكن من الممكن استخدامه بشكل مستقل.datamart_core
. يحتوي هذا على رمز مشترك للخدمات. يستخدم فقط لمكونات الخادم. رمز قفل نظام الملفات منفصل كـ datamart_fslock
لأسباب تتعلق بالأداء (يجب استيراده بسرعة).يتم استخدام Elasticsearch كفهرس بحث، حيث يتم تخزين مستند واحد لكل مجموعة بيانات معروفة.
تقوم الخدمات بتبادل الرسائل من خلال RabbitMQ
، مما يتيح لنا الحصول على أنماط مراسلة معقدة مع دلالات الانتظار وإعادة المحاولة، وأنماط معقدة مثل الاستعلام عند الطلب.
النظام يعمل حاليًا على https://auctus.vida-nyu.org/. يمكنك رؤية حالة النظام على https://grafana.auctus.vida-nyu.org/.
لنشر النظام محليًا باستخدام docker-compose، اتبع الخطوات التالية:
تأكد من قيامك بفحص الوحدة الفرعية باستخدام git submodule init && git submodule update
تأكد من تثبيت Git LFS وتكوينه ( git lfs install
)
انسخ env.default إلى .env وقم بتحديث المتغيرات هناك. قد ترغب في تحديث كلمة المرور لنشر الإنتاج.
تأكد من إعداد العقدة الخاصة بك لتشغيل Elasticsearch. من المحتمل أن تضطر إلى رفع حد mmap.
API_URL
هو عنوان URL الذي ستكون حاويات خادم API مرئية للعملاء. في عملية نشر الإنتاج، من المحتمل أن يكون هذا هو عنوان URL لـ HTTPS الذي يواجه الجمهور. يمكن أن يكون نفس عنوان URL الذي سيتم عرض مكون "المنسق" عليه في حالة استخدام وكيل عكسي (راجع nginx.conf).
لتشغيل البرامج النصية محليًا، يمكنك تحميل متغيرات البيئة في الصدفة الخاصة بك عن طريق تشغيل: . scripts/load_env.sh
(هذه نصوص برمجية ذات مساحة نقطية... )
قم بتشغيل scripts/setup.sh
لتهيئة وحدات تخزين البيانات. سيؤدي هذا إلى تعيين الأذونات الصحيحة على volumes/
الدلائل الفرعية.
إذا أردت البدء من الصفر، يمكنك حذف volumes/
ولكن تأكد من تشغيل scripts/setup.sh
مرة أخرى بعد ذلك لتعيين الأذونات.
$ docker-compose build --build-arg version=$(git describe) apiserver
$ docker-compose up -d elasticsearch rabbitmq redis minio lazo
سيستغرق ذلك بضع ثوانٍ للتشغيل. ثم يمكنك البدء بالمكونات الأخرى:
$ docker-compose up -d cache-cleaner coordinator profiler apiserver apilb frontend
يمكنك استخدام خيار --scale
لبدء المزيد من حاويات ملفات التعريف أو خادم API، على سبيل المثال:
$ docker-compose up -d --scale profiler=4 --scale apiserver=8 cache-cleaner coordinator profiler apiserver apilb frontend
الموانئ:
$ scripts/docker_import_snapshot.sh
سيؤدي هذا إلى تنزيل ملف Elasticsearch من auctus.vida-nyu.org واستيراده إلى حاوية Elasticsearch المحلية لديك.
$ docker-compose up -d socrata zenodo
$ docker-compose up -d elasticsearch_exporter prometheus grafana
تم تكوين Prometheus للعثور تلقائيًا على الحاويات (انظر prometheus.yml)
يتم استخدام صورة RabbitMQ مخصصة، مع المكونات الإضافية المضافة (الإدارة وبروميثيوس).