2016-09-01 5 views
1

Kann jemand bitte vorschlagen, wie Partitionstabelle in Big Query erstellen? Beispiel: Angenommen, ich habe für das Jahr 2016 eine Protokolldatei im Google-Speicher. Ich habe alle Daten in einem Bucket nach Jahr, Monat und Datum gespeichert. Hier möchte ich eine Tabelle erstellen, die nach Datum partitioniert ist. Vielen Dank im VorausErstellen Partitionstabelle in große Abfrage

Antwort

1

Dokumentation für partitionierten Tabellen leicht ist hier: https://cloud.google.com/bigquery/docs/creating-partitioned-tables

In diesem Fall können Sie eine partiti schaffen würde Tabelle und füllen Sie die Partitionen mit den Daten. Sie können einen Abfrageauftrag ausführen, der GCS liest (und Daten für das bestimmte Datum filtert) und in die entsprechende Partition einer Tabelle schreibt. Um beispielsweise Daten für den 1. Mai 2016 zu laden, geben Sie die Zieltabelle als Tabelle $ 20160501 an.

Derzeit müssen Sie mehrere Abfrageaufträge ausführen, um diesen Prozess zu erreichen. Bitte beachten Sie, dass Ihnen für jeden Abfrageauftrag basierend auf verarbeiteten Byte Gebühren berechnet werden.

Bitte lesen Sie diesen Beitrag für einige weitere Details:

Migrating from non-partitioned to Partitioned tables

+0

Danke für die Antwort.Normalerweise, während ich in Big Data arbeitete, gibt es eine Option, um eine externe Tabelle mit partitioniertem Datum zu erstellen ("Create table foo (abc int) partitioniert von (Jahr int, Monat string, Datum int)"). Dann "Alter table foo add partition (2016," Mai "," 01 ")" ". Dann können wir gegen Tabelle als" Select * aus Tabelle where Jahr = 2016 und Monat = "Mai" und Datum = 01 "abfragen Mit einer Tabelle können wir mehrere Partitionen erstellen.In großen Abfrage, die ich suchte, gibt es eine Option wie das. Wenn Sie können mir bitte Probe Tabelle erstellen. Vielen Dank –

+0

Sie müssen die Tabelle separat von dem Job erstellen, der auffüllt die Partitionen.Um eine Tabelle zu erstellen, siehe hier: https://cloud.google.com/bigquery/docs/creating-partitioned-tables#creatining_a_partitioned_table –

+0

Es bedeutet, nehme an, wenn ich 1 Jahr Geschichte Daten habe dann nehme ich an, 356 Tabellen zu erstellen ?? –

1

Es gibt zwei Möglichkeiten:

Option 1
Sie sich täglich Datei in einzelne jeweiligen Tabelle laden können mit Namen wie YourLogs_YYYYMMDD
Details sehen, wie man Load Data from Cloud Storage

Nachdem die Tabellen erstellt Sie können auf sie entweder mit Table wildcard functions (Legacy SQL) oder Wildcard Table (Standar SQL) zugreifen. Siehe auch Querying Multiple Tables Using a Wildcard Table für weitere Beispiele

Option 2
Sie können Date-Partitioned Table erstellen (nur eine Tabelle - YourLogs) - aber Sie werden immer noch jede tägliche Datei in entsprechende Partition laden müssen - Creating and Updating Date-Partitioned Tables

siehe Nach Tabelle geladen ist Sie können Query Date-Partitioned Tables

+0

Danke Mikhil, Können Sie bitte ein Beispiel dafür geben? –

+1

finden Sie viele Beispiele in Links. versuche dann spezifische fragen zu stellen - sonst ist es zu weit !! –

+0

Ich habe ein Jahr Geschichte Daten in einzelnen Eimer in gs, Daten in Tag gespeichert, ich möchte Tabelle mit partitionierten Datum von großen Abfrage Web UI erstellen. Ich kann normale Tabelle erstellen, aber während der Abfrage werden alle Daten verarbeitet. Also hier möchte ich einen bestimmten Datumsbereich verarbeiten. Wie kann die Partitionstabelle aktualisiert werden? Ist es die gleiche Basistabelle wie die Partitionstabelle oder soll ich eine neue Tabelle mit Partition erstellen? Wie kann Partitionstabelle mit Datumsbereichspartitionen aktualisiert werden? Bitte hilf mir dabei? Danke im Voraus. –