/*
* Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the firehose-2015-08-04.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.KinesisFirehose.Model
{
///
/// A serializer to use for converting data to the ORC format before storing it in Amazon
/// S3. For more information, see Apache ORC.
///
public partial class OrcSerDe
{
private int? _blockSizeBytes;
private List _bloomFilterColumns = new List();
private double? _bloomFilterFalsePositiveProbability;
private OrcCompression _compression;
private double? _dictionaryKeyThreshold;
private bool? _enablePadding;
private OrcFormatVersion _formatVersion;
private double? _paddingTolerance;
private int? _rowIndexStride;
private int? _stripeSizeBytes;
///
/// Gets and sets the property BlockSizeBytes.
///
/// The Hadoop Distributed File System (HDFS) block size. This is useful if you intend
/// to copy the data from Amazon S3 to HDFS before querying. The default is 256 MiB and
/// the minimum is 64 MiB. Kinesis Data Firehose uses this value for padding calculations.
///
///
[AWSProperty(Min=67108864)]
public int BlockSizeBytes
{
get { return this._blockSizeBytes.GetValueOrDefault(); }
set { this._blockSizeBytes = value; }
}
// Check to see if BlockSizeBytes property is set
internal bool IsSetBlockSizeBytes()
{
return this._blockSizeBytes.HasValue;
}
///
/// Gets and sets the property BloomFilterColumns.
///
/// The column names for which you want Kinesis Data Firehose to create bloom filters.
/// The default is null
.
///
///
public List BloomFilterColumns
{
get { return this._bloomFilterColumns; }
set { this._bloomFilterColumns = value; }
}
// Check to see if BloomFilterColumns property is set
internal bool IsSetBloomFilterColumns()
{
return this._bloomFilterColumns != null && this._bloomFilterColumns.Count > 0;
}
///
/// Gets and sets the property BloomFilterFalsePositiveProbability.
///
/// The Bloom filter false positive probability (FPP). The lower the FPP, the bigger the
/// Bloom filter. The default value is 0.05, the minimum is 0, and the maximum is 1.
///
///
[AWSProperty(Min=0, Max=1)]
public double BloomFilterFalsePositiveProbability
{
get { return this._bloomFilterFalsePositiveProbability.GetValueOrDefault(); }
set { this._bloomFilterFalsePositiveProbability = value; }
}
// Check to see if BloomFilterFalsePositiveProbability property is set
internal bool IsSetBloomFilterFalsePositiveProbability()
{
return this._bloomFilterFalsePositiveProbability.HasValue;
}
///
/// Gets and sets the property Compression.
///
/// The compression code to use over data blocks. The default is SNAPPY
.
///
///
public OrcCompression Compression
{
get { return this._compression; }
set { this._compression = value; }
}
// Check to see if Compression property is set
internal bool IsSetCompression()
{
return this._compression != null;
}
///
/// Gets and sets the property DictionaryKeyThreshold.
///
/// Represents the fraction of the total number of non-null rows. To turn off dictionary
/// encoding, set this fraction to a number that is less than the number of distinct keys
/// in a dictionary. To always use dictionary encoding, set this threshold to 1.
///
///
[AWSProperty(Min=0, Max=1)]
public double DictionaryKeyThreshold
{
get { return this._dictionaryKeyThreshold.GetValueOrDefault(); }
set { this._dictionaryKeyThreshold = value; }
}
// Check to see if DictionaryKeyThreshold property is set
internal bool IsSetDictionaryKeyThreshold()
{
return this._dictionaryKeyThreshold.HasValue;
}
///
/// Gets and sets the property EnablePadding.
///
/// Set this to true
to indicate that you want stripes to be padded to the
/// HDFS block boundaries. This is useful if you intend to copy the data from Amazon S3
/// to HDFS before querying. The default is false
.
///
///
public bool EnablePadding
{
get { return this._enablePadding.GetValueOrDefault(); }
set { this._enablePadding = value; }
}
// Check to see if EnablePadding property is set
internal bool IsSetEnablePadding()
{
return this._enablePadding.HasValue;
}
///
/// Gets and sets the property FormatVersion.
///
/// The version of the file to write. The possible values are V0_11
and V0_12
.
/// The default is V0_12
.
///
///
public OrcFormatVersion FormatVersion
{
get { return this._formatVersion; }
set { this._formatVersion = value; }
}
// Check to see if FormatVersion property is set
internal bool IsSetFormatVersion()
{
return this._formatVersion != null;
}
///
/// Gets and sets the property PaddingTolerance.
///
/// A number between 0 and 1 that defines the tolerance for block padding as a decimal
/// fraction of stripe size. The default value is 0.05, which means 5 percent of stripe
/// size.
///
///
///
/// For the default values of 64 MiB ORC stripes and 256 MiB HDFS blocks, the default
/// block padding tolerance of 5 percent reserves a maximum of 3.2 MiB for padding within
/// the 256 MiB block. In such a case, if the available size within the block is more
/// than 3.2 MiB, a new, smaller stripe is inserted to fit within that space. This ensures
/// that no stripe crosses block boundaries and causes remote reads within a node-local
/// task.
///
///
///
/// Kinesis Data Firehose ignores this parameter when OrcSerDe$EnablePadding is
/// false
.
///
///
[AWSProperty(Min=0, Max=1)]
public double PaddingTolerance
{
get { return this._paddingTolerance.GetValueOrDefault(); }
set { this._paddingTolerance = value; }
}
// Check to see if PaddingTolerance property is set
internal bool IsSetPaddingTolerance()
{
return this._paddingTolerance.HasValue;
}
///
/// Gets and sets the property RowIndexStride.
///
/// The number of rows between index entries. The default is 10,000 and the minimum is
/// 1,000.
///
///
[AWSProperty(Min=1000)]
public int RowIndexStride
{
get { return this._rowIndexStride.GetValueOrDefault(); }
set { this._rowIndexStride = value; }
}
// Check to see if RowIndexStride property is set
internal bool IsSetRowIndexStride()
{
return this._rowIndexStride.HasValue;
}
///
/// Gets and sets the property StripeSizeBytes.
///
/// The number of bytes in each stripe. The default is 64 MiB and the minimum is 8 MiB.
///
///
[AWSProperty(Min=8388608)]
public int StripeSizeBytes
{
get { return this._stripeSizeBytes.GetValueOrDefault(); }
set { this._stripeSizeBytes = value; }
}
// Check to see if StripeSizeBytes property is set
internal bool IsSetStripeSizeBytes()
{
return this._stripeSizeBytes.HasValue;
}
}
}