ΠŸΡŠΡ€Π²ΠΈ впСчатлСния ΠΎΡ‚ Amazon Neptune

ΠŸΠΎΠ·Π΄Ρ€Π°Π², ΠΆΠΈΡ‚Π΅Π»ΠΈ Π½Π° Π₯абровск. Π’ ΠΎΡ‡Π°ΠΊΠ²Π°Π½Π΅ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° курса β€žAWS Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈβ€œ ΠŸΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΠ»ΠΈ смС ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° интСрСсСн ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π».

ΠŸΡŠΡ€Π²ΠΈ впСчатлСния ΠΎΡ‚ Amazon Neptune

Π’ ΠΌΠ½ΠΎΠ³ΠΎ случаи Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°, ΠΊΠΎΠΈΡ‚ΠΎ харСсвамС bakdataΠšΠ°ΠΊΡ‚ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½Π° уСбсайтовСтС Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π°Ρ‚Π° информация Π΅ скрита във Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, зависимости ΠΌΠ΅ΠΆΠ΄Ρƒ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ ΠΈΠ»ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ сСнзори. Π’Π°ΠΊΠΈΠ²Π° случаи Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Ρ‚ Π²ΡŠΡ€Ρ…Ρƒ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. По-Ρ€Π°Π½ΠΎ Ρ‚Π°Π·ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° Amazon пусна Π½ΠΎΠ²Π°Ρ‚Π° си Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Neptune. Π’ Ρ‚Π°Π·ΠΈ публикация искамС Π΄Π° сподСлим Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡŠΡ€Π²ΠΈ ΠΈΠ΄Π΅ΠΈ, Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ.

Π—Π°Ρ‰ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ…ΠΌΠ΅ ΠΎΡ‚ Amazon Neptune

Π“Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΠ±Π΅Ρ‰Π°Π²Π°Ρ‚ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ силно ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ ΠΎΡ‚ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ΠΈ. Π’ Ρ‚Π°ΠΊΠΈΠ²Π° Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π°Ρ‚Π° информация ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° във Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ нСвСроятСн ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° тСствамС Neptune MusicBrainz. MusicBrainz ΡΡŠΠ±ΠΈΡ€Π° всякакъв Π²ΠΈΠ΄ ΠΌΡƒΠ·ΠΈΠΊΠ°Π»Π½ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° си прСдставитС, ΠΊΠ°Ρ‚ΠΎ информация Π·Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»ΠΈ, пСсни, издания Π½Π° Π°Π»Π±ΡƒΠΌΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ†Π΅Ρ€Ρ‚ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ с ΠΊΠΎΠ³ΠΎ Π΅ ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡ΠΈΠ» ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»ΡΡ‚ Π·Π°Π΄ пСсСнта ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π° Π°Π»Π±ΡƒΠΌΡŠΡ‚ Π΅ ΠΈΠ·Π΄Π°Π΄Π΅Π½ Π² коя Π΄ΡŠΡ€ΠΆΠ°Π²Π°. MusicBrainz ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° ΠΌΡ€Π΅ΠΆΠ° ΠΎΡ‚ субСкти, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΌΡƒΠ·ΠΈΠΊΠ°Π»Π½Π°Ρ‚Π° индустрия.

ΠΠ°Π±ΠΎΡ€ΡŠΡ‚ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Π½Π° MusicBrainz сС прСдоставя ΠΊΠ°Ρ‚ΠΎ CSV дъмп Π½Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. ΠžΠ±Ρ‰ΠΎ Π΄ΡŠΠΌΠΏΡŠΡ‚ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΎΠΊΠΎΠ»ΠΎ 93 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Π² 157 Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. Π”ΠΎΠΊΠ°Ρ‚ΠΎ някои ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ основни Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»ΠΈ, ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, записи, издания ΠΈΠ»ΠΈ пСсни, Π΄Ρ€ΡƒΠ³ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ β€” ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»ΠΈ ΠΈ записи, Π΄Ρ€ΡƒΠ³ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»ΠΈ ΠΈΠ»ΠΈ издания ΠΈ Ρ‚.Π½... Π’Π΅ дСмонстрират Π³Ρ€Π°Ρ„ΠΈΡ‡Π½Π°Ρ‚Π° структура Π½Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. ΠŸΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Π² RDF Ρ‚Ρ€ΠΎΠΉΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ 500 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° СкзСмпляра.

Π’ΡŠΠ· основа Π½Π° ΠΎΠΏΠΈΡ‚Π° ΠΈ впСчатлСнията Π½Π° ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈΡ‚Π΅ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, с ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ, прСдставямС обстановка, Π² която Ρ‚Π°Π·ΠΈ Π±Π°Π·Π° ΠΎΡ‚ знания сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²Π° информация. ОсвСн Ρ‚ΠΎΠ²Π° ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅ Π΄Π° сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Ρ€Π΅Π· добавянС Π½Π° Π½ΠΎΠ²ΠΈ вСрсии ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‡Π»Π΅Π½ΠΎΠ²Π΅ Π½Π° Π³Ρ€ΡƒΠΏΠ°Ρ‚Π°.

Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€Π°Π½Π΅

ΠšΠ°ΠΊΡ‚ΠΎ сС ΠΎΡ‡Π°ΠΊΠ²Π°ΡˆΠ΅, инсталиранСто Π½Π° Amazon Neptune Π΅ лСсно. Вя Π΅ доста ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° стартиратС Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ само с няколко кликвания. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ става Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° конфигурация, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° информация Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π·Π° Π½Π°ΠΌΠΈΡ€Π°Π½Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ искамС Π΄Π° посочим Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€.

ΠŸΡŠΡ€Π²ΠΈ впСчатлСния ΠΎΡ‚ Amazon Neptune
Π•ΠΊΡ€Π°Π½Π½Π° снимка Π½Π° конфигурация Π·Π° Π³Ρ€ΡƒΠΏΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ

Amazon ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Neptune сС фокусира Π²ΡŠΡ€Ρ…Ρƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΈ натоварвания с ниска латСнтност, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ Π½Π° заявката ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ 120 сСкунди. НиС ΠΎΠ±Π°Ρ‡Π΅ тСствахмС ΠΌΠ½ΠΎΠ³ΠΎ случаи Π½Π° Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°, Π² ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ достигахмС Ρ‚ΠΎΠ²Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅. Π’ΠΎΠ²Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΎ Ρ‡Ρ€Π΅Π· създаванС Π½Π° Π½ΠΎΠ²Π° Π³Ρ€ΡƒΠΏΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π° Neptune ΠΈ настройка neptune_query_timeout ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎΡ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅.

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ

По-Π΄ΠΎΠ»Ρƒ Ρ‰Π΅ обсъдим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΊΠ°ΠΊ Π·Π°Ρ€Π΅Π΄ΠΈΡ…ΠΌΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ MusicBrainz Π² Neptune.

Π’Ρ€ΡŠΠ·ΠΊΠΈ Π² Ρ‚Ρ€ΠΎΠΉΠΊΠΈ

ΠŸΡŠΡ€Π²ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ…ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ MusicBrainz Π² RDF Ρ‚Ρ€ΠΎΠΉΠΊΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ Π·Π° всяка Ρ‚Π°Π±Π»ΠΈΡ†Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ…ΠΌΠ΅ шаблон, ΠΊΠΎΠΉΡ‚ΠΎ опрСдСля ΠΊΠ°ΠΊ всяка ΠΊΠΎΠ»ΠΎΠ½Π° Π΅ прСдставСна Π² Ρ‚Ρ€ΠΎΠΉΠΊΠ°Ρ‚Π°. Π’ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ всСки Ρ€Π΅Π΄ ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Ρ Π΅ ΡΡŠΠΏΠΎΡΡ‚Π°Π²Π΅Π½ с дванадСсСт RDF Ρ‚Ρ€ΠΎΠΉΠΊΠΈ.

<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/gid> "${gid}"^^<http://www.w3.org/2001/XMLSchema#string> .
 
 
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/name> "${name}"^^<http://www.w3.org/2001/XMLSchema#string> .
 
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/sort-name> "${sort_name}"^^<http://www.w3.org/2001/XMLSchema#string> .
 
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/begin-date> "${begin_date_year}-${begin_date_month}-${begin_date_day}"^^xsd:<http://www.w3.org/2001/XMLSchema#date> .
 
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/end-date> "${end_date_year}-${end_date_month}-${end_date_day}"^^xsd:<http://www.w3.org/2001/XMLSchema#date> .
 
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/type> <http://musicbrainz.foo/artist-type/${type}> .
 
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/area> <http://musicbrainz.foo/area/${area}> .
 
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/gender> <http://musicbrainz.foo/gender/${gender}> .
 
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/comment> "${comment}"^^<http://www.w3.org/2001/XMLSchema#string> .
 
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/edits-pending> "${edits_pending}"^^<http://www.w3.org/2001/XMLSchema#int> .
 
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/last-updated> "${last_updated}"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
 
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/ended> "${ended}"^^<http://www.w3.org/2001/XMLSchema#boolean> .

Π³Ρ€ΡƒΠΏΠΎΠ²ΠΎ ΠΊΠ°Ρ‡Π²Π°Π½Π΅

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚ Π½Π°Ρ‡ΠΈΠ½ Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ количСства Π΄Π°Π½Π½ΠΈ Π² Neptune Π΅ Ρ‡Ρ€Π΅Π· процСса Π½Π° Π³Ρ€ΡƒΠΏΠΎΠ²ΠΎ ΠΊΠ°Ρ‡Π²Π°Π½Π΅ Ρ‡Ρ€Π΅Π· S3. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΊΠ°Ρ‡ΠΈΡ‚Π΅ Π²Π°ΡˆΠΈΡ‚Π΅ Ρ‚Ρ€ΠΎΠΉΠ½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² S3, Π²ΠΈΠ΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚Π΅ ΠΊΠ°Ρ‡Π²Π°Π½Π΅Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° POST заявка. Π’ нашия случай бяха Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΎΠΊΠΎΠ»ΠΎ 24 часа Π·Π° 500 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ‚Ρ€ΠΈΠΏΠ»Π΅Ρ‚Π°. ΠžΡ‡Π°ΠΊΠ²Π°Ρ…ΠΌΠ΅ Π΄Π° Π΅ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ.

curl -X POST -H 'Content-Type: application/json' http://your-neptune-cluster:8182/loader -d '{
 
 
 "source" : "s3://your-s3-bucket",
 
 "format" : "ntriples",
 
 "iamRoleArn" : "arn:aws:iam::your-iam-user:role/NeptuneLoadFromS3",
 
 "region" : "eu-west-1",
 
 "failOnError" : "FALSE"
 
}'

Π—Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ Ρ‚ΠΎΠ·ΠΈ дълъг процСс всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ стартирамС Neptune, Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌ СкзСмпляра ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½Π° снимка, Π² която Ρ‚Π΅Π·ΠΈ Ρ‚Ρ€ΠΈΠΏΠ»Π΅Ρ‚ΠΈ Π²Π΅Ρ‡Π΅ бяха Π·Π°Ρ€Π΅Π΄Π΅Π½ΠΈ. Π˜Π·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½Π° снимка Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ, Π½ΠΎ всС ΠΏΠ°ΠΊ ΠΎΡ‚Π½Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ час, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Neptune станС Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° заявки.

ΠŸΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎΡ‚ΠΎ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ‚Ρ€ΠΈΠ·Π½Π°Ρ†ΠΈ Π² Neptune сС Π½Π°Ρ‚ΡŠΠΊΠ½Π°Ρ…ΠΌΠ΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ.

{
 
 
 "errorCode" : "PARSING_ERROR",
 
 "errorMessage" : "Content after '.' is not allowed",
 
 "fileName" : [...],
 
 "recordNum" : 25
 
}

Някои ΠΎΡ‚ тях бяха Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ синтактичния Π°Π½Π°Π»ΠΈΠ·, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎ-Π³ΠΎΡ€Π΅. Към днСшна Π΄Π°Ρ‚Π° всС ΠΎΡ‰Π΅ Π½Π΅ смС Ρ€Π°Π·Π±Ρ€Π°Π»ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ сС Π΅ ΠΎΠ±ΡŠΡ€ΠΊΠ°Π»ΠΎ Π² Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Малко ΠΏΠΎΠ²Π΅Ρ‡Π΅ подробности ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π±ΠΈΡ…Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Π»ΠΈ Ρ‚ΡƒΠΊ. Π’Π°Π·ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ° възникна Π·Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ 1% ΠΎΡ‚ Π²ΠΌΡŠΠΊΠ½Π°Ρ‚ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΎΠΉΠΊΠΈ. Но Ρ‰ΠΎ сС отнася Π΄ΠΎ тСстванСто Π½Π° Neptune, Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ΅Ρ…ΠΌΠ΅ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ само с 99% ΠΎΡ‚ информацията ΠΎΡ‚ MusicBrainz.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ лСсно Π·Π° Ρ…ΠΎΡ€Π°Ρ‚Π°, Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ със SPARQL, ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ RDF Ρ‚Ρ€ΠΎΠΉΠΊΠΈΡ‚Π΅ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½ΠΈ с ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ.

ΠŸΠΎΡ‚ΠΎΡ‡Π½ΠΎ изтСглянС

ΠšΠ°ΠΊΡ‚ΠΎ Π±Π΅ спомСнато ΠΏΠΎ-Π³ΠΎΡ€Π΅, Π½ΠΈΠ΅ Π½Π΅ искамС Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Neptune ΠΊΠ°Ρ‚ΠΎ статично Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π° ΠΏΠΎ-скоро ΠΊΠ°Ρ‚ΠΎ гъвкава ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‰Π° сС Π±Π°Π·Π° ΠΎΡ‚ знания. Π’Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π΄Π° въвСдСм Π½ΠΎΠ²ΠΈ Ρ‚Ρ€ΠΎΠΉΠΊΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π±Π°Π·Π°Ρ‚Π° ΠΎΡ‚ знания сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° Π½ΠΎΠ² Π°Π»Π±ΡƒΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π°Ρ‚ΠΎ искамС Π΄Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎΡ‚ΠΎ Π·Π½Π°Π½ΠΈΠ΅.

Neptune ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° въвСТданС Ρ‡Ρ€Π΅Π· SPARQL заявки, ΠΊΠ°ΠΊΡ‚ΠΎ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΈΠ·Π²Π°Π΄ΠΊΠΈ. По-Π΄ΠΎΠ»Ρƒ Ρ‰Π΅ обсъдим ΠΈ Π΄Π²Π°Ρ‚Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

Π•Π΄Π½Π° ΠΎΡ‚ Ρ†Π΅Π»ΠΈΡ‚Π΅ Π½ΠΈ бСшС Π΄Π° въвСТдамС Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½. ΠžΠ±ΠΌΠΈΡΠ»Π΅Ρ‚Π΅ ΠΈΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Π»Π±ΡƒΠΌ Π² Π½ΠΎΠ²Π° страна. ΠžΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° MusicBrainz Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π·Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π°Π»Π±ΡƒΠΌΠΈ, сингли, EP-Ρ‚Π° ΠΈ Ρ‚.Π½., Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° сС добавя Π½ΠΎΠ² запис освобоТдаванС-страна. Π’ RDF ΡΠ²ΡŠΡ€Π·Π²Π°ΠΌΠ΅ Ρ‚Π°Π·ΠΈ информация с Π΄Π²Π΅ Π½ΠΎΠ²ΠΈ Ρ‚Ρ€ΠΎΠΉΠΊΠΈ.

INSERT DATA { <http://musicbrainz.foo/release-country/737041> <http://musicbrainz.foo/release> <http://musicbrainz.foo/release/435759> };INSERT DATA { <http://musicbrainz.foo/release-country/737041> <http://musicbrainz.foo/date-year> "2018"^^<http://www.w3.org/2001/XMLSchema#int> };

Π”Ρ€ΡƒΠ³Π° Ρ†Π΅Π» бСшС Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π½ΠΎΠ²ΠΈ знания ΠΎΡ‚ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ‚Π°. Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ искамС Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ броя издания, ΠΊΠΎΠΈΡ‚ΠΎ всСки ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π» Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π» Π² ΠΊΠ°Ρ€ΠΈΠ΅Ρ€Π°Ρ‚Π° си. Π’Π°ΠΊΠ°Π²Π° заявка Π΅ доста слоТна ΠΈ ΠΎΡ‚Π½Π΅ΠΌΠ° Π½Π°Π΄ 20 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Π² Neptune, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ трябва Π΄Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°, Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Ρ‚Π΅Π·ΠΈ Π½ΠΎΠ²ΠΈ знания Π² Π΄Ρ€ΡƒΠ³Π° заявка. Π’Π°ΠΊΠ° Ρ‡Π΅ добавямС Ρ‚Ρ€ΠΎΠΉΠΊΠΈ с Ρ‚Π°Π·ΠΈ информация ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ към Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ‚Π°, въвСТдайки Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ подзаявката.

INSERT {
 
 
  ?artist_credit <http://musicbrainz.foo/number-of-releases> ?number_of_releases
 
} WHERE {
 
  SELECT ?artist_credit (COUNT(*) as ?number_of_releases)
 
  WHERE {
 
     ?artist_credit <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist-credit> .
 
     ?release_group <http://musicbrainz.foo/artist-credit> ?artist_credit .
 
     ?release_group <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/release-group> .
 
     ?release_group <http://musicbrainz.foo/name> ?release_group_name .
 
  }
 
  GROUP BY ?artist_credit
 
}

ДобавянСто Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΈ Ρ‚Ρ€ΠΎΠΉΠΊΠΈ към Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ‚Π° ΠΎΡ‚Π½Π΅ΠΌΠ° няколко милисСкунди, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π·Π° вмъкванС Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ подзаявка зависи ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° самата подзаявка.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π½Π΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ чСсто, Neptune ΡΡŠΡ‰ΠΎ Π²ΠΈ позволява Π΄Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Ρ‚Π΅ Ρ‚Ρ€ΠΈΠ·Π½Π°Ρ†ΠΈ въз основа Π½Π° ΠΏΡ€ΠΎΠ±ΠΈ ΠΈΠ»ΠΈ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° информация.

SPARQL заявки

Π‘ Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° ΠΏΠΎΠ΄ΠΈΠ·Π²Π°Π΄ΠΊΠ°, която Π²Ρ€ΡŠΡ‰Π° броя Π½Π° изданията Π·Π° всСки ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π», Π½ΠΈΠ΅ Π²Π΅Ρ‡Π΅ Π²ΡŠΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ ΠΏΡŠΡ€Π²ΠΈΡ Ρ‚ΠΈΠΏ заявка, Π½Π° която искамС Π΄Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Neptune. Π‘ΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° заявка Π² Neptune Π΅ лСсно - ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Ρ‚Π΅ POST заявка Π΄ΠΎ ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° SPARQL, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ:

curl -X POST --data-binary 'query=SELECT ?artist ?p ?o where {?artist <http://musicbrainz.foo/name> "Elton John" . ?artist ?p ?o . }' http://your-neptune-cluster:8182/sparql

ОсвСн Ρ‚ΠΎΠ²Π° Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ заявка, която Π²Ρ€ΡŠΡ‰Π° ΠΏΡ€ΠΎΡ„ΠΈΠ» Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π», ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ информация Π·Π° тяхното ΠΈΠΌΠ΅, Π²ΡŠΠ·Ρ€Π°ΡΡ‚ ΠΈΠ»ΠΈ страна Π½Π° ΠΏΡ€ΠΎΠΈΠ·Ρ…ΠΎΠ΄. Π˜ΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° са ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Π»ΠΈΡ†Π°, Π³Ρ€ΡƒΠΏΠΈ ΠΈΠ»ΠΈ оркСстри. Π’ допълнСниС, Π½ΠΈΠ΅ допълвамС Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ с информация Π·Π° броя Π½Π° изданията, ΠΈΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΎΡ‚ артисти ΠΏΡ€Π΅Π· Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π°. Π—Π° солови ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»ΠΈ добавямС ΡΡŠΡ‰ΠΎ информация Π·Π° Π³Ρ€ΡƒΠΏΠΈΡ‚Π΅, Π² ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»ΡΡ‚ Π΅ участвал всяка Π³ΠΎΠ΄ΠΈΠ½Π°.

SELECT
 
 
 ?artist_name ?year
 
 ?releases_in_year ?releases_up_year
 
 ?artist_type_name ?releases
 
 ?artist_gender ?artist_country_name
 
 ?artist_begin_date ?bands
 
 ?bands_in_year
 
WHERE {
 
 # Bands for each artist
 
 {
 
   SELECT
 
     ?year
 
     ?first_artist
 
     (group_concat(DISTINCT ?second_artist_name;separator=",") as ?bands)
 
     (COUNT(DISTINCT ?second_artist_name) AS ?bands_in_year)     
 
   WHERE {
 
     VALUES ?year {
 
       1960 1961 1962 1963 1964 1965 1966 1967 1968 1969
 
       1970 1971 1972 1973 1974 1975 1976 1977 1978 1979
 
       1980 1981 1982 1983 1984 1985 1986 1987 1988 1989
 
       1990 1991 1992 1993 1994 1995 1996 1997 1998 1999
 
       2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
 
       2010 2011 2012 2013 2014 2015 2016 2017 2018
 
     }   
 
     ?first_artist <http://musicbrainz.foo/name> "Elton John" .
 
     ?first_artist <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist> .
 
     ?first_artist <http://musicbrainz.foo/type> ?first_artist_type .
 
     ?first_artist <http://musicbrainz.foo/name> ?first_artist_name .
 

 
 
     ?second_artist <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist> .
 
     ?second_artist <http://musicbrainz.foo/type> ?second_artist_type .
 
     ?second_artist <http://musicbrainz.foo/name> ?second_artist_name .
 
     optional { ?second_artist <http://musicbrainz.foo/begin-date-year> ?second_artist_begin_date_year . }
 
     optional { ?second_artist <http://musicbrainz.foo/end-date-year> ?second_artist_end_date_year . }
 

 
 
     ?l_artist_artist <http://musicbrainz.foo/entity0> ?first_artist .
 
     ?l_artist_artist <http://musicbrainz.foo/entity1> ?second_artist .
 
     ?l_artist_artist <http://musicbrainz.foo/link> ?link .
 

 
 
     optional { ?link <http://musicbrainz.foo/begin-date-year> ?link_begin_date_year . }
 
     optional { ?link <http://musicbrainz.foo/end-date-year> ?link_end_date_year . }
 

 
 
     FILTER (!bound(?link_begin_date_year) || ?link_begin_date_year <= ?year)
 
     FILTER (!bound(?link_end_date_year) || ?link_end_date_year >= ?year)
 
     FILTER (!bound(?second_artist_begin_date_year) || ?second_artist_begin_date_year <= ?year)
 
     FILTER (!bound(?second_artist_end_date_year) || ?second_artist_end_date_year >= ?year)
 
     FILTER (?first_artist_type NOT IN (<http://musicbrainz.foo/artist-type/2>, <http://musicbrainz.foo/artist-type/5>, <http://musicbrainz.foo/artist-type/6>))
 
     FILTER (?second_artist_type IN (<http://musicbrainz.foo/artist-type/2>, <http://musicbrainz.foo/artist-type/5>, <http://musicbrainz.foo/artist-type/6>))
 
   }
 
   GROUP BY ?first_artist ?year
 
 }
 
 # Releases up to a year
 
 {
 
   SELECT
 
     ?artist
 
     ?year
 
     (group_concat(DISTINCT ?release_name;separator=",") as ?releases)
 
     (COUNT(*) as ?releases_up_year)
 
   WHERE {
 
     VALUES ?year {
 
       1960 1961 1962 1963 1964 1965 1966 1967 1968 1969
 
       1970 1971 1972 1973 1974 1975 1976 1977 1978 1979
 
       1980 1981 1982 1983 1984 1985 1986 1987 1988 1989
 
       1990 1991 1992 1993 1994 1995 1996 1997 1998 1999
 
       2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
 
       2010 2011 2012 2013 2014 2015 2016 2017 2018 
 
     }
 

 
 
     ?artist <http://musicbrainz.foo/name> "Elton John" .
 

 
 
     ?artist_credit_name <http://musicbrainz.foo/artist-credit> ?artist_credit .
 
     ?artist_credit_name <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist-credit-name> .
 
     ?artist_credit_name <http://musicbrainz.foo/artist> ?artist .
 
     ?artist_credit <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist-credit> .
 

 
 
     ?release_group <http://musicbrainz.foo/artist-credit> ?artist_credit .
 
     ?release_group <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/release-group> .
 
     ?release_group <http://musicbrainz.foo/name> ?release_group_name .
 
     ?release <http://musicbrainz.foo/release-group> ?release_group .
 
     ?release <http://musicbrainz.foo/name> ?release_name .
 
     ?release_country <http://musicbrainz.foo/release> ?release .
 
     ?release_country <http://musicbrainz.foo/date-year> ?release_country_year .
 

 
 
     FILTER (?release_country_year <= ?year)
 
   }
 
   GROUP BY ?artist ?year
 
 }
 
 # Releases in a year
 
 {
 
   SELECT ?artist ?year (COUNT(*) as ?releases_in_year)
 
   WHERE {
 
     VALUES ?year {
 
       1960 1961 1962 1963 1964 1965 1966 1967 1968 1969
 
       1970 1971 1972 1973 1974 1975 1976 1977 1978 1979
 
       1980 1981 1982 1983 1984 1985 1986 1987 1988 1989
 
       1990 1991 1992 1993 1994 1995 1996 1997 1998 1999
 
       2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
 
       2010 2011 2012 2013 2014 2015 2016 2017 2018 
 
     }
 

 
 
     ?artist <http://musicbrainz.foo/name> "Elton John" .
 

 
 
     ?artist_credit_name <http://musicbrainz.foo/artist-credit> ?artist_credit .
 
     ?artist_credit_name <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist-credit-name> .
 
     ?artist_credit_name <http://musicbrainz.foo/artist> ?artist .
 
     ?artist_credit <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist-credit> .
 

 
 
     ?release_group <http://musicbrainz.foo/artist-credit> ?artist_credit .
 
     ?release_group <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/release-group> .
 
     ?release_group <http://musicbrainz.foo/name> ?release_group_name .
 
     ?release <http://musicbrainz.foo/release-group> ?release_group .
 
     ?release_country <http://musicbrainz.foo/release> ?release .
 
     ?release_country <http://musicbrainz.foo/date-year> ?release_country_year .
 

 
 
     FILTER (?release_country_year = ?year)
 
   }
 
   GROUP BY ?artist ?year
 
 }
 
 # Master data
 
 {
 
   SELECT DISTINCT ?artist ?artist_name ?artist_gender ?artist_begin_date ?artist_country_name
 
   WHERE {
 
     ?artist <http://musicbrainz.foo/name> ?artist_name .
 
     ?artist <http://musicbrainz.foo/name> "Elton John" .
 
     ?artist <http://musicbrainz.foo/gender> ?artist_gender_id .
 
     ?artist_gender_id <http://musicbrainz.foo/name> ?artist_gender .
 
     ?artist <http://musicbrainz.foo/area> ?birth_area .
 
     ?artist <http://musicbrainz.foo/begin-date-year> ?artist_begin_date.
 
     ?birth_area <http://musicbrainz.foo/name> ?artist_country_name .
 

 
 
     FILTER(datatype(?artist_begin_date) = xsd:int)
 
   }

ΠŸΠΎΡ€Π°Π΄ΠΈ слоТността Π½Π° Ρ‚Π°ΠΊΠ°Π²Π° заявка, Π±ΠΈΡ…ΠΌΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΠΌ заявки Π·Π° Ρ‚ΠΎΡ‡ΠΊΠΈ само Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π», ΠΊΠ°Ρ‚ΠΎ Π•Π»Ρ‚ΡŠΠ½ Π”ΠΆΠΎΠ½, Π½ΠΎ Π½Π΅ ΠΈ Π·Π° всички ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»ΠΈ. Neptune ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π° Ρ‚Π°ΠΊΠ°Π²Π° заявка Ρ‡Ρ€Π΅Π· пусканС Π½Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ Π² ΠΏΠΎΠ΄ΠΈΠ·Π±ΠΎΡ€ΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ всяка сСлСкция трябва Π΄Π° бъдС Ρ€ΡŠΡ‡Π½ΠΎ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π° ΠΏΠΎ ΠΈΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π».

Neptune ΠΈΠΌΠ° ΠΊΠ°ΠΊΡ‚ΠΎ почасови, Ρ‚Π°ΠΊΠ° ΠΈ I/O такси. Π—Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ тСстванС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ минималния СкзСмпляр Π½Π° Neptune, ΠΊΠΎΠΉΡ‚ΠΎ струва $0,384/час. Π’ случая Π½Π° заявката ΠΏΠΎ-Π³ΠΎΡ€Π΅, която изчислява ΠΏΡ€ΠΎΡ„ΠΈΠ»Π° Π·Π° Π΅Π΄ΠΈΠ½ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ, Amazon Π½ΠΈ таксува дСсСтки хиляди I/O ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° Ρ†Π΅Π½Π° ΠΎΡ‚ $0.02.

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ

ΠŸΡŠΡ€Π²ΠΎ, Amazon Neptune спазва ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ обСщанията си. ΠšΠ°Ρ‚ΠΎ управлявана услуга, Ρ‚ΠΎΠ²Π° Π΅ Π³Ρ€Π°Ρ„ΠΈΡ‡Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, която Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ лСсна Π·Π° инсталиранС ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π΅Π· ΠΌΠ½ΠΎΠ³ΠΎ конфигурация. Π•Ρ‚ΠΎ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ констатации:

  • Π“Ρ€ΡƒΠΏΠΎΠ²ΠΎΡ‚ΠΎ ΠΊΠ°Ρ‡Π²Π°Π½Π΅ Π΅ лСсно, Π½ΠΎ Π±Π°Π²Π½ΠΎ. Но ΠΌΠΎΠΆΠ΅ Π΄Π° сС услоТни със ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ°, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ.
  • ΠŸΠΎΡ‚ΠΎΡ‡Π½ΠΎ изтСглянС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΡ‡Π°ΠΊΠ²Π°Ρ…ΠΌΠ΅, ΠΈ бСшС доста Π±ΡŠΡ€Π·ΠΎ
  • ЗаявкитС са прости, Π½ΠΎ Π½Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ, Π·Π° Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½ΠΈ заявки
  • SPARQL заявкитС трябва Π΄Π° сС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚ Ρ€ΡŠΡ‡Π½ΠΎ
  • ΠŸΠ»Π°Ρ‰Π°Π½ΠΈΡΡ‚Π° Π½Π° Amazon са Ρ‚Ρ€ΡƒΠ΄Π½ΠΈ Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС ΠΎΡ†Π΅Π½ΠΈ количСството Π΄Π°Π½Π½ΠΈ, сканирани ΠΎΡ‚ SPARQL заявка.

Π’ΠΎΠ²Π° Π΅ всичко. Π—Π°ΠΏΠΈΡˆΠΈ сС Π·Π° Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π΅Π½ ΡƒΠ΅Π±ΠΈΠ½Π°Ρ€ Π½Π° Ρ‚Π΅ΠΌΠ° β€žΠ‘Π°Π»Π°Π½ΡΠΈΡ€Π°Π½Π΅ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎβ€œ.


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

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