Cloud-Dienste mit R nutzen: AzureQstor öffnet Zugriff auf Azure-Speicherservices

Über das Interface AzureQstor können Entwickler mit in R geschriebenen Anwendungen auf Nachrichtenspeicher in Azure Queue Storage zugreifen.

In Pocket speichern vorlesen Druckansicht
Wolke - Cloud

Cloud-Anbieter mit Rechenzentren in Deutschland werben nach der NSA-Affäre mit dem Argument Datenschutz.

(Bild: dpa, Stefan Sauer)

Lesezeit: 3 Min.
Von
  • Silke Hahn

Entwickler hinter dem Cloudyr-Projekt (sprich: "cloudier"), das den Einsatz der Programmiersprache R im Cloud Computing einfacher gestalten will, haben ein neues Tool auf GitHub veröffentlicht: AzureQstor ist ein in R geschriebenes Interface, das Zugriff auf die von AzureStor bereitgestellten Azure-Queue-Storage-Dienste verschafft.

Entwickler speichern Message Queues – wie sie beispielsweise in großer Zahl automatisiert von Sensoren eingehen –, um ein Arbeitsbacklog zur asynchronen Verarbeitung zu erstellen und berechtigten Nutzern dann über HTTP oder HTTPS orts- und zeitunabhängig Zugriff darauf zu verschaffen. Um die gegebenenfalls bis zu mehreren Millionen Nachrichten umfassenden Warteschlangen (eine einzelne Nachricht in der Queue kann bis zu 64 KByte groß sein) zwischenzulagern, bieten sich geeignete Cloud-Speicherdienste wie Azure Queue Storage (kurz: Qstor) an, die bis zur jeweiligen Kapazitätsgrenze des skalierbaren Speicherkontos ausgelastet werden können.

AzureQstor schafft für Entwickler, die die Programmiersprache R zur Arbeit in der Cloud nutzen, eine Anbindung an das Admin- und Client-seitige Interfacepaket AzureStor, mit dem sie Speicherdienste von Qstor steuern und verwalten können. AzureStor verwendet die Klassen R6 für das Admin-Interface, und das Client-Interface verwendet für das Verwalten des Speichers und die Dateiübertragung mehrere Methoden der Klasse S3. AzureQstor nutzt die Klassen S3 und R6, wobei der Endpunkt der Queue zwecks Kompatibilität mit AzureStor ein S3-Objekt ist, wohingegen die R6-Klassen für Queues und Nachrichten stehen.

Die Entwicklerversion des Pakets lässt sich mit folgendem Befehl devtools::install_github("Azure/AzureStor") installieren; Queues lassen sich wie folgt erstellen, aufrufen und entfernen:

library(AzureQstor)

endp <- storage_endpoint("https://mystorage.queue.core.windows.net", key="access_key")

# creating, retrieving and deleting queues
create_storage_queue(endp, "myqueue")
qu <- storage_queue(endp, "myqueue")

qu2 <- create_storage_queue(endp, "myqueue2")
delete_storage_queue(qu2)

Warteschlangenobjekte legen Methoden offen, um Nachrichten zu empfangen (das bedeutet in diesem Kontext schlicht: sie zu lesen), entfernen, aktualisieren und einzugeben. Der Code dafür schaut folgendermaßen aus:

qu$put_message("Hello queue")
msg <- qu$get_message()

msg$text
## [1] "Hello queue"

# get several messages at once
qu$get_messages(n=30)

Metadaten für eine Queue lassen sich beispielsweise so bearbeiten:

get_storage_metadata(qu)
set_storage_metadata(qu, name1="value1", name2="value2")

Mehr Informationen lassen sich der Ankündigung im R-Blog entnehmen. Eine Reihe praktischer Anwendungsbeispiele und zahlreiche Endpunkte finden sich auf GitHub. Das Package des neuen Interface steht auf GitHub in doppelter Form bereit: einmal auf dem GitHub-Space von Azure, und parallel auch gespiegelt bei Cloudyr. Ebenfalls auf GitHub findet sich das mit AzureQstor kompatible AzureStor-Paket. Eine Einführung in die Queue-Dienste der Azure Cloud ist bei Microsoft abrufbar. (sih)