Proyek ini adalah perayap web dan mesin pencari untuk kumpulan data, yang secara khusus dimaksudkan untuk tugas augmentasi data dalam pembelajaran mesin. Ia dapat menemukan kumpulan data di repositori berbeda dan mengindeksnya untuk diambil nanti.
Dokumentasi tersedia di sini
Ini dibagi menjadi beberapa komponen:
datamart_geo
. Ini berisi data tentang wilayah administratif yang diambil dari Wikidata dan OpenStreetMap. Ia tinggal di repositorinya sendiri dan digunakan di sini sebagai submodul.datamart_profiler
. Ini dapat diinstal oleh klien, akan memungkinkan perpustakaan klien untuk membuat profil kumpulan data secara lokal alih-alih mengirimkannya ke server. Ini juga digunakan oleh layanan apiserver dan profiler.datamart_materialize
. Ini digunakan untuk mewujudkan kumpulan data dari berbagai sumber yang didukung Auctus. Ini dapat diinstal oleh klien, yang memungkinkan mereka mewujudkan kumpulan data secara lokal alih-alih menggunakan server sebagai proxy.datamart_augmentation
. Ini melakukan penggabungan atau penggabungan dua kumpulan data dan digunakan oleh layanan apiserver, namun dapat digunakan secara mandiri.datamart_core
. Ini berisi kode umum untuk layanan. Hanya digunakan untuk komponen server. Kode penguncian sistem file terpisah sebagai datamart_fslock
untuk alasan kinerja (harus diimpor dengan cepat).Elasticsearch digunakan sebagai indeks pencarian, menyimpan satu dokumen per kumpulan data yang diketahui.
Layanan bertukar pesan melalui RabbitMQ
, memungkinkan kami memiliki pola pesan yang kompleks dengan semantik antrian dan percobaan ulang, serta pola kompleks seperti kueri sesuai permintaan.
Sistem saat ini berjalan di https://auctus.vida-nyu.org/. Anda dapat melihat status sistem di https://grafana.auctus.vida-nyu.org/.
Untuk menerapkan sistem secara lokal menggunakan docker-compose, ikuti langkah berikut:
Pastikan Anda telah memeriksa submodul dengan git submodule init && git submodule update
Pastikan Anda telah menginstal dan mengkonfigurasi Git LFS ( git lfs install
)
Salin env.default ke .env dan perbarui variabel di sana. Anda mungkin ingin memperbarui kata sandi untuk penerapan produksi.
Pastikan node Anda sudah diatur untuk menjalankan Elasticsearch. Anda mungkin harus menaikkan batas mmap.
API_URL
adalah URL tempat kontainer apiserver akan terlihat oleh klien. Dalam penerapan produksi, ini mungkin merupakan URL HTTPS yang dapat dilihat publik. Ini bisa berupa URL yang sama dengan tempat komponen "koordinator" akan disajikan jika menggunakan proxy terbalik (lihat nginx.conf).
Untuk menjalankan skrip secara lokal, Anda dapat memuat variabel lingkungan ke dalam shell Anda dengan menjalankan: . scripts/load_env.sh
(itu skrip ruang titik... )
Jalankan scripts/setup.sh
untuk menginisialisasi volume data. Ini akan mengatur izin yang benar pada volumes/
subdirektori.
Jika Anda ingin memulai dari awal, Anda dapat menghapus volumes/
tetapi pastikan untuk menjalankan scripts/setup.sh
lagi setelahnya untuk mengatur izin.
$ docker-compose build --build-arg version=$(git describe) apiserver
$ docker-compose up -d elasticsearch rabbitmq redis minio lazo
Ini akan memakan waktu beberapa detik untuk aktif dan berjalan. Kemudian Anda dapat memulai komponen lainnya:
$ docker-compose up -d cache-cleaner coordinator profiler apiserver apilb frontend
Anda dapat menggunakan opsi --scale
untuk memulai lebih banyak container profiler atau apiserver, misalnya:
$ docker-compose up -d --scale profiler=4 --scale apiserver=8 cache-cleaner coordinator profiler apiserver apilb frontend
Pelabuhan:
$ scripts/docker_import_snapshot.sh
Ini akan mengunduh dump Elasticsearch dari auctus.vida-nyu.org dan mengimpornya ke kontainer Elasticsearch lokal Anda.
$ docker-compose up -d socrata zenodo
$ docker-compose up -d elasticsearch_exporter prometheus grafana
Prometheus dikonfigurasi untuk menemukan wadah secara otomatis (lihat prometheus.yml)
Gambar RabbitMQ khusus digunakan, dengan plugin tambahan (manajemen dan prometheus).