azure-kusto-ingest
Version:
Azure Data Explorer Ingestion SDK
150 lines • 4.13 kB
TypeScript
import { ColumnMapping } from "./columnMappings.js";
/**
* Data formats supported for Kusto ingestion.
*/
export declare enum DataFormat {
/**
* Comma-separated value.
*/
CSV = "csv",
/**
* Tab-separated value.
*/
TSV = "tsv",
/**
* Semicolon-separated value (the unique Azure Storage log format).
*/
SCSV = "scsv",
/**
* Start-Of-Header (CTRL-A)-separated value.
*/
SOHSV = "sohsv",
/**
* Pipeline-separated value (used by Cosmos).
*/
PSV = "psv",
/**
* Each record is a line and has just one field.
*/
TXT = "txt",
/**
* Whole stream is a single record with a single field.
*/
RAW = "raw",
/**
* Tab-separated value with '\' escaping character.
*/
TSVE = "tsve",
/**
* Data is in a JSON format, each line is record with a single JSON value.
*/
JSON = "json",
/**
* Data stream holds a single JSON value -- newlines are regular whitespace.
*/
SINGLEJSON = "singlejson",
/**
* The data stream is a concatenation of JSON documents (property bags all).
*/
MULTIJSON = "multijson",
/**
* Avro format.
*/
AVRO = "avro",
/**
* Parquet format.
*/
PARQUET = "parquet",
/**
* Microsoft Cosmos structured streams format
*/
SSTREAM = "sstream",
/**
* The Optimized Row Columnar (ORC)
*/
ORC = "orc",
/**
* Avro format for ingesting through avro2json.
*/
APACHEAVRO = "apacheavro",
/**
* W3C Extended Log File format.
*/
W3CLogFile = "w3clogfile"
}
export declare enum IngestionMappingKind {
CSV = "Csv",
JSON = "Json",
AVRO = "Avro",
PARQUET = "Parquet",
SSTREAM = "SStream",
ORC = "orc",
APACHEAVRO = "ApacheAvro",
W3CLOGFILE = "W3CLogFile"
}
export declare const dataFormatMappingKind: (dataFormat: DataFormat) => IngestionMappingKind;
export declare enum ValidationOptions {
DoNotValidate = 0,
ValidateCsvInputConstantColumns = 1,
ValidateCsvInputColumnLevelOnly = 2
}
export declare enum ValidationImplications {
Fail = 0,
BestEffort = 1
}
export declare class ValidationPolicy {
readonly validationOptions: ValidationOptions;
readonly validationImplications: ValidationImplications;
constructor(validationOptions?: ValidationOptions, validationImplications?: ValidationImplications);
toJSON(): Record<string, number>;
}
export declare enum ReportLevel {
FailuresOnly = 0,
DoNotReport = 1,
FailuresAndSuccesses = 2
}
export declare enum ReportMethod {
Queue = 0,
Table = 1,
QueueAndTable = 2
}
export interface IngestionPropertiesFields {
database?: string;
table?: string;
format?: DataFormat;
/**
* @deprecated. Use ingestionMappingColumns instead.
*/
ingestionMapping?: ColumnMapping[];
ingestionMappingColumns?: ColumnMapping[];
ingestionMappingReference?: string;
/**
* @deprecated. Use ingestionMappingKind instead.
*/
ingestionMappingType?: IngestionMappingKind;
ingestionMappingKind?: IngestionMappingKind;
additionalTags?: string[];
ingestIfNotExists?: string;
ingestByTags?: string[];
dropByTags?: string[];
flushImmediately?: boolean;
ignoreFirstRecord?: boolean;
reportLevel?: ReportLevel;
reportMethod?: ReportMethod;
validationPolicy?: ValidationPolicy;
additionalProperties?: {
[additional: string]: any;
} | null;
}
export interface IngestionProperties extends IngestionPropertiesFields {
}
export declare class IngestionProperties {
constructor(data: Partial<IngestionPropertiesFields>);
validate(): void;
merge(extraProps: IngestionPropertiesInput): IngestionProperties;
setDefaults(): void;
}
export type IngestionPropertiesInput = IngestionProperties | IngestionPropertiesFields | null | undefined;
export declare function shouldCompressFileByFormat(ingestionProperties?: IngestionPropertiesInput): boolean;
export default IngestionProperties;
//# sourceMappingURL=ingestionProperties.d.ts.map