Ich bin ein Doktorand von der Singapore Management University. Derzeit arbeite ich an der Carnegie Mellon University an einem Forschungsprojekt, das die historischen Ereignisse aus dem Github Archiv ( Ссылка ) benötigt. Ich habe festgestellt, dass Google Bigquery Github-Archivdaten enthält. Also führe ich ein Programm aus, um Daten mit dem Google Bigquery-Dienst zu crawlen.
Ich habe gerade festgestellt, dass der Preis von Google Bigquery Shows auf der Konsole nicht in Echtzeit aktualisiert wird ... Während ich das Programm für ein paar Stunden startete, war die Gebühr nur 4 Dollar plus, also dachte ich den Preis ist vernünftig und ich habe das Programm weitergeführt. Nach 1 ~ 2 Tagen habe ich den Preis erneut am 13. September 2013 überprüft, der Preis wurde 1388 $ ... Ich habe daher sofort aufgehört mit Google Bigquery Service. Und gerade habe ich den Preis nochmal überprüft, es stellt sich heraus, dass ich 4179 $ bezahlen muss ...
Es ist meine Schuld, dass ich nicht erkannt habe, dass ich diese große Menge an Geld für die Ausführung von Anfragen und die Beschaffung von Daten von Google Bigquery bezahlen muss.
Dieses Projekt dient nur der Forschung, nicht zu kommerziellen Zwecken. Ich würde gerne wissen, ob es möglich ist, auf die Gebühr zu verzichten. Ich brauche wirklich die Hilfe des [Google Bigquery-Teams].
Vielen Dank & amp; Freundliche Grüße, Lisa
Ein Jahr später update:
Bitte beachten Sie einige große Entwicklungen seit dieser Situation:
Die BigQuery-Preisgestaltung basiert auf der Menge der abgefragten Daten. Eines seiner Highlights ist, wie einfach es skaliert werden kann, von wenigen Gigabyte bis zu Terabyte in wenigen Sekunden.
Die lineare Skalierung der Preise ist ein Feature: Die meisten (oder alle?) anderen Datenbanken, die ich kenne, würden exponentiell teurere Ressourcen benötigen oder einfach nicht in der Lage sein, mit diesen Datenmengen umzugehen - zumindest nicht in einem vernünftigen Zeitrahmen / p>
Die lineare Skalierung bedeutet also, dass eine Abfrage über ein Terabyte 1000-mal teurer ist als eine Abfrage über ein Gigabyte. BigQuery-Benutzer müssen dies beachten und entsprechend planen. Für diese Zwecke bietet BigQuery das "dry run" -Flag, mit dem man genau sehen kann, wie viele Daten vor dem Ausführen der Abfrage abgefragt werden - und entsprechend anpassen.
In diesem Fall hat WeiGong eine 105-GB-Tabelle abgefragt. Zehn SELECT * LIMIT 10
-Abfragen werden schnell zu einem Terabyte an Daten und so weiter.
Es gibt Möglichkeiten, dieselben Abfragen viel weniger Daten zu verbrauchen:
SELECT * LIMIT 10
abzufragen, rufen Sie nur die Spalten auf, nach denen Sie suchen. BigQuery berechnet basierend auf den von Ihnen abgefragten Spalten unnötige Kosten und verursacht unnötige Kosten. Beispiel: SELECT * ...
fragt 105 GB ab, während SELECT repository_url, repository_name, payload_ref_type, payload_pull_request_deletions FROM [githubarchive:github.timeline]
nur 8,72 GB durchläuft, wodurch diese Abfrage mehr als 10 Mal weniger teuer wird.
Anstelle von "SELECT *" verwenden Sie tabledata.list, wenn Sie die gesamte Tabelle herunterladen möchten. Es ist kostenlos.
Die Github-Archivtabelle enthält Daten für alle Zeiten. Partitionieren Sie es, wenn Sie nur Daten für einen Monat sehen möchten.
Wenn Sie beispielsweise alle Januar-Daten mit einer Abfrage extrahieren, wird eine neue Tabelle mit nur 91,7 MB erstellt. Die Abfrage dieser Tabelle ist tausend Mal billiger als die große!
%Vor%Kombiniert man diese Methoden, kann man von einer 4000-Dollar-Rechnung auf eine 4-Dollar-Note für die gleiche Menge schneller und aufschlussreicher Ergebnisse wechseln.
(Ich arbeite mit dem Eigentümer des Github-Archivs zusammen, um sie dazu zu bringen, monatliche Daten statt einer monolithischen Tabelle zu speichern, um dies noch einfacher zu machen)
Tags und Links google-bigquery