UDD (Ultimate Debian Database, Велика база даних Debian) об'єднує дані з різних аспектів Debian в одну єдину базу даних SQL. Це дозволяє легко отримувати доступ та комбінувати всі ці дані.
Наразі імпортовано дані про: пакунки та файли вихідного коду від Debian та Ubuntu, помилки з Debian BTS, рейтинг популярності пакунків, історію відвантажень, історію перенесення в testing, Lintian, "осиротілі" пакунки, Carnivore, Debtags, помилки Ubuntu (з Launchpad), нові пакунки в черзі, переклади DDTP.
Деякі приклади запитів представлені як скрипти CGI, щоб кожен міг легко їх запускати. Ви можете переглянути їх тут або подивитися вихідний код.
Схема бази даних: https://udd.debian.org/schema/udd.html
Вихідний код: доступний в git-репозиторії проєкту qa на https://salsa.debian.org/qa/udd
Сервер бази даних: працює на postgres з piperl та postgresql-debversion
- Пов'язані з UDD сервіси:
Пошук помилок: багатокритерний рушій для пошуку помилок
Користувацькі мітки помилок: пошук користувацьких міток серед помилок
Спонсорська статистика наводить деякі статистичні дані про те, хто спонсорує завантаження в Debian
Bapase дозволяє шукати "цікаві" пакунки за різними критеріями
публічне дзеркало UDD дозволяє будь-кому надсилати запити до UDD використовуючи командний рядок PostgreSQL або графічні клієнти
Для отримання детальнішої інформації, будь ласка, зв'яжіться з нами через #debian-qa або debian-qa@lists.debian.org (підписка та архіви поштової розсилки)).
Під'єднання та використання UDD
udd.debian.org працює на ullmann.debian.org. Сервер приймає прямі SSL-з'єднання від master, coccia, quantz (qa) та respighi (release) (налаштування фаєрвола).
- з командного рядка:
psql service=udd
або: psql -U guest -h udd.debian.org -p 5452 udd
Python:
import psycopg2 conn = psycopg2.connect("service=udd") cursor = conn.cursor() cursor.execute("SELECT count(*) from sources where release='sid'") print(cursor.fetchall()[0][0])
Ruby (DBI): require 'dbi' ; dbh = DBI::connect('DBI:Pg:dbname=udd;port=5452;host=udd.debian.org', 'guest')
Ruby (PG): require 'pg'; conn = PG.connect({:host => 'udd.debian.org', :port => 5452, :user => 'guest', :dbname => 'udd'})
Якщо ви хочете точно взнати коли певне джерело даних оновлюється, перевірте файл cronetab. Таблиця timestamps може підказати вам коли востаннє джерело даних було оновлено.
Якщо у вас немає доступу до потрібної машини, можете спробувати під'єднатися до публічного дзеркала UDD напряму зі свого комп'ютера:
з командного рядка:
psql "postgresql://udd-mirror:udd-mirror@udd-mirror.debian.net/udd"
Для швидкої довідки користуйтеся схемою бази даних на https://udd.debian.org/schema/udd.html. psql показує таблиці командою \dt. Отримуйте задоволення.
Подяки та цитування UDD
UDD започаткована як проєкт Google Summer of Code авторами: Christian von Essen (Neronus), співнаставником by Lucas Nussbaum, Stefano Zacchiroli та Marc 'HE' Brockschmidt. Зараз вона підтримується в основному Lucas Nussbaum та допомогою інших людей.
Якщо ви використовуєте UDD в дослідницькій роботі, будь ласка, цитуйте цю сторінку:
L. Nussbaum and S. Zacchiroli, "The Ultimate Debian Database: Consolidating bazaar metadata for Quality Assurance and data mining," 2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010), Cape Town, 2010, pp. 52-61, doi: 10.1109/MSR.2010.5463277 (open access preprint).
Покращення UDD
Якщо ви бажаєте допомогти покращити UDD, то можете встановити власний зразок як описано на UltimateDebianDatabase/Hacking. Звітуйте про помилки на адресу псевдо-пакунка qa.debian.org, використовуючи користувацьку мітку (usertag) udd та користувача qa.debian.org@packages.debian.org.
You can report bugs against the qa.debian.org pseudo-package, using the udd usertag and user qa.debian.org@packages.debian.org. (перелік помилок ; або перелік помилок використання UDD)
Інші ресурси
повний дамп бази даних, який ґенерується кожних два дні. (~1.9 ҐБ і зростає, відновлюється через pg_restore. Для прикладу див. цей скрипт)
Див. також :
Посилання
Навіть якщо метою UDD не було служити науково-дослідницьким інструментом, вона була описана в деяких публікаціях та лекціях:
Norbert Preining. Analyzing Debian packages with Neo4j. Neo4j Online Meetup. Article parts 1, 2, 3, video
Lucas Nussbaum and Stefano Zacchiroli. The Ultimate Debian Database: Consolidating Bazaar Metadata for Quality Assurance and Data Mining.7th IEEE Working Conference on Mining Software Repositories (MSR'2010)Стаття - Слайди - HAL
Julius Davies, Hanyu Zhang, Lucas Nussbaum and Daniel M. German.Perspectives on Bugs in the Debian Bug Tracking System 7th IEEE Working Conference on Mining Software Repositories (MSR'2010): Mining Challenge Стаття - Слайди- HAL
Підсторінки