Π‘ΠΏΠΎΠ΄Π΅Π»ΡΠΌ ΠΎΡ Π»ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ ΠΊΠ°ΠΊ, ΠΊΡΠ΄Π΅ ΠΈ ΠΊΠΎΠ³Π° ΠΌΠΈ Π΅ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. ΠΠ±Π·ΠΎΡΠ½ΠΎ ΠΈ ΡΠ΅Π·ΠΈΡΠ½ΠΎ, Π·Π° Π΄Π° Π΅ ΡΡΠ½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈ ΠΊΡΠ΄Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠΏΠ°Π΅ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ β Π½ΠΎ ΡΡΠΊ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π° ΡΡΠ±Π΅ΠΊΡΠΈΠ²Π½ΠΈΡ ΠΌΠΈ Π»ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ, ΠΏΡΠΈ Π²Π°Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΡΡΠ²ΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ.
ΠΠ°ΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΠΌ ΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ? Π Data Science Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° ΡΠΈ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΠΆΠ½ΠΈ Π΅ΡΠ°ΠΏΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΈ Π½Π°ΠΉ-ΠΏΡΡΠ²ΠΈΡΡ ΠΈ Π²Π°ΠΆΠ΅Π½ (Π±Π΅Π· Π½Π΅Π³ΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½ΠΈΡΠΎ!) β ΡΠΎΠ²Π° Π΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠ°ΠΉ-ΡΠ΅ΡΡΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π½ΡΠΊΡΠ΄Π΅ ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ 'ΠΈΠ·Π²Π°Π΄Π°Ρ' ΠΎΡΡΠ°ΠΌ.Β
ΠΠ·ΠΈΡΠΈΡΠ΅ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ! Π Π΄Π½Π΅Ρ ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° Π·Π° Π΅Π·ΠΈΡΠΈΡΠ΅ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΌΠΈ Π±ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΡΠ΄Π΅ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΡΠ½ΠΎ β Π·Π°ΡΠΎ ΡΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅.
Π ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π±Π»ΠΎΠΊΠ° ΡΠΈΠΏΠΎΠ²Π΅ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ:
- βΠ‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈβ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ β ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Ρ, ΠΊΠΎΠ³Π°ΡΠΎ Π³ΠΎΠ²ΠΎΡΡΡ Π·Π° Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠ°ΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±ΡΠ° ΠΈΠ»ΠΈ SQL.
- Π‘ΠΊΡΠΈΠΏΡΠΎΠ²ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Python Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ°ΡΠΎ pandas, numpy ΠΈΠ»ΠΈ shell scripting.
- ΠΠ·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ Π³ΡΠ°ΡΠΎΠ²ΠΈ Π·Π½Π°Π½ΠΈΡ ΠΈ Π³ΡΠ°ΡΠΎΠ²ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
ΠΡΠΈΡΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΡΠΊ Π΅ ΠΏΡΠΎΡΡΠΎ Π»ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΈ Π΅ Π±ΠΈΠ» ΠΏΠΎΠ»Π΅Π·Π΅Π½, Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈ βΠ·Π°ΡΠΎ Π΅ Π±ΠΈΠ»ΠΎ Π½ΡΠΆΠ½ΠΎβ β Π²ΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅ΡΠ΅Π½ΠΈ Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΌΡ ΡΠ΅ ΡΠ»ΡΡΠ°Ρ ΠΈ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈ Π·Π° ΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ, ΠΊΠ°ΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ Ρ ΡΠ΅Π·ΠΈ Π΅Π·ΠΈΡΠΈ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π³ΠΈ ΠΏΡΠΈΠ»Π°Π³Π° (Π² ΡΠΏΠ΅ΡΠ΅Π½ ΠΏΠΎΡΡΠ΄ΡΠΊ) ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠΎ Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ° Π½ΡΠΆΠ½ΠΈ.
βΠ‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈβ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΠΎΠ·ΠΈ ΡΠΌΠΈΡΡΠ», ΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΌΠΈΡΠ»ΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π° ΡΡΡ , ΠΊΠΎΠ³Π°ΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ.
Π Π΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±ΡΠ°
ΠΠ°ΡΠΎ Π΄Π½Π΅Ρ Π΅ Π½ΡΠΆΠ½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±ΡΠ°? ΠΠ° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ Π΄ΠΎΠ±ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π°ΡΠΎ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΠ° ΡΡΡΡΠΎΠ΅Π½ΠΈ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π°ΡΠΈΠ½ ΠΈ ΡΡΠ·Π½Π°ΡΠ΅Π»Π½ΠΎ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅, Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ°, Π½Π° ΠΊΠΎΡΡΠΎ ΡΠ°Π·ΡΠΈΡΠ°Ρ.
ΠΠ°ΠΊΠ²ΠΎ Π΅ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±ΡΠ°?
Π€ΠΎΡΠΌΠ°Π»Π½ΠΎΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΅: ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±ΡΠ° β Π·Π°ΡΠ²ΠΎΡΠ΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠΎ-ΠΏΡΠΎΡΡΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΡΠΎΠ²Π° Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΠ°Π±Π»ΠΈΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΡΡ Π²ΠΈΠ½Π°Π³ΠΈ ΡΡΡΠΎ Π΅ ΡΠ°Π±Π»ΠΈΡΠ°.
ΠΠΈΠΆΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΡΠ°ΡΠΈΡ ΠΎΡ Π₯Π°Π±ΡΠ° β ΡΡΠΊ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π·Π°ΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΠΌ ΠΈ ΠΊΡΠ΄Π΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°.
ΠΠ°ΡΠΎ?
ΠΠ°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ°Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ Π·Π°ΡΠ²ΡΡΠ½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠΎΡΡ Π·Π°Π΄ ΠΈΠ·ΡΠ°Π·ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ β ΡΠ΅ΡΡΠΎ Π΄Π°Π²Π° ΠΏΠΎ-Π΄ΡΠ»Π±ΠΎΠΊΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² Π·Π°ΡΠ²ΡΡΠ½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ.

ΠΠ·Π΅ΡΠΎ ΠΎΡ ΡΡΠ°ΡΠΈΡΡΠ°. ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ: join, ΠΊΠΎΡΡΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π° ΡΠ°Π±Π»ΠΈΡΠΈ.
ΠΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅:
. ΠΡΡΡΠ½ΠΎΡΡ, ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΡΠ΅ ΠΏΠΎ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±ΡΠ° ΠΈ ΡΠ΅ΠΎΡΠΈΡ ΡΠ° ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ β Π‘oursera, Udacity. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΄ΠΎΠ±ΡΠΈ . ΠΠΈΡΠ½ΠΈΡΡ ΠΌΠΈ ΡΡΠ²Π΅Ρ: ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π°Π»Π³Π΅Π±ΡΠ° β ΡΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ°.
SQL

ΠΠ·Π΅ΡΠΎ ΠΎΡ ΡΡΠ°ΡΠΈΡΡΠ°.
SQL Π΅ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π°Π»Π³Π΅Π±ΡΠ° β Ρ Π²Π°ΠΆΠ½Π° ΡΠ³ΠΎΠ²ΠΎΡΠΊΠ°, SQL Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π΅Π½! Π’ΠΎΠ΅ΡΡ, Π·Π°ΠΏΠΈΡΠ²Π°ΠΉΠΊΠΈ Π·Π°ΡΠ²ΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π°Π»Π³Π΅Π±ΡΠ°, Π²ΠΈΠ΅ Π²ΡΡΡΠ½ΠΎΡΡ ΠΊΠ°Π·Π²Π°ΡΠ΅ ΠΊΠ°ΠΊ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠΈΡΠ° β Π° Ρ SQL Π·Π°Π΄Π°Π²Π°ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅, Π° ΠΏΠΎΡΠ»Π΅ Π‘Π£ΠΠ Π³Π΅Π½Π΅ΡΠΈΡΠ° (Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ) ΠΈΠ·ΡΠ°Π·ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π°Π»Π³Π΅Π±ΡΠ° (Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡΠ° ΠΈΠΌ Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΏΠΎΠ΄ ).

ΠΠ·Π΅ΡΠΎ ΠΎΡ ΡΡΠ°ΡΠΈΡΡΠ°.
ΠΠ°ΡΠΎ?
Π Π΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ Π‘Π£ΠΠ: Oracle, Postgres, SQL Server ΠΈ Ρ.Π½. β Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅ ΠΈ Π΅ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΡΠ΅ Ρ ΡΡΡ , ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΅ ΡΡΡΠ±Π²Π° ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ΡΠ΅ΡΠ΅ SQL (ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ), ΠΈΠ»ΠΈ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π° Π½Π΅Π³ΠΎ (ΡΡΡΠΎ Π½Π΅ ΠΌΠ°Π»ΠΊΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ).
ΠΠ°ΠΊΠ²ΠΎ Π΄Π° ΡΠ΅ΡΠ΅ΡΠ΅ ΠΈ ΠΈΠ·ΡΡΠ°Π²Π°ΡΠ΅
ΠΠΎ ΡΡΡΠΈΡΠ΅ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ ΠΏΠΎ-Π³ΠΎΡΠ΅ (Π·Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π°Π»Π³Π΅Π±ΡΠ°) ΠΈΠΌΠ° Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, .
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΊΠ°ΠΊΠ²ΠΎ Π΅ NoSQL?
βΠ’ΡΡΠ±Π²Π° ΠΎΡΠ½ΠΎΠ²ΠΎ Π΄Π° ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π΅ΠΌ, ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ΡΡ βNoSQLβ ΠΈΠΌΠ° Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΠΈΡ ΠΈΠ΅Π½ ΠΏΡΠΎΠΈΠ·Ρ ΠΎΠ΄ ΠΈ Π½ΡΠΌΠ° ΠΎΠ±ΡΠΎΠΏΡΠΈΠ·Π½Π°ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π°ΡΡΠ½Π° ΠΈΠ½ΡΡΠΈΡΡΡΠΈΡ Π·Π°Π΄ Π½Π΅Π³ΠΎ.β Π‘ΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΎΡΠΎ Π½Π° Π₯Π°Π±ΡΠ°.
ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, Ρ ΠΎΡΠ°ΡΠ° ΡΠ°Π·Π±ΡΠ°Ρ Π°, ΡΠ΅ ΠΏΡΠ»Π½Π°ΡΠ° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π΄Π°ΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΅ ΠΊΡΠΈΡΠΈΡΠ½Π° ΠΈ Π΄ΠΎΠΌΠΈΠ½ΠΈΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΡΠΎΡΡΠΈ Π·Π°ΡΠ²ΠΊΠΈ Ρ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ β ΡΠ°ΠΌ Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π±ΡΡΠ·ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ ΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°Ρ Π² Π±Π°Π·Π°ΡΠ°, Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° ΡΠ΅ ΠΎΠΊΠ°Π·Π°Ρ Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π΅Π½ΡΠΆΠ½ΠΈ, Π½ΠΎ ΠΈ Π²ΡΠ΅Π΄Π½ΠΈ β Π·Π°ΡΠΎ Π΄Π° Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π½Π΅ΡΠΎ, Π°ΠΊΠΎ ΡΠΎΠ²Π° ΡΠ΅ Π½Π°Π²ΡΠ΅Π΄ΠΈ Π½Π° Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ Π·Π° Π½Π°Ρ (Π·Π° Π½ΡΠΊΠΎΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ) β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°?
Π§Π΅ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΡΡ Π΅ΠΌΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡ Π΅ΠΌΠΈ Π½Π° ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠ°Π·Π³ΡΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ Π±ΡΡΠ·ΠΎ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ - ΠΈΠ»ΠΈ ΡΡ Π΅ΠΌΠ°ΡΠ° ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π΅ ΡΠ° ΡΠΎΠ»ΠΊΠΎΠ²Π° Π²Π°ΠΆΠ½ΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π΄ΠΎΠΌΠ΅ΠΉΠ½ Π·Π°Π΅Π΄Π½ΠΎ Ρ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ - ΠΌΠΎΠΆΠ΅ΠΌ ΠΈ Π΄Π° Π½Π΅ Π·Π½Π°Π΅ΠΌ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ»Π΅ΡΠ° ΠΈ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ JSON Π·Π° Π²ΡΡΠΊΠ° Π·Π°ΠΏΠΈΡ - ΡΠΎΠ²Π° Π½ΠΈ Π΄Π°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΡΠ²ΠΊΠ°Π²Π° ΡΡΠ΅Π΄Π° Π·Π° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π±ΡΡΠ·ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΡΠ°Π½Π΅ - Π·Π°ΡΠΎΠ²Π° Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ NoSQL ΡΠ΅ Π±ΡΠ΄Π΅ Π΄ΠΎΡΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΎ ΠΈ ΠΏΠΎ-ΠΏΡΠΎΡΠ΅ΡΠ»ΠΈΠ²ΠΎ. ΠΡΠΈΠΌΠ΅Ρ Π·Π° Π·Π°ΠΏΠΈΡ (ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΡΠ΄Π΅ΡΠΎ NoSQL Π±Π΅ΡΠ΅ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΌ, ΠΊΡΠ΄Π΅ΡΠΎ Π΅ Π½ΡΠΆΠ½ΠΎ).
{"en_wikipedia_url":"https://en.wikipedia.org/wiki/Johnny_Cash",
"ru_wikipedia_url":"https://ru.wikipedia.org/wiki/?curid=301643",
"ru_wiki_pagecount":149616,
"entity":[42775,"ΠΠΆΠΎΠ½Π½ΠΈ ΠΡΡ","ru"],
"en_wiki_pagecount":2338861}
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° NoSQL.
ΠΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΈΠ·ΡΡΠ°Π²Π°ΡΠ΅?
Π’ΡΠΊ ΠΏΠΎ-ΡΠΊΠΎΡΠΎ ΡΡΡΠ±Π²Π° ΠΏΡΠΎΡΡΠΎ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π΄ΠΎΠ±ΡΠ΅ Π·Π°Π΄Π°ΡΠ°ΡΠ° ΡΠΈ, ΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠΌΠΎΡΠΈ ΠΈΠΌΠ° ΡΡ ΠΈ ΠΊΠΎΠΈ NoSQL ΡΠΈΡΡΠ΅ΠΌΠΈ Π±ΠΈΡ Π° ΠΏΠΎΠ΄Ρ ΠΎΠΆΠ΄Π°Π»ΠΈ Π½Π° ΡΠΎΠ²Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ - ΠΈ Π²Π΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΡΠ΅ Ρ ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π΄Π΅Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
Π‘ΠΊΡΠΈΠΏΡΠΎΠ²ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ.
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ±ΡΠΎ ΠΈΠΌΠ° Python - ΡΠΎΠ²Π° Π΅ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, Π° Π½Π΅ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠΎ.

- Pandas Π΅ ΠΈΡΡΠΈΠ½ΡΠΊΠΈ ΡΠ²Π΅ΠΉΡΠ°ΡΡΠΊΠΈ Π½ΠΎΠΆ Π·Π° Data Science, ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ, Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅ ΠΈ Ρ.Π½. ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π² Π½Π΅Π³ΠΎ.
- Numpy - Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΌΠ°ΡΡΠΈΡΠΈ ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½Π° Π°Π»Π³Π΅Π±ΡΠ° ΡΠ°ΠΌ.
- Scipy - ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° Π² ΡΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°.
- Jupyter lab - ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΊΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠ±ΡΠ΅ ΡΠ΅ Π²ΠΏΠΈΡΠ²Π° Π² Π½ΠΎΡΡΠ±ΡΡΠΈΡΠ΅ - ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΅ Π΄Π° Π³ΠΎ ΡΠΌΠ΅Π΅ΡΠ΅.
- Requests - ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
- Pyspark - ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΡΡΠ΅Π΄ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ Π²ΠΈ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΡΠ΅ Ρ Π½Π΅Π³ΠΎ ΠΈΠ»ΠΈ Spark, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΡΡ Π½Π°ΡΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡ.
- *Selenium - ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°ΠΉΡΠΎΠ²Π΅ ΠΈ ΡΠ΅ΡΡΡΡΠΈ, ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΏΡΠΎΡΡΠΎ ΠΏΠΎ Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅.
ΠΠΎΡΡ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΡΡΠ²Π΅Ρ: ΡΡΠ΅ΡΠ΅ Python!
Pandas
ΠΠ΅ΠΊΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ ΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π·Π° ΠΏΡΠΈΠΌΠ΅Ρ:
import pandas as pd
df = pd.read_csv("data/dataset.csv")
# ΠΠ·ΡΠΈΡΠ»Π΅ΡΠ΅ ΠΈ ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°ΠΉΡΠ΅ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈΡΠ΅
all_together = (df[df['trip_type'] == "return"]
.groupby(['start_station_name','end_station_name'])
.agg({'trip_duration_seconds': [np.size, np.mean, np.min, np.max]})
.rename(columns={'size': 'num_trips',
'mean': 'avg_duration_seconds',
'amin': 'min_duration_seconds',
'amax': 'max_duration_seconds'}))ΠΡΡΡΠ½ΠΎΡΡ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ΠΊΠΎΠ΄ΡΡ ΠΏΠΎΠΏΠ°Π΄Π° Π² ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡ SQL ΡΠ°Π±Π»ΠΎΠ½.
SELECT start_station_name, end_station_name, count(trip_duration_seconds) as size, β¦..
FROM dataset
WHERE trip_type = 'return'
GROUP BY start_station_name, end_station_nameΠΠΎ Π²Π°ΠΆΠ½Π°ΡΠ° ΡΠ°ΡΡ Π΅, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄ Π΅ ΡΠ°ΡΡ ΠΎΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°, Π²ΡΡΡΠ½ΠΎΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΠΌΠ΅ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π² ΠΠ°ΠΉΡΠΎΠ½ΠΎΠ²ΠΈΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½. Π ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ Π΅Π·ΠΈΠΊΡΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΈΠ΄Π²Π° ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ°ΡΠΎ Pandas ΠΈΠ»ΠΈ pySpark.
ΠΠ±ΡΠΎ Π²Π·Π΅ΡΠΎ, Π² pySpark Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΡ ΠΎΠ΄Π΅Π½ ΡΠΈΠΏ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· Π΅Π·ΠΈΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅:
df.filter(df.trip_type = "return")
.groupby("day")
.agg({duration: 'mean'})
.sort()ΠΡΠ΄Π΅ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ°
ΠΠ° ΡΠ°ΠΌΠΈΡ ΠΠ°ΠΉΡΠΎΠ½ ΠΈΠ·ΠΎΠ±ΡΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅. Π ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈΠΌΠ° ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΡΠΈΠ°Π»ΠΈ ΠΏΠΎ , ΠΈ ΠΊΡΡΡΠΎΠ²Π΅ ΠΏΠΎ (ΠΊΠ°ΠΊΡΠΎ ΠΈ Π·Π° ΡΠ°ΠΌΠΈΡ ). ΠΡΠΎΠ±ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π»Π΅ΡΠ½ΠΎ ΠΈ Π°ΠΊΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ° Π΅Π΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ, Π½Π° ΠΊΠΎΠΉΡΠΎ Π΄Π° ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΠΌ β ΡΠΎΠ²Π° ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΡΠ΅ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ pandas. ΠΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ DS+Python ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΡΠ΅ ΡΡΡΠΎ .
Shell ΠΊΠ°ΡΠΎ Π΅Π·ΠΈΠΊ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅
ΠΡΠΌΠ° ΠΌΠ°Π»ΠΊΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΠΌΠΈ ΡΠ΅ Π΅ Π½Π°Π»Π°Π³Π°Π»ΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΡ β ΡΠΎΠ²Π°, ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, ΡΠ° shell ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ ΠΊΠΎΠ΄ Π½Π° ΠΠ°ΠΉΡΠΎΠ½, Π½Π° Java ΠΈ ΡΠ°ΠΌΠΈΡΠ΅ shell ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠΠ°ΡΠΎΠ²Π° Π² ΠΎΠ±ΡΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈΡΠ΅ Π² bash/zsh/ ΠΈ Π΄Ρ. ΠΊΠ°ΡΠΎ Π²ΠΈΠ΄ Π²ΠΈΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π° Π·Π°ΡΠ²ΠΊΠ° (ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈ ΡΠΈΠΊΠ»ΠΈ, Π½ΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΠΈΠΏΠΈΡΠ½ΠΎ Π·Π° DS ΠΊΠΎΠ΄ Π½Π° shell Π΅Π·ΠΈΡΠΈΡΠ΅), Π΅ΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΡ ΠΏΡΠΈΠΌΠ΅Ρ β ΡΡΡΠ±Π²Π°ΡΠ΅ ΠΌΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ ΠΌΠ°ΠΏΠΈΠ½Π³ Π½Π° QID ΠΎΡ ΠΠΈΠΊΠΈΠ΄Π°Π½Π½ΠΈ ΠΈ ΠΏΡΠ»Π½Π°ΡΠ° Π²ΡΡΠ·ΠΊΠ° ΠΊΡΠΌ ΡΡΡΠΊΠ°ΡΠ° ΠΈ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠ°ΡΠ° Π²ΠΈΠΊΠΈ, Π·Π° ΡΠΎΠ²Π° Π½Π°ΠΏΠΈΡΠ°Ρ ΠΏΡΠΎΡΡΠ° Π·Π°ΡΠ²ΠΊΠ° ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² bash ΠΈ Π·Π° ΠΈΠ·Π²ΠΎΠ΄Π° Π½Π°ΠΏΠΈΡΠ°Ρ ΠΏΡΠΎΡΡ ΡΠΊΡΠΈΠΏΡ Π½Π° ΠΠ°ΠΉΡΠΎΠ½, ΠΊΠΎΠΉΡΠΎ ΡΡΠ±ΡΠ°Ρ Π·Π°Π΅Π΄Π½ΠΎ ΡΠ°ΠΊΠ°:
pv "data/latest-all.json.gz" |
unpigz -c |
jq --stream $JQ_QUERY |
python3 scripts/post_process.py "output.csv"
ΠΊΡΠ΄Π΅ΡΠΎ
JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2] =="ruwiki") and .[0][3] =="title") or .[0][1] == "id")' Π’ΠΎΠ²Π° Π±Π΅ΡΠ΅, ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, ΡΠ΅Π»ΠΈΡΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½, ΠΊΠΎΠΉΡΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ ΠΌΠ°ΠΏΠΈΡΠ°Π½Π΅; Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΏΠΎΡΠΎΠΊ:
- pv filepath β Π΄Π°Π²Π° ΠΏΡΠΎΠ³ΡΠ΅Ρ Π±Π°Ρ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ ΠΌΡ Π½Π°ΠΏΡΠ΅Π΄
- unpigz -c ΡΠ΅ΡΠ΅ΡΠ΅ ΡΠ°ΡΡ ΠΎΡ Π°ΡΡ ΠΈΠ²Π° ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°ΡΠ΅ Π½Π° jq
- jq Ρ ΠΊΠ»ΡΡΠ° β stream Π²Π΅Π΄Π½Π°Π³Π° ΠΈΠ·Π΄Π°Π²Π°ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΈ Π³ΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°ΡΠ΅ Π½Π° ΠΏΠΎΡΡΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° (ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠΈ Π½Π°ΠΉ-ΠΏΡΡΠ²ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ) Π½Π° ΠΠ°ΠΉΡΠΎΠ½
- Π²ΡΡΡΠ΅ ΠΏΠΎΡΡΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ β ΡΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠ° ΠΌΠ°ΡΠΈΠ½Π° Π·Π° ΡΡΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°ΡΠ΅ ΠΈΠ·Π²ΠΎΠ΄Π°Β
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠ»ΠΎΠΆΠ΅Π½ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½, ΡΠ°Π±ΠΎΡΠ΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΏΠΎΡΠΎΠΊΠ° Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ (0.5TB), Π±Π΅Π· Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ, ΡΡΡΡΠ°Π²Π΅Π½ ΠΎΡ ΠΏΡΠΎΡΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°.
ΠΡΠ΅ Π΅Π΄ΠΈΠ½ Π²Π°ΠΆΠ΅Π½ ΡΡΠ²Π΅Ρ: ΡΠΌΠ΅ΠΉΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±ΡΠ΅ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π° bash/zsh/ΠΈ Ρ.Π½.
ΠΡΠ΄Π΅ ΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈ? ΠΠΎΡΡΠΈ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅ β ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΡΠ΅ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ° ΠΠΠ ΠΠΠΠ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ°. Π ΡΠ°ΡΡΠ½ΠΎΡΡ, Π΅ΡΠΎ ΠΌΠΎΡΡΠ° ΠΏΡΠ΅Π΄ΠΈΡΠ½Π° ΡΡΠ°ΡΠΈΡ.
R ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅
ΠΡΠ½ΠΎΠ²ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΠ·ΠΊΠ»ΠΈΠΊΠ½Π΅ β Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΡΡΠ» Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅! Π Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ, ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ°Π². ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΌΠΈ ΡΠ΅ Π΅ Π½Π°Π»Π°Π³Π°Π»ΠΎ Π΄Π° ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΠΌ Ρ R Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΈΠ·ΡΠΊ Π΄ΠΎ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ.
R ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΡΡΠ΅Π΄Π° Π·Π° ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ Π΅Π·ΠΈΠΊ Π·Π° ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ (ΡΡΠ³Π»Π°ΡΠ½ΠΎ ).

ΠΠ·Π΅ΡΠΎ . ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ, Π΄ΠΎΠ±ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
ΠΠ°ΡΠΎ Π½Π° Π΄Π°ΡΠ° ΡΡΠ΅Π½ΠΈΡΠ΅ ΠΈΠΌ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°ΡΡ R? ΠΠ°ΠΉ-ΠΌΠ°Π»ΠΊΠΎΡΠΎ, Π·Π°ΡΠΎΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΎΠ³ΡΠΎΠΌΠ½Π° Π³ΡΡΠΏΠ° Ρ ΠΎΡΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΠΎΡ IT ΡΠ΅ΠΊΡΠΎΡΠ°, Π° Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ ΡΡΡ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ Ρ R. Π‘ΡΠ΅ΡΠ°Π» ΡΡΠΌ Π³ΠΈ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠ°:
- Π€Π°ΡΠΌΠ°ΡΠ΅Π²ΡΠΈΡΠ½ΠΈΡ ΡΠ΅ΠΊΡΠΎΡ.
- ΠΠΈΠΎΠ»ΠΎΠ·ΠΈΡΠ΅.
- Π€ΠΈΠ½Π°Π½ΡΠΎΠ²ΠΈΡ ΡΠ΅ΠΊΡΠΎΡ.
- Π₯ΠΎΡΠ° Ρ ΡΠΈΡΡΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΡΠΈ ΡΠ΅ ΡΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°.
- Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ (ΠΊΠΎΠΈΡΠΎ ΡΠ΅ΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΡΡ ΡΠ°ΠΌΠΎ Π² Π°Π²ΡΠΎΡΡΠΊΠ° Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° R ΠΏΠ°ΠΊΠ΅Ρ).
ΠΠ°ΡΠΎ ΡΠΎΠ²Π° Π²ΡΡΡΠ½ΠΎΡΡ Π΅ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ? Π ΡΠΎΠ·ΠΈ Π²ΠΈΠ΄, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΡΠΎ ΡΠ΅ ΡΡΠ΅ΡΠ° β ΡΠΎΠ²Π° Π²ΡΡΡΠ½ΠΎΡΡ Π΅ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π», Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° (ΠΌΠΎΠ΄Π΅Π»Π°), ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠ°ΠΊΠΈΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΊΠ°ΡΠΎ ggplot2 β ΡΠΎΠ²Π° ΡΡΡΠΎ Π΅ ΡΠΎΡΠΌΠ° Π½Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ.
ΠΡΠΈΠΌΠ΅Ρ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ggplot(data = beav,
aes(x = id, y = temp,
group = activ, color = activ)) +
geom_line() +
geom_point() +
scale_color_manual(values = c("red", "blue"))ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅ΠΈ ΠΎΡ R ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ Π° Π² ΠΏΠ°ΠΊΠ΅ΡΠΈ python, ΠΊΠ°ΡΠΎ pandas, numpy ΠΈΠ»ΠΈ scipy, ΠΊΠ°ΡΠΎ Π΄Π°ΡΠ°ΡΡΠ΅ΠΉΠΌΠΈ ΠΈ Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ β Π·Π°ΡΠΎΠ²Π° ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ° Π² R ΡΠ΅ Π²ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ ΠΏΠΎΠ·Π½Π°ΡΠΈ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΈ.
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, .
ΠΡΠ°ΡΠΈ Π½Π° Π·Π½Π°Π½ΠΈΡ (Knowledge graph)
Π’ΡΠΊ ΠΈΠΌΠ°ΠΌ ΠΌΠ°Π»ΠΊΠΎ Π½Π΅ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΎΠΏΠΈΡ, Π·Π°ΡΠΎΡΠΎ ΠΌΠΈ ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄ΠΎΡΡΠ° ΡΠ΅ΡΡΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΈ Π½Π° Π·Π½Π°Π½ΠΈΡ ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ Π³ΡΠ°ΡΠΈ. ΠΠ°ΡΠΎΠ²Π° ΡΠ°ΠΌΠΎ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ ΡΠ΅ ΠΏΡΠ΅Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ°Π·ΠΈ ΡΠ°ΡΡ Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π΅ΠΊΠ·ΠΎΡΠΈΡΠ½Π°.
Π ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠΈΠΊΡΠΈΡΠ°Π½Π° ΡΡ Π΅ΠΌΠ° β ΡΡΠΊ ΡΡ Π΅ΠΌΠ°ΡΠ° Π΅ Π³ΡΠ²ΠΊΠ°Π²Π°, Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ Π΅ Π²ΡΡΡΠ½ΠΎΡΡ "ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°" ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ, ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°ΡΠ΅ ΡΠΎΠ²Π΅ΠΊ ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΎΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ Π½Π΅ΡΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡ ΡΠΎΠ²Π΅ΠΊ ΠΡΠ³Π»Π°Ρ ΠΠ΄Π°ΠΌΡ, ΠΎΡΠ½ΠΎΠ²Π°Π²Π°ΠΉΠΊΠΈ ΡΠ΅ Π½Π° ΡΠΎΠ²Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅.

ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π±Π°Π·Π°, ΡΡΡ ΠΌΠ΅ Π΄Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΎΠ³ΡΠΎΠΌΠ½Π° ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π±ΠΈΡ Π° Π±ΠΈΠ»ΠΈ NULL ΠΈΠ»ΠΈ Π·Π°ΠΏΡΠ»Π½Π΅Π½ΠΈ Ρ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ° ΡΠ΅ False ΡΡΠΎΠΉΠ½ΠΎΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π΄Π²Π° Π»ΠΈ ΠΌΠ½ΠΎΠ·ΠΈΠ½Π° ΠΎΡ Π½Π°Ρ ΠΈΠΌΠ°Ρ Π·Π°ΠΏΠΈΡ Π² Π½Π°ΡΠΈΠΎΠ½Π°Π»Π½Π°ΡΠ° ΠΊΠΎΡΠ΅ΠΉΡΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° β ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΈ ΠΈΠ·Π½Π΅ΡΠ΅ΠΌ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ, Π½ΠΎ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠΎΠ²Π° Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΎΠΏΠΈΡ Π΄Π° ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ° Π³ΡΠ²ΠΊΠ°Π²Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ° ΡΡ Π΅ΠΌΠ° Ρ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠΈ ΡΡΠ΅Π· ΡΠΈΠΊΡΠΈΡΠ°Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°.

ΠΠ°ΡΠΎΠ²Π° ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ ΠΊΠ°ΡΠΎ Π³ΡΠ°Ρ ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΈ ΠΈ ΡΠ½Π°ΡΠ½ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ.
ΠΡΠ΄Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠΎ Π΄Π° ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°ΡΠ΅ Ρ ΡΠ°ΠΊΠΎΠ²Π° Π½Π΅ΡΠΎ? ΠΡΡΠ²ΠΎ, ΡΠ°Π±ΠΎΡΠ΅ΠΉΠΊΠΈ Ρ , ΠΊΠ°ΠΊΡΠΎ ΠΈ Ρ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π³ΡΠ°ΡΠΎΠ²ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ.
Π‘Π»Π΅Π΄Π²Π°Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π» ΠΈ ΡΠ°Π±ΠΎΡΠΈΠ» Ρ.
SPARQL
Wiki:
SPARQL ( ΠΎΡ SPARQL Protocol and RDF Query Language) β , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»Π° , ΠΊΠ°ΠΊΡΠΎ ΠΈ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΈ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° ΡΡΡ . SPARQL Π΅ ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠ° Π½Π° ΠΈ Π΅Π΄Π½Π° ΠΎΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅ .
ΠΡΡΡΠ½ΠΎΡΡ, ΡΠΎΠ²Π° Π΅ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ½Π°ΡΠ½ΠΈ ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠΈ. ΠΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π²Π°ΡΠ΅ ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΎ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΡΠ°Π·, Π° ΠΊΠ°ΠΊΠ²ΠΎ Π½Π΅ (ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΎΡΡΠ΅Π½ΠΎ).
Π‘Π°ΠΌΠ°ΡΠ° Π±Π°Π·Π° RDF (Resource Description Framework), Π²ΡΡΡ
Ρ ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ SPARQL Π·Π°ΡΠ²ΠΊΠΈ, Π΅ ΡΡΠΎΠΉΠΊΠ° ΠΎΠ±Π΅ΠΊΡ, ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ, ΡΡΠ±Π΅ΠΊΡ β ΠΈ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΈΠ·Π±ΠΈΡΠ° Π½ΡΠΆΠ½ΠΈΡΠ΅ ΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π² Π΄ΡΡ
Π°: Π½Π°ΠΌΠ΅ΡΠ΅ΡΠ΅ ΡΠ°ΠΊΡΠ² X, ΡΠ°ΠΊΡΠ² ΡΠ΅ p_55(X, q_33) Π΅ Π²ΡΡΠ½ΠΎ β ΠΊΡΠ΄Π΅ΡΠΎ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, p_55 Π΅ Π½ΡΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Ρ ID 55, Π° q_33 Π΅ ΠΎΠ±Π΅ΠΊΡ Ρ ID 33 (ΡΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ, ΠΏΡΠΎΠΏΡΡΠΊΠ°ΠΉΠΊΠΈ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ).
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ:

ΠΠ°ΡΡΠΈΠ½ΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ΅: .
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½Π° Π·Π°ΡΠ²ΠΊΠ°:

Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° ?country, ΡΠ°ΠΊΠ° ΡΠ΅ Π·Π° ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠ°
member_of Π΅ Π²ΡΡΠ½ΠΎ, ΡΠ΅ member_of(?country,q458), Π° q458 Π΅ ID Π½Π° ΠΠ²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΈΡ ΡΡΡΠ·.
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠ΅Π°Π»Π½Π° SPARQL Π·Π°ΡΠ²ΠΊΠ° Π² Python Π΄Π²ΠΈΠΆΠΊΠ°:

ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΌΠΈ ΡΠ΅ Π΅ Π½Π°Π»Π°Π³Π°Π»ΠΎ Π΄Π° ΡΠ΅ΡΠ° SPARQL, Π° Π½Π΅ Π΄Π° ΠΏΠΈΡΠ° β Π² ΡΠ°ΠΊΠ°Π²Π° ΡΠΈΡΡΠ°ΡΠΈΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ°Ρ Π΅Π·ΠΈΠΊΠ° ΠΏΠΎΠ½Π΅ Π½Π° Π±Π°Π·ΠΎΠ²ΠΎ Π½ΠΈΠ²ΠΎ, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΠΎΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·Π²Π»ΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈ.Β
Π ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠΎ ΠΈ . ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π² Google ΠΈ Π·Π°ΡΠ΅Π³Π° ΠΌΠΈ ΡΡΠΈΠ³Π°.
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ
ΠΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅Ρ Π² ΠΌΠΎΡΡΠ° ΡΡΠ°ΡΠΈΡ . Π ΡΡΠΊ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π·Π°ΡΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ Π΄ΠΎΠ±ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠΆΠ΄Π°Ρ Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, RDF Π΅ ΠΏΡΠΎΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΎΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΡ ΠΎΡ Π²ΠΈΠ΄Π° p(X) ΠΈ h(X,Y), Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΠΈΠΌΠ° ΡΠ»Π΅Π΄Π½ΠΈΡ Π²ΠΈΠ΄:
output(X) :- country(X), member_of(X, "EU").
Π’ΡΠΊ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ² ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ output/1 (/1 ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΡΠ½ΠΈΠ°ΡΠ΅Π½), ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠ΅ Π·Π° X Π΅ Π²ΡΡΠ½ΠΎ, ΡΠ΅ country(X) β Ρ.Π΅. X Π΅ ΡΡΡΠ°Π½Π° ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° member_of(X, "EU").
Π’ΠΎΠ΅ΡΡ ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠ°ΠΊΡΠΎ Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΊΠ° ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΊΠΎΠΈΡΠΎ Π² ΡΠ°ΠΊΡΠ² ΡΠ»ΡΡΠ°ΠΉ ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ ΠΏΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ Π½Π°ΡΠΈΠ½, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅ΡΠ½ΠΎ ΠΈ Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Ρ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΠ΄Π΅ ΡΠ΅ ΡΡΠ΅ΡΠ°Ρ Π² ΠΈΠ½Π΄ΡΡΡΡΠΈΡΡΠ°: ΡΡΠ» Π³ΠΎΠ»ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΏΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ°ΠΊΡΠ² Π΅Π·ΠΈΠΊ, Π° ΡΡΡΠΎ ΠΈ Π² ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° β ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ Π΄ΠΎΡΡΠ° Π΅ΠΊΠ·ΠΎΡΠΈΡΠ½ΠΎ, Π½ΠΎ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΠ΅ ΡΡΠ΅ΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ Π½Π° ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΎΡ ΠΊΠΎΠ΄ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π΅Π·ΠΈΠΊ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Wikidata:

ΠΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ: ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π° ΡΡΠΊ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π»ΠΈΠ½ΠΊΠ° Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Answer Set Programming β ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° Π³ΠΎ ΠΈΠ·ΡΡΠ°Π²Π°Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π΅Π³ΠΎ:
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
