github.com/apache/arrow/go/v7@v7.0.1/parquet/doc.go (about)

     1  // Licensed to the Apache Software Foundation (ASF) under one
     2  // or more contributor license agreements.  See the NOTICE file
     3  // distributed with this work for additional information
     4  // regarding copyright ownership.  The ASF licenses this file
     5  // to you under the Apache License, Version 2.0 (the
     6  // "License"); you may not use this file except in compliance
     7  // with the License.  You may obtain a copy of the License at
     8  //
     9  // http://www.apache.org/licenses/LICENSE-2.0
    10  //
    11  // Unless required by applicable law or agreed to in writing, software
    12  // distributed under the License is distributed on an "AS IS" BASIS,
    13  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  // See the License for the specific language governing permissions and
    15  // limitations under the License.
    16  
    17  // Package parquet provides an implementation of Apache Parquet for Go.
    18  //
    19  // Apache Parquet is an open-source columnar data storage format using the record
    20  // shredding and assembly algorithm to accomodate complex data structures which
    21  // can then be used to efficiently store the data.
    22  //
    23  // This implementation is a native go implementation for reading and writing the
    24  // parquet file format.
    25  //
    26  // Install
    27  //
    28  // You can download the library and cli utilities via:
    29  //   go get -u github.com/apache/arrow/go/v7/parquet
    30  //   go install github.com/apache/arrow/go/v7/parquet/cmd/parquet_reader@latest
    31  //   go install github.com/apache/arrow/go/v7/parquet/cmd/parquet_schema@latest
    32  //
    33  // Modules
    34  //
    35  // This top level parquet package contains the basic common types and reader/writer
    36  // properties along with some utilities that are used throughout the other modules.
    37  //
    38  // The file module contains the functions for directly reading/writing parquet files
    39  // including Column Readers and Column Writers.
    40  //
    41  // The metadata module contains the types for managing the lower level file/rowgroup/column
    42  // metadata inside of a ParquetFile including inspecting the statistics.
    43  //
    44  // The pqarrow module contains helper functions and types for converting directly
    45  // between Parquet and Apache Arrow formats.
    46  //
    47  // The schema module contains the types for manipulating / inspecting / creating
    48  // parquet file schemas.
    49  //
    50  // Primitive Types
    51  //
    52  // The Parquet Primitive Types and their corresponding Go types are Boolean (bool),
    53  // Int32 (int32), Int64 (int64), Int96 (parquet.Int96), Float (float32), Double (float64),
    54  // ByteArray (parquet.ByteArray) and FixedLenByteArray (parquet.FixedLenByteArray).
    55  //
    56  // Encodings
    57  //
    58  // The encoding types supported in this package are:
    59  // Plain, Plain/RLE Dictionary, Delta Binary Packed (only integer types), Delta Byte Array
    60  // (only ByteArray), Delta Length Byte Array (only ByteArray)
    61  //
    62  // Tip: Some platforms don't necessarily support all kinds of encodings. If you're not
    63  // sure what to use, just use Plain and Dictionary encoding.
    64  package parquet
    65  
    66  //go:generate go run golang.org/x/tools/cmd/stringer -type=Version -linecomment
    67  //go:generate thrift -o internal -r --gen go ../../cpp/src/parquet/parquet.thrift