Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° спСциалиста ΠΏΠΎ Π΄Π°Π½Π½ΠΈ: ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявка Π½Π° Π΄Π°Π½Π½ΠΈ

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° спСциалиста ΠΏΠΎ Π΄Π°Π½Π½ΠΈ: ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявка Π½Π° Π΄Π°Π½Π½ΠΈ
ΠžΡ‚ Π»ΠΈΡ‡Π΅Π½ ΠΎΠΏΠΈΡ‚ Π²ΠΈ ΠΊΠ°Π·Π²Π°ΠΌ ΠΊΠΎΠ΅ къдС ΠΈ ΠΊΠΎΠ³Π° Π΅ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Ρ‚Π΅Π·Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° Π΅ ясно ΠΊΠ°ΠΊΠ²ΠΎ ΠΈ къдС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠΎΠΏΠ°Π΅Ρ‚Π΅ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ - Π½ΠΎ Ρ‚ΡƒΠΊ ΠΈΠΌΠ°ΠΌ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ субСктивСн Π»ΠΈΡ‡Π΅Π½ ΠΎΠΏΠΈΡ‚, ΠΌΠΎΠΆΠ΅ Π±ΠΈ всичко Π΅ съвсСм Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ Π·Π° вас.

Π—Π°Ρ‰ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки? Π’ основата си Data Science ΠΈΠΌΠ° няколко Π²Π°ΠΆΠ½ΠΈ Π΅Ρ‚Π°ΠΏΠ° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°, ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ ΠΈ Π½Π°ΠΉ-Π²Π°ΠΆΠ΅Π½ (Π±Π΅Π· Π½Π΅Π³ΠΎ със сигурност Π½ΠΈΡ‰ΠΎ няма Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ!) Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ. Най-чСсто Π΄Π°Π½Π½ΠΈΡ‚Π΅ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ някъдС ΠΏΠΎΠ΄ някаква Ρ„ΠΎΡ€ΠΌΠ° ΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ β€žΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈβ€œ ΠΎΡ‚ Ρ‚Π°ΠΌ. 

Π•Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки Π²ΠΈ позволяват Π΄Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ! И днСс Ρ‰Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° Ρ‚Π΅Π·ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΈ бяха ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈ Ρ‰Π΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° къдС ΠΈ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡Π½ΠΎ - Π·Π°Ρ‰ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΈΠ·ΡƒΡ‡Π°Π²Π°.

Π©Π΅ ΠΈΠΌΠ° Ρ‚Ρ€ΠΈ основни Π±Π»ΠΎΠΊΠ° ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ²Π΅ заявки Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ обсъдим Π² Ρ‚Π°Π·ΠΈ статия:

  • β€žΠ‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΈΡ‚Π΅β€œ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки са Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС Ρ€Π°Π·Π±ΠΈΡ€Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° Π΅Π·ΠΈΠΊ Π·Π° заявки, ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±Ρ€Π° ΠΈΠ»ΠΈ SQL.
  • Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Python Π½Π΅Ρ‰Π° pandas, numpy ΠΈΠ»ΠΈ скриптовС Π½Π° shell.
  • Π•Π·ΠΈΡ†ΠΈ Π·Π° заявки Π·Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π° знания ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

Всичко написано Ρ‚ΡƒΠΊ Π΅ само Π»ΠΈΡ‡Π΅Π½ ΠΎΠΏΠΈΡ‚, Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ бСшС ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, с описаниС Π½Π° ситуациитС ΠΈ β€žΠ·Π°Ρ‰ΠΎ бСшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎβ€œ - всСки ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠΏΠΈΡ‚Π° ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ситуации ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС случат Π½Π° ΠΏΡŠΡ‚Ρ Π²ΠΈ ΠΈ Π΄Π° сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈ Π·Π° тях ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ, ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ Ρ‚Π΅Π·ΠΈ Π΅Π·ΠΈΡ†ΠΈ ​прСди Π΄Π° трябва Π΄Π° кандидатстватС (спСшно) ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ Π΄Π° стигнСтС Π΄ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ.

"Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΈ" Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΈΡ‚Π΅ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки са Ρ‚ΠΎΡ‡Π½ΠΎ Π² смисъла, Π² ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ мислим Π·Π° тях, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° заявки.

Π Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±Ρ€Π°

Π—Π°Ρ‰ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° Π°Π»Π³Π΅Π±Ρ€Π° днСс? Π—Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π΄ΠΎΠ±Ρ€Π΅ Π·Π°Ρ‰ΠΎ Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки са структурирани ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΡΡŠΠ·Π½Π°Ρ‚Π΅Π»Π½ΠΎ, трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΡΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π°, която Π΅ Π² основата ΠΈΠΌ.

Какво Π΅ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±Ρ€Π°?

Π€ΠΎΡ€ΠΌΠ°Π»Π½Π°Ρ‚Π° дСфиниция Π΅ слСдната: Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° Π°Π»Π³Π΅Π±Ρ€Π° Π΅ Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½Π° систСма ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΡŠΡ€Ρ…Ρƒ Ρ€Π΅Π»Π°Ρ†ΠΈΠΈ Π² Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ. Казано ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Ρ‡ΠΎΠ²Π΅ΡˆΠΊΠΈ, Ρ‚ΠΎΠ²Π° Π΅ систСма ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΡŠΡ€Ρ…Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ Π²ΠΈΠ½Π°Π³ΠΈ Π΄Π° Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°.

Π’ΠΈΠΆΡ‚Π΅ всички Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ‚ΠΎΠ²Π° статия ΠΎΡ‚ Habr - Ρ‚ΡƒΠΊ описвамС Π·Π°Ρ‰ΠΎ трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΈ къдС Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.

Π—Π°Ρ‰ΠΎ?

Π—Π°ΠΏΠΎΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ прСдставляват Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ стоят Π·Π°Π΄ ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки чСсто Π΄Π°Π²Π° ΠΏΠΎ-Π·Π°Π΄ΡŠΠ»Π±ΠΎΡ‡Π΅Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки ΠΈ ΠΊΠ°ΠΊ.

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° спСциалиста ΠΏΠΎ Π΄Π°Π½Π½ΠΈ: ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявка Π½Π° Π΄Π°Π½Π½ΠΈ
Π’Π·Π΅Ρ‚ΠΎ ΠΎΡ‚ Ρ‚ΠΎΠ²Π° статии. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° опСрация: join, която обСдинява Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ Π·Π° изслСдванС:

Π”ΠΎΠ±ΡŠΡ€ Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Ρ‰ курс ΠΎΡ‚ Π‘Ρ‚Π°Π½Ρ„ΠΎΡ€Π΄. ΠšΠ°Ρ‚ΠΎ цяло ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ ΠΏΠΎ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±Ρ€Π° ΠΈ тСория - Coursera, 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 - ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Ρ‚Π΅Π»Π½ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ сС вписват Π΄ΠΎΠ±Ρ€Π΅ Π² Π»Π°ΠΏΡ‚ΠΎΠΏΠΈ - ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΅ Π΄Π° сС Π·Π½Π°Π΅.
  • Заявки - Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°.
  • Pyspark Π΅ ΠΌΠ½ΠΎΠ³ΠΎ популярСн срСд ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π½Π°ΠΉ-вСроятно Ρ‰Π΅ трябва Π΄Π° взаимодСйстватС с Ρ‚ΠΎΠ·ΠΈ ΠΈΠ»ΠΈ Spark, просто ΠΏΠΎΡ€Π°Π΄ΠΈ тяхната популярност.
  • *Selenium - ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ сайтовС ΠΈ рСсурси, понякога просто няма Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π΄Π°Π½Π½ΠΈΡ‚Π΅.

ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ ΠΌΠΈ ΡΡŠΠ²Π΅Ρ‚: Π½Π°ΡƒΡ‡Π΅Ρ‚Π΅ Python!

ΠŸΠ°Π½Π΄ΠΈΡ‚Π΅

НСка Π²Π·Π΅ΠΌΠ΅ΠΌ слСдния ΠΊΠΎΠ΄ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import pandas as pd
df = pd.read_csv(β€œdata/dataset.csv”)
# Calculate and rename aggregations
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’
GROUPBY start_station_name, end_station_name

Но Π²Π°ΠΆΠ½Π°Ρ‚Π° част Π΅, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ Π΅ част ΠΎΡ‚ скрипта ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°; Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π½ΠΈΠ΅ Π²Π³Ρ€Π°ΠΆΠ΄Π°ΠΌΠ΅ заявки Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° Π½Π° Python. Π’ Ρ‚Π°Π·ΠΈ ситуация Π΅Π·ΠΈΠΊΡŠΡ‚ Π½Π° заявкитС ΠΈΠ΄Π²Π° ΠΏΡ€ΠΈ нас ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°Ρ‚ΠΎ Pandas ΠΈΠ»ΠΈ pySpark.

ΠšΠ°Ρ‚ΠΎ цяло Π² pySpark Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Ρ‚ΠΈΠΏ трансформация Π½Π° Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· Π΅Π·ΠΈΠΊ Π·Π° заявки Π² Π΄ΡƒΡ…Π° Π½Π°:

df.filter(df.trip_type = β€œreturn”)
  .groupby(β€œday”)
  .agg({duration: 'mean'})
  .sort()

КъдС ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° Ρ‡Π΅Ρ‚Π°

На самия Python ΠΊΠ°Ρ‚ΠΎ цяло Π½Π΅ Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π°ΠΌΠ΅Ρ€Π΅Ρ‚Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅. Има ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ Π±Ρ€ΠΎΠΉ ΡƒΡ€ΠΎΡ†ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΏΠ°Π½Π΄ΠΈ, pySpark ΠΈ курсовС ΠΏΠΎ Π˜ΡΠΊΡ€Π° (Π° ΡΡŠΡ‰ΠΎ ΠΈ сам ΠΏΠΎ сСбС си DS). ΠšΠ°Ρ‚ΠΎ цяло ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‚ΡƒΠΊ Π΅ страхотно Π·Π° Π³ΡƒΠ³ΡŠΠ» ΠΈ Π°ΠΊΠΎ трябва Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π΅Π΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚, Π²ΡŠΡ€Ρ…Ρƒ ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° сС ΡΡŠΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡Π°, Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠ°Π½Π΄ΠΈ, Ρ€Π°Π·Π±ΠΈΡ€Π° сС. По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° комбинацията ΠΎΡ‚ DS+Python ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ ΡΡŠΡ‰ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ.

Shell ΠΊΠ°Ρ‚ΠΎ Π΅Π·ΠΈΠΊ Π·Π° заявки

Доста ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ, с ΠΊΠΎΠΈΡ‚ΠΎ съм Ρ€Π°Π±ΠΎΡ‚ΠΈΠ», са Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ шСл скриптовС, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ ΠΊΠΎΠ΄ Π² Python, Java ΠΈ самитС шСл ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, ΠΊΠ°Ρ‚ΠΎ цяло, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚Π΅ Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ Π² bash/zsh/etc ΠΊΠ°Ρ‚ΠΎ някакъв Π²ΠΈΠ΄ заявка ΠΎΡ‚ високо Π½ΠΈΠ²ΠΎ (ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Π΄Π° поставитС Ρ†ΠΈΠΊΠ»ΠΈ Ρ‚Π°ΠΌ, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎ Π·Π° DS ΠΊΠΎΠ΄ Π² Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π°), Π½Π΅ΠΊΠ° Π΄Π°Π΄Π΅ΠΌ прост ΠΏΡ€ΠΈΠΌΠ΅Ρ€ - Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° направя QID ΠΊΠ°Ρ€Ρ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€Π°Π½Π΅ Π½Π° ΡƒΠΈΠΊΠΈΠ΄Π°Π½Π½ΠΈ ΠΈ пълни Π²Ρ€ΡŠΠ·ΠΊΠΈ към рускитС ΠΈ английскитС ΡƒΠΈΠΊΠΈΡ‚Π°, Π·Π° Ρ‚ΠΎΠ²Π° написах проста заявка ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ Π² bash ΠΈ Π·Π° ΠΈΠ·Ρ…ΠΎΠ΄Π° написах прост скрипт Π² Python, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΠ±Ρ€Π°Π½ΠΈ Ρ‚Π°ΠΊΠ°:

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 Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ създадС Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΈ Π³ΠΎ ΠΏΡ€Π΅Π΄Π°Π΄Π΅ Π½Π° постпроцСсора (ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ Π² ΠΏΡŠΡ€Π²ΠΈΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€) Π² Python
  • Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎ, ΠΏΠΎΡΡ‚ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€ΡŠΡ‚ бСшС проста Π΄ΡŠΡ€ΠΆΠ°Π²Π½Π° машина, която Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π° ΠΈΠ·Ρ…ΠΎΠ΄Π° 

ΠšΠ°Ρ‚ΠΎ цяло слоТСн ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ Π²ΡŠΡ€Ρ…Ρƒ Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ (0.5TB), Π±Π΅Π· Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ рСсурси ΠΈ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ ΠΎΡ‚ прост ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΈ няколко инструмСнта.

Π”Ρ€ΡƒΠ³ Π²Π°ΠΆΠ΅Π½ ΡΡŠΠ²Π΅Ρ‚: ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Ρ€Π΅ ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ bash/zsh/etc.

КъдС Ρ‰Π΅ бъдС ΠΏΠΎΠ»Π΅Π·Π½ΠΎ? Π”Π°, ΠΏΠΎΡ‡Ρ‚ΠΈ навсякъдС - ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈΠΌΠ° ΠœΠΠžΠ“Πž ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. По-спСциално Ρ‚ΡƒΠΊ Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° ΠΌΠΈ статия.

R скриптовС

ΠžΡ‚Π½ΠΎΠ²ΠΎ читатСлят ΠΌΠΎΠΆΠ΅ Π΄Π° възкликнС - Π°ΠΌΠΈ Ρ‚ΠΎΠ²Π° Π΅ цял ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ! И Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Ρ‚ΠΎΠΉ Ρ‰Π΅ бъдС ΠΏΡ€Π°Π². ОбикновСно ΠΎΠ±Π°Ρ‡Π΅ срСщах R Π² Ρ‚Π°ΠΊΡŠΠ² контСкст, Ρ‡Π΅ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ бСшС ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Π΅Π·ΠΈΠΊ Π·Π° заявки.

R Π΅ статистичСска изчислитСлна срСда ΠΈ Π΅Π·ΠΈΠΊ Π·Π° статично изчислСниС ΠΈ визуализация (спорСд Ρ‚ΠΎΠ²Π°).

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° спСциалиста ΠΏΠΎ Π΄Π°Π½Π½ΠΈ: ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявка Π½Π° Π΄Π°Π½Π½ΠΈ
Π²Π·Π΅Ρ‚Π° слСдоватСлно. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π³ΠΎ, Π΄ΠΎΠ±ΡŠΡ€ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π».

Π—Π°Ρ‰ΠΎ Π΅Π΄ΠΈΠ½ ΡƒΡ‡Π΅Π½ ΠΏΠΎ Π΄Π°Π½Π½ΠΈ трябва Π΄Π° Π·Π½Π°Π΅ R? Най-ΠΌΠ°Π»ΠΊΠΎΡ‚ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΈΠΌΠ° ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ слой ΠΎΡ‚ Π½Π΅-ИВ Ρ…ΠΎΡ€Π°, ΠΊΠΎΠΈΡ‚ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ Π΄Π°Π½Π½ΠΈ Π² 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 Ρ‰Π΅ Π²ΠΈ сС сторят ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΈ.

Има ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅, Π½Π°ΠΏΡ€. Ρ‚ΠΎΠ²Π°.

Π“Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π° знания

Π’ΡƒΠΊ ΠΈΠΌΠ°ΠΌ ΠΌΠ°Π»ΠΊΠΎ Π½Π΅ΠΎΠ±ΠΈΡ‡Π°Π΅Π½ ΠΎΠΏΠΈΡ‚, Π·Π°Ρ‰ΠΎΡ‚ΠΎ доста чСсто трябва Π΄Π° работя с Π³Ρ€Π°Ρ„ΠΈ Π½Π° знания ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки Π·Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. Π—Π°Ρ‚ΠΎΠ²Π° Π½Π΅ΠΊΠ° Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°ΠΌΠ΅ основитС, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚Π°Π·ΠΈ част Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π΅ΠΊΠ·ΠΎΡ‚ΠΈΡ‡Π½Π°.

Π’ класичСскитС Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ фиксирана схСма, Π½ΠΎ Ρ‚ΡƒΠΊ схСмата Π΅ гъвкава, всСки ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π΅ β€žΠΊΠΎΠ»ΠΎΠ½Π°β€œ ΠΈ Π΄ΠΎΡ€ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Ρ‚Π΅ си, Ρ‡Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Ρ‚Π΅ Ρ‡ΠΎΠ²Π΅ΠΊ ΠΈ искатС Π΄Π° ΠΎΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ Π½Π΅Ρ‰Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ΠΊΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Ρ‡ΠΎΠ²Π΅ΠΊ, Π”ΡŠΠ³Π»Π°Ρ Адамс, ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‚ΠΎΠ²Π° описаниС ΠΊΠ°Ρ‚ΠΎ основа.

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° спСциалиста ΠΏΠΎ Π΄Π°Π½Π½ΠΈ: ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявка Π½Π° Π΄Π°Π½Π½ΠΈ
www.wikidata.org/wiki/Q42

Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Ρ‰Π΅ трябва Π΄Π° създадСм ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ с ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ Π±Ρ€ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ Π±ΠΈΡ…Π° Π±ΠΈΠ»ΠΈ NULL ΠΈΠ»ΠΈ запълнСни с някаква стойност ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ False, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ°Π»ΠΊΠΎ вСроятно Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ нас Π΄Π° ΠΈΠΌΠ°Ρ‚ запис Π² корСйската Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° - Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Π±ΠΈΡ…ΠΌΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° Π³ΠΈ поставим Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΎΠΏΠΈΡ‚ Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Π½Π΅ Π½Π° гъвкава логичСска Π²Π΅Ρ€ΠΈΠ³Π° с ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ фиксирана Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π°.

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° спСциалиста ΠΏΠΎ Π΄Π°Π½Π½ΠΈ: ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявка Π½Π° Π΄Π°Π½Π½ΠΈ
ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Ρ‚Π΅ си, Ρ‡Π΅ всички Π΄Π°Π½Π½ΠΈ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚ΠΎ Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ ΠΈ ΡƒΠ½Π°Ρ€Π½ΠΈ Π±ΡƒΠ»Π΅Π²ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ.

КъдС ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° срСщнСтС Ρ‚ΠΎΠ²Π°? ΠŸΡŠΡ€Π²ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с ΡƒΠΈΠΊΠΈ Π΄Π°Π½Π½ΠΈΠΈ с всякакви Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ.

Π‘Π»Π΅Π΄Π½ΠΈΡ‚Π΅ са основнитС Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки, ΠΊΠΎΠΈΡ‚ΠΎ съм ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π» ΠΈ с ΠΊΠΎΠΈΡ‚ΠΎ съм Ρ€Π°Π±ΠΎΡ‚ΠΈΠ».

SPARQL

Wiki:
SPARQL (рСкурсивСн Π°ΠΊΡ€ΠΎΠ½ΠΈΠΌ ΠΎΡ‚ ИнТ. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» SPARQL ΠΈ Π΅Π·ΠΈΠΊ Π·Π° заявки RDF) - Π΅Π·ΠΈΠΊ Π·Π° заявка Π½Π° Π΄Π°Π½Π½ΠΈ, прСдставСн ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»Π° RDFИ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π΄Π° ΠΏΡ€Π΅Π΄Π°Π²Π° Ρ‚Π΅Π·ΠΈ искания ΠΈ Π΄Π° отговаря Π½Π° тях. SPARQL Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠ° ΠšΠΎΠ½ΡΠΎΡ€Ρ†ΠΈΡƒΠΌ W3C ΠΈ Π΅Π΄Π½Π° ΠΎΡ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡ‚Π΅ сСмантична ΠΌΡ€Π΅ΠΆΠ°.

Но Π² дСйствитСлност Ρ‚ΠΎΠ²Π° Π΅ Π΅Π·ΠΈΠΊ Π·Π° заявки Π·Π° логичСски ΡƒΠ½Π°Ρ€Π½ΠΈ ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΈ. Π’ΠΈΠ΅ просто условно опрСдСлятС ΠΊΠ°ΠΊΠ²ΠΎ Π΅ фиксирано Π² Π±ΡƒΠ»Π΅Π² ΠΈΠ·Ρ€Π°Π· ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π½Π΅ (ΠΌΠ½ΠΎΠ³ΠΎ опростСно).

Π‘Π°ΠΌΠ°Ρ‚Π° RDF (Resource Description Framework) Π±Π°Π·Π°, Π²ΡŠΡ€Ρ…Ρƒ която сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ SPARQL заявки, Π΅ Ρ‚Ρ€ΠΎΠΉΠ½Π° object, predicate, subject - ΠΈ заявката ΠΈΠ·Π±ΠΈΡ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ‚Ρ€ΠΎΠΉΠΊΠΈ спорСд посочСнитС ограничСния Π² Π΄ΡƒΡ…Π°: Π½Π°ΠΌΠ΅Ρ€Π΅Ρ‚Π΅ 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").

ВоСст Π² случая ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° са прСдставСни ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ Π½Π°Ρ‡ΠΈΠ½, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½ΠΈ позволява ΠΌΠ½ΠΎΠ³ΠΎ лСсно ΠΈ Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅.

КъдС сС срСщнахтС Π² индустрията?: цял голям ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с компания, която пишС заявки Π½Π° Ρ‚Π°ΠΊΡŠΠ² Π΅Π·ΠΈΠΊ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π²ΡŠΡ€Ρ…Ρƒ тСкущия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ядрото Π½Π° систСмата - ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ доста Π΅ΠΊΠ·ΠΎΡ‚ΠΈΡ‡Π½ΠΎ Π½Π΅Ρ‰ΠΎ, Π½ΠΎ понякога сС случва.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΊΠΎΠ΄ΠΎΠ² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π² логичСски Π΅Π·ΠΈΠΊ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ ΡƒΠΈΠΊΠΈΠ΄Π°Π½Π½ΠΈ:

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° спСциалиста ΠΏΠΎ Π΄Π°Π½Π½ΠΈ: ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявка Π½Π° Π΄Π°Π½Π½ΠΈ

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ: Π’ΡƒΠΊ Ρ‰Π΅ Π΄Π°ΠΌ няколко Π²Ρ€ΡŠΠ·ΠΊΠΈ към ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ Π΅Π·ΠΈΠΊ Π·Π° логичСско ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Answer Set Programming - ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π΄Π° Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π²Π°Ρ‚Π΅:

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° спСциалиста ΠΏΠΎ Π΄Π°Π½Π½ΠΈ: ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявка Π½Π° Π΄Π°Π½Π½ΠΈ

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€