2015-05-07 3 views
5

Ich bin neu in der ORC-Datei. Ich bin durch viele Blogs gegangen, habe aber kein klares Verständnis davon bekommen. Bitte helfen und klären Sie die folgenden Fragen.Hadoop ORC-Datei - Wie es funktioniert - Wie Sie Metadaten abrufen

  1. Kann ich Schema aus der ORC-Datei abrufen? Ich weiß in Avro, Schema kann abgerufen werden.

  2. Wie es tatsächlich Schema-Evolution bietet? Ich weiß, dass nur wenige Spalten hinzugefügt werden können. Aber wie es geht. Die einzige, die ich kenne, erstellen orc-Datei durch Laden von Daten in die Hive-Tabelle, die Daten im Ork-Format speichern.

  3. Wie funktioniert der ORC-Index? Was ich weiß ist für jeden Stripe Index wird beibehalten. Aber da die Datei nicht sortiert ist, hilft es, Daten in der Liste der Streifen nachzuschlagen. Wie hilft es, Streifen zu überspringen, während man nach den Daten sucht?

  4. Der Index wird für jede Spalte beibehalten. Wenn ja, wird es dann nicht mehr Speicher verbrauchen?

  5. Wie die ORC-Datei im Spaltenformat in die Hive-Tabelle passen kann, in der die Werte der einzelnen Spalten zusammen gespeichert werden. während die Hive-Tabelle Datensatz für Datensatz abruft. Wie werden beide zusammenpassen?

Antwort

0

Hey, ich kann dir nicht helfen, mit all Ihren Fragen, aber ich werde es versuchen

  1. Sie das filedump Dienstprogramm die Metadaten eines ORC-Datei auslesen können sehen here

  2. Ich bin sehr unsicher über die Schemaentwicklung, aber soweit ich weiß, unterstützt ORC die Evolution nicht.

  3. ORC-Index speichert die Summe von Minimum und Maximum. Wenn Ihre Daten also völlig unstrukturiert sind, müssten Sie wahrscheinlich noch viele Daten lesen. Aber seit der letzten Version von ORC können Sie einen zusätzlichen Bloom-Filter einsetzen, der bei der Eliminierung von Zeilengruppen genauer ist. Vielleicht könnte dies auch hilfreich sein orc-user mailing list

  4. ORC bietet einen Index für jede Spalte, aber es ist nur ein leichter Index. Sie speichern Informationen über Min/Max und Summe in numerischen Spalten im Dateifuß, Stripefooter und standardmäßig alle 10000 Zeilen. so braucht es nicht viel Platz

  5. Wenn Sie Ihre Tabelle in Orc Fileformat speichern, wird Hive einen bestimmten ORC Recordreader verwenden, um die Zeilen aus den Spalten zu extrahieren. Der Vorteil der säulen Lagerung ist, dass Sie nicht die ganze Reihe

3

1. und 2. Verwenden Hive und/oder HCatalog lesen müssen erstellen, lesen, aktualisieren ORC Tabellenstruktur im Hive Metastore (HCatalog ist nur eine Seitentür als Schwein ermöglicht/Sqoop/Zünd-/was auch immer die Metastore direkt zuzugreifen)

2.ALTER TABLE Befehl erlaubt/Drop-Spalten hinzufügen, was auch immer die Art der Lagerung ORC enthalten. Aber hüte dich vor einem ekligen Bug, der Vektorisierte Abstürze nach dem (zumindest in V0.13 und V0.14)

3. und 4. Der Begriff "Index" ist eher ungeeignet. Im Grunde ist es nur Min-/Max-Informationen beharrte in dem Streifen Fußzeile bei Schreibzeit, dann wird bei Lesezeit verwendet, um alle Streifen für das Überspringen, die eindeutig nicht die Erfüllung der WHERE Anforderungen, drastisch reduziert I/O in einigen Fällen (ein Trick, der populär geworden ist in Spalten speichert zB Infobright auf MySQL, sondern auch in Oracle Exadata Geräte [ "Smart Scan" von Oracle Marketing genannt])

5. Hive arbeitet mit "row store" Formate (Text, SequenceFile, AVRO) und "column store" Formate (ORC, Parkett) gleichermaßen. Der Optimierer verwendet nur bestimmte Strategien und Verknüpfungen in der anfänglichen Map-Phase - z. Stripe-Eliminierung, vektorisierte Operatoren - und natürlich sind die Serialisierungs-/Deserialisierungsphasen mit Spaltenspeichern etwas komplizierter.

Verwandte Themen