(deprecated) Explore methods for efficiently loading large data sets into Ocient, optimized for performance and designed for massive-scale data warehousing.
Data Pipelines are now the preferred method for loading data into the Ocient® System. For details, see Load Data. The LAT loading functionality will be removed in version 29.0.
This section provides an overview of how loading works in Ocient along with step-by-step examples to illustrate the key aspects of the loading process. A separate LAT Reference provides a detailed explanation of the options for each data format and data source in Ocient.The key elements in the Loading system are:
Data Source — an origin source for data such as Amazon® Web Services℠ (AWS℠) S3, Apache® Kafka®, or Apache® Hadoop® Distributed File System (HDFS). Sources can be file or streaming in nature.
Data Type Extraction — the format for data extraction from the source. Examples include JSON, CSV, fixed width.
Transformations — the functions used to cleanse, route, and transform the incoming data.
Indexer — operated by the streamloader role on a Loader Node, the Indexer collects transformed records, stores in replicated pages, and converts into segments on the Foundation Nodes.
The LAT is a service within an Ocient System that is responsible for fetching data from file or streaming sources, extracting records, transforming them, and routing them to Ocient tables. The LAT runs as a standalone Java® process on Loader Nodes. It runs many parallel workers on high-core count servers to deliver the required parallelism for high-throughput loading. This diagram shows that a set of Loader Nodes sit between the data sources and the Foundation Nodes to control the loading flow and deliver high performance across many parallel workers.
The LAT loads data from two general types of data sources:
Streaming Sources — continuous loading of data from an ordered stream such as Kafka
File Sources — a discrete batch of data loaded from files until complete, typically from a file system or object storage solution like AWS S3
The main difference between these modes is whether the task continues indefinitely or ends when the batch of files has been loaded. In both cases, the LAT uses identical transformation and loading processes so that you can manage both with the same mental model and configuration files. Most data types are supported identically in streaming and batch processing modes, however some formats are not suitable for streaming due to their structure.A complete list of data sources and supported data formats is in LAT Data Types in Loading.While loading, the LAT coordinates with the Ocient System to manage backpressure of loading new records. New rows accumulate into a storage structure called a “page” which is a column-oriented storage mechanism. These pages are replicated across Foundation Nodes so that the specified redundancy is maintained in the event of a system outage. When enough pages have accumulated in a given time period (as defined by the TimeKey® bucket), the Indexer converts the pages into segment structures and places these on the Foundation Nodes for permanent storage as Segment Groups that span the width of the storage space.This process is transparent to analysts issuing queries. Rows are federated during queries so that pages and Segments are seamlessly presented in result sets.
The process and configuration that defines how data is loaded is referred to as a “pipeline.” A “pipeline” defines the end-to-end data flow in a loading task including the Source type (e.g., Kafka), the record Extraction for the data type (e.g., CSV extraction), the transformations on each record (e.g., JSON value extraction, data exploding, string concatenation, flattening), and where transformed data should be loaded in Ocient tables. As shown in this diagram, you set each of these sections in the pipeline file to control the LAT.
The LAT pipelines are managed through an HTTP API on the Loader Nodes or through a Command Line Interface (CLI) that provides a convenient way to work with the HTTP API. Because most Ocient Systems include many Loader Nodes, the CLI coordinates pipelines across the specified set of Loader Nodes.The LAT Client issues the command to the Loader Node to create the new pipeline with the pipeline configuration file. When started, the LAT uses the pipeline to execute a highly parallelized loading task across all Loader Nodes and Foundation Nodes to load the configured tables.Detailed instructions for configuring a pipeline are found in LAT Pipeline Configuration.
The Ocient System contains timeseries data. Loading in the data warehouse is considerably faster when data is presented in an ordered time sequence according to the TimeKey in a table. For most streaming sources, this is typically accomplished automatically with limited “out of order” data by the nature of the queue.However, for file based sources, it is not uncommon for data to be collected in folders in a manner that could appear haphazard to the loader. For this reason, it is critical that the sort_type setting for file based sources be used correctly to inform the LAT how files should be ordered.Read more about file sorting in Load From a File Source.
Loading in Ocient is designed to ensure exactly once processing of data. The LAT operates independent streams of data that each has a monotonically increasing row ID tied to an individual row in a File-based load or a partition offset in a Kafka-based load. Exactly-once processing is made possible through coordination between the loading components around a “Durability Horizon” that represents the highest record durably stored on non-volatile storage in each independent stream. In the event of a node outage or a replay of the data, the Durability Horizon automatically removes duplicate records in an efficient manner.It is important to understand how the LAT determines the unique row ID for different source types to ensure that data is loaded correctly. This is described in more detail in the LAT Reference Documentation.Learn more about the underlying approach used in Loading Characteristics and Concepts.
Ocient also supports schema changes on tables while loading data in a continuously streaming pipeline. Ocient maintains a table version with each running pipeline that serves as a loading contract until the load task complete. This ensures that existing pipelines are not interrupted when columns are added or removed from a table that is receiving new data. Ocient continues loading records using the original table version even after a change has been made to the tables. These dynamic schema changes from ALTER TABLE commands allow flexible updates to tables while complex loading processes are active. Pipelines can then be updated to add or remove data elements and match the altered schema, reducing the burden of coordination across systems.
The following examples walk through a simple loading example using the LAT for a streaming load off of Kafka and a file load off of S3. These examples are very similar due to the way the LAT uses a common language for all transformation and loading regardless of data source or data type. The final set of examples outline some more complex transformations.Examples:
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ocient Documentation","description":"Documentation for setup, integration, administration, querying, loading, and reference material for the OcientAIQ Unified Data Platform.","colors":{"primary":"#002fa7","light":"#d4dbe3","dark":"#a60072"},"logo":{"light":"https://mintcdn.com/ocient/z72iqRqJo7Ob2_zv/images/ocient-logo.png?fit=max\u0026auto=format\u0026n=z72iqRqJo7Ob2_zv\u0026q=85\u0026s=f470cc2d3fc975a0d30ee51065c421e3","dark":"https://mintcdn.com/ocient/z72iqRqJo7Ob2_zv/images/ocient-logo-dark.png?fit=max\u0026auto=format\u0026n=z72iqRqJo7Ob2_zv\u0026q=85\u0026s=fdeb5e55ce68df1ea11468c34ab09871","href":"https://www.ocient.com"},"favicon":"https://mintcdn.com/ocient/z72iqRqJo7Ob2_zv/images/ocient-favicon.png?fit=max\u0026auto=format\u0026n=z72iqRqJo7Ob2_zv\u0026q=85\u0026s=5ffa8d9424ece57c2e0ad480e2b3d919","appearance":{"default":"light"},"navbar":{"links":[{"href":"https://www.ocient.com","label":"Ocient"}]},"footer":{"socials":{"x":"https://twitter.com/ocient","linkedin":"https://www.linkedin.com/company/ocient","youtube":"https://www.youtube.com/channel/UCYN4oBXeUWjxSBNKKdpC-_g"},"links":[{"header":"Product","items":[{"label":"Overview","href":"https://ocient.com/ocientaiq-unified-data-platform"},{"label":"AI on Enterprise Data","href":"https://ocient.com/ai-on-enterprise-data"},{"label":"Deployment Options","href":"https://ocient.com/deployment-overview"},{"label":"Data Ingest","href":"https://ocient.com/ingest"},{"label":"Query Optimization","href":"https://ocient.com/query-optimization"},{"label":"Security","href":"https://ocient.com/security-and-compliance"},{"label":"Semi-Structured Data","href":"https://ocient.com/semi-structured-data"}]},{"header":"Solutions","items":[{"label":"Overview","href":"https://ocient.com/ocientaiq-solutions"},{"label":"AdTech","href":"https://ocient.com/solutions/adtech"},{"label":"CSPs","href":"https://ocient.com/solutions/telecommunications"},{"label":"Financial Services","href":"https://ocient.com/solutions/financial-services"},{"label":"National Security","href":"https://ocient.com/solutions/national-security"},{"label":"Pricing","href":"https://ocient.com/pricing"},{"label":"Solutions Delivery","href":"https://ocient.com/ocientaiq-solutions-delivery"}]},{"header":"Company and Careers","items":[{"label":"About Ocient","href":"https://ocient.com/about-ocient"},{"label":"Leadership","href":"https://ocient.com/leadership"},{"label":"Newsroom","href":"https://ocient.com/newsroom"},{"label":"Partners","href":"https://ocient.com/ocientaiq-partner-ecosystem"},{"label":"Innovation","href":"https://ocient.com/patents"},{"label":"Sustainability","href":"https://ocient.com/sustainability"},{"label":"Life at Ocient","href":"https://ocient.com/careers"},{"label":"Open Positions","href":"https://ocient.com/job-postings"},{"label":"Perks and Benefits","href":"https://ocient.com/perks-benefits"}]},{"header":"Resources","items":[{"label":"All Resources","href":"https://ocient.com/resource-hub"},{"label":"Blog","href":"https://ocient.com/blog"},{"label":"Case Studies","href":"https://ocient.com/case-studies"},{"label":"Research \u0026 Reports","href":"https://ocient.com/analyst-reports"},{"label":"Tech Papers","href":"https://ocient.com/tech-papers"},{"label":"Webinars \u0026 Videos","href":"https://ocient.com/videos"}]}]},"search":{"prompt":"Search Ocient Documentation"},"seo":{"metatags":{"google-site-verification":"DJA5LvkGlC23-2OIqQGjv2tIWp2Gdi1yybvC_WwTGG4"}},"fonts":{"heading":{"family":"Figtree"},"body":{"family":"Figtree"}},"integrations":{"ga4":{"measurementId":"G-Q3X99TJ8EE"}},"contextual":{"options":["copy","view","chatgpt","claude","mcp","add-mcp"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Version 28.0","icon":"sourcetree","href":"/ocientaiq-unified-data-platform-release-notes"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ocient","hasAudioNarration":false,"actualSubdomain":"ocient","customDomains":["docs.ocient.com"],"gitSource":{"type":"github","owner":"xeograph","repo":"ocient_documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af1f872964382d0bcc86d9e","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"OcientAIQ Unified Data Platform","count":218},{"language":"default","tag":"SQL Reference","count":65},{"language":"default","tag":"System Administration","count":44},{"language":"default","tag":"Load Data","count":20},{"language":"default","tag":"LAT Reference","count":19},{"language":"default","tag":"Data Definition Language (DDL) Statement Reference","count":18},{"language":"default","tag":"Query Ocient","count":15},{"language":"default","tag":"Database Administration","count":15},{"language":"default","tag":"Monitoring","count":12},{"language":"default","tag":"Ocient HTTP Query API","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"starterQuestions":[{"_id":"6a03560056146002526acbf1","deploymentId":"6984e78a6170fef15166f462","questionText":"How do I query data?","status":"active","generatedBy":"manual","createdAt":"2026-05-12T16:32:00.161Z","updatedAt":"2026-05-12T16:32:00.161Z","__v":0},{"_id":"6a0355f756146002526acbc8","deploymentId":"6984e78a6170fef15166f462","questionText":"How do I load data?","status":"active","generatedBy":"manual","createdAt":"2026-05-12T16:31:51.321Z","updatedAt":"2026-05-12T16:31:51.321Z","__v":0}],"googleFontsInlined":true},"customCss":[{"filePath":"styles.css","content":".dark .ab-table .ab-code,.dark .ab-table .ab-blockquote{background:rgb(170 170 170 / 20%)}.ab-code{font-family:\"SF Mono\", Monaco, Menlo, Consolas, \"Ubuntu Mono\", \"Liberation Mono\", \"DejaVu Sans Mono\", \"Courier New\", monospace}.dark .ab-top-navbar,.dark .dark\\:bg-gray-900{background-color:#000!important}div[title=\"Ocient Simulator\"]>a{border-bottom:solid 2px #ddd;padding-bottom:15px;margin-bottom:15px}.ab-tree-navigation-link.text-lg{margin-top:10px}.ab-tree-navigation.w-300{width:380px}.ocient-btn{display:inline-block;text-align:center;line-height:35px;font-weight:bold;margin:0px 0px 0px 10px;border-width:3px;border-style:solid;border-color:#223f99;border-image:initial;border-radius:50px;padding:0px 15px;color:#000!important;text-decoration:none!important;padding-left:15px!important;padding-right:15px!important;transition:color 0.3s,\n background 0.2s}.ocient-btn:hover{background:#223f99!important;color:#fff!important}.dark .ocient-btn{border-color:rgb(54, 236, 253);color:#fff!important;background:#000!important}.dark .ocient-btn:hover{background:rgb(54, 236, 253)!important}#oc-footer{padding:4rem 0 1rem 0;border-top:solid 1px #444;position:relative;background-color:#000;z-index:1;margin:1rem auto 0;max-width:1920px;font-family:\"AvenirNext-regular\", sans-serif;font-weight:400}#oc-footer *{box-sizing:border-box}#oc-footer ul{margin-left:0;padding-left:0}.oc-max-width{width:calc(100% - 4rem);max-width:1248px;margin:0 auto;position:relative}.oc-col-container{font-size:0}.oc-col{display:inline-block;font-size:1rem;position:relative}.oc-col.oc-col-container{font-size:0}.va--top{vertical-align:top}.va--middle{vertical-align:middle}.va--bottom{vertical-align:bottom}.cta{display:inline-block;font-family:\"AvenirNext-Medium\", sans-serif;font-size:1.175rem;font-weight:500;letter-spacing:0.5px;line-height:1em;text-decoration:none;transition:all ease-in-out 100ms}.cta-container .cta:last-child:not(:first-child){margin-left:1rem}.cta--primary{border:0.2rem solid #1edaeb;border-radius:2em;padding:0.45em 0.75em;padding:0.5em 1em}.cta--primary:hover{background-color:#1edaeb;color:#fff}.accent-color--green .cta--primary{border-color:#c8da2f}.accent-color--green .cta--primary:hover{background-color:#c8da2f;color:#231f20}.accent-color--purple .cta--primary{border-color:#a92378}.accent-color--purple .cta--primary:hover{background-color:#a92378}.accent-color--blue .cta--primary{border-color:#223f99}.accent-color--blue .cta--primary:hover{background-color:#223f99}.accent-color--light-blue .cta--primary{border-color:#1edaeb}.accent-color--light-blue .cta--primary:hover{background-color:#1edaeb}.background-color--black *{color:#fff}.background-color--black:where(:not(.background-type--image)) .cta--secondary{background-color:transparent;border:0.25rem solid #fff;color:#fff}.background-color--black:where(:not(.background-type--image)) .cta--secondary:hover{background-color:#fff;color:#000}.background-color--white:where(:not(.background-type--image)) .cta--secondary:hover{border-color:#000}#footer--branding{width:42%;padding:0 6rem 0 4rem;text-align:left}#footer--branding a{text-decoration:none}#footer-logo{display:block;max-width:19.75rem}#footer--subscribe{margin-top:2rem}#footer--subscribe p{font-size:0;margin-bottom:1.5rem}#footer--subscribe p i{width:1rem;text-align:center}#footer--subscribe p a{width:calc(100% - 2rem)}#footer--subscribe .cta{margin-top:1rem}#footer--subscribe p a,#footer--subscribe p i{font-size:1rem;line-height:1.2em;display:inline-block;vertical-align:top}#footer--links{width:58%;padding-left:1.75rem;padding-top:0.75rem}.footer--navigation--items{width:33%}.footer--navigation--item{list-style-type:none}.footer--navigation--item:not(:last-child){margin-bottom:2rem}.footer--navigation--item a{color:#fff;text-decoration:none}.footer--navigation--item:where(.parent) a{font-family:\"AvenirNext-demibold\", sans-serif;font-weight:600;font-size:1.1875rem;line-height:1.1em;color:#c8da2f;text-deccoration:none;font-size:1.25rem}.footer--subnavigation--items{margin-top:0.625rem}.footer--subnavigation--item{list-style-type:none}.footer--subnavigation--item:not(:first-child){margin-top:1.125rem}.footer--subnavigation--item a{color:#fff;font-family:\"AvenirNext-Regular\", sans-serif;font-weight:400;font-size:1rem;line-height:1.1em;text-decoration:none;transition:all ease-in-out 100ms}.footer--subnavigation--item a:hover{color:#fff;opacity:1}#footer--social li:not(:last-child){margin-right:1rem}#footer--social li a{color:#c8da2f;font-size:1.25rem;padding:0.25rem 0;transition:all ease-in-out 100ms}#footer--social li:hover a{color:#fff}#footer--social li a i{font-size:0}#footer--social li a i:before{font-size:1.25rem}#footer--legal *{color:#fff}#footer--legal .footer--legal--link a{text-decoration:none;margin-left:1rem;transition:all ease-in-out 100ms}#footer--legal .footer--legal--link a:hover{color:#fff;opacity:1}:where(.opacity--a){opacity:0.75}.module-separator.mp-bottom--default{padding-bottom:2rem}.module-separator.mp-top--expanded{padding-top:6rem}.module-separator .separator.light-blue,.accent-color--light-blue .module-separator .separator{background-color:#1edaeb}.module-separator .separator{width:100%;height:0.25rem}.float--right{float:right}.ta--right{text-align:right}.module-15 .col-container:not(.news-release){padding:6rem 0 8rem 0}.module-15 .col-contact{padding-right:10%}.module-15 .module-headline{margin-bottom:0}.module-15 .module-subheadline{margin-bottom:1.25rem}.module-15 .col-contact p:not(.module-subheadline){font-family:\"AvenirNext-Medium\", sans-serif;font-weight:500}.module-15 .col-contact p a{text-decoration:none;margin-left:0.5rem;font-size:1.125rem}.module-15 .col-contact i{font-family:\"Font Awesome 5 Free\";font-weight:900;font-size:1.125em}.module-15.accent-color--green .col-contact i,.module-15.accent-color--green .col-contact p a:hover{color:#c8da2f}.module-15.accent-color--light-blue .col-contact i,.module-15.accent-color--light-blue .col-contact p a:hover{color:#1edaeb}.module-15.accent-color--blue .col-contact i,.module-15.accent-color--blue .col-contact p a:hover{color:#223f99}.module-15.accent-color--purple .col-contact i,.module-15.accent-color--purple .col-contact p a:hover{color:#a92378}.module-15 .cta-container{margin-top:1.75rem}.module-15 .news-release-wrapper:not(:first-child){margin-top:2rem}@media (max-width: 767px){#footer--branding,#footer--links,#footer--links>ul{width:100%;padding:0;margin-bottom:2rem}#footer--links>ul{width:49%}#footer--legal{text-align:center}#footer--legal a{margin:1rem}#footer--legal .float--right{float:none}.module-separator.mp-top--expanded{padding-top:1rem}}.homepage_cards img{margin-top:20px}#header>.prose{display:none}"}],"page":{"pagePath":"ingest-data-with-legacy-lat-reference","slug":"/ingest-data-with-legacy-lat-reference","pageMetadata":{"title":"Ingest Data with Legacy LAT Reference","description":"(deprecated) Explore methods for efficiently loading large data sets into Ocient, optimized for performance and designed for massive-scale data warehousing.","sidebarTitle":"Ingest Data with Legacy LAT Reference","href":"/ingest-data-with-legacy-lat-reference"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"(deprecated) Explore methods for efficiently loading large data sets into Ocient, optimized for performance and designed for massive-scale data warehousing.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const TimeKey=`TimeKey®`;const Ocient=`Ocient®`;const Kafka=`Apache® Kafka®`;const Java=`Java®`;const HDFS=`Apache® Hadoop® Distributed File System (HDFS)`;const AWS=`Amazon® Web Services℠ (AWS℠)`;function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Frame,Heading,OptimizedImage,Warning}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[`Data Pipelines are now the preferred method for loading data into the `,Ocient,` System. For details, see `,_jsx(_components.a,{href:`/load-data`,children:`Load Data`}),`. The LAT loading functionality will be removed in version 29.0.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`loading-and-transformation-lat-overview`,children:`Loading and Transformation (LAT) Overview`}),`\n`,_jsx(_components.p,{children:`This section provides an overview of how loading works in Ocient along with step-by-step examples to illustrate the key aspects of the loading process. A separate LAT Reference provides a detailed explanation of the options for each data format and data source in Ocient.`}),`\n`,_jsx(_components.p,{children:`The key elements in the Loading system are:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Data Source — an origin source for data such as `,AWS,` S3, `,Kafka,`, or `,HDFS,`. Sources can be file or streaming in nature.`]}),`\n`,_jsx(_components.li,{children:`Data Type Extraction — the format for data extraction from the source. Examples include JSON, CSV, fixed width.`}),`\n`,_jsx(_components.li,{children:`Transformations — the functions used to cleanse, route, and transform the incoming data.`}),`\n`,_jsxs(_components.li,{children:[`Indexer — operated by the `,_jsx(_components.code,{children:`streamloader`}),` role on a Loader Node, the Indexer collects transformed records, stores in replicated pages, and converts into segments on the Foundation Nodes.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Reference:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/lat-data-types-in-loading`,children:`LAT Data Types in Loading`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/lat-pipeline-configuration`,children:`LAT Pipeline Configuration`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/lat-client-command-line-interface`,children:`LAT Client Command Line Interface`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/lat-metrics`,children:`LAT Metrics`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/lat-advanced-topics`,children:`LAT Advanced Topics`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/lat-packaging-and-installation`,children:`LAT Packaging and Installation`})}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`loading-overview`,children:`Loading Overview`}),`\n`,_jsxs(_components.p,{children:[`The LAT is a service within an Ocient System that is responsible for fetching data from file or streaming sources, extracting records, transforming them, and routing them to Ocient tables. The LAT runs as a standalone `,Java,` process on Loader Nodes. It runs many parallel workers on high-core count servers to deliver the required parallelism for high-throughput loading. This diagram shows that a set of Loader Nodes sit between the data sources and the Foundation Nodes to control the loading flow and deliver high performance across many parallel workers.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/ocient/3RgfgOh8WvS0iG8U/images/zuvy3ydfvutsvsxva-y5-loadingflow1-8ffcad2d.png?fit=max\u0026auto=format\u0026n=3RgfgOh8WvS0iG8U\u0026q=85\u0026s=b6b65806f956e8c16a4aefd47d91caa8`,alt:`Loading and transformation into foundation storage`,\"data-og-width\":`1392`,width:`1392`,\"data-og-height\":`1079`,height:`1079`,\"data-path\":`images/zuvy3ydfvutsvsxva-y5-loadingflow1-8ffcad2d.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/ocient/3RgfgOh8WvS0iG8U/images/zuvy3ydfvutsvsxva-y5-loadingflow1-8ffcad2d.png?w=280\u0026fit=max\u0026auto=format\u0026n=3RgfgOh8WvS0iG8U\u0026q=85\u0026s=245e73c6243dc00646227a14ae349a7a 280w, https://mintcdn.com/ocient/3RgfgOh8WvS0iG8U/images/zuvy3ydfvutsvsxva-y5-loadingflow1-8ffcad2d.png?w=560\u0026fit=max\u0026auto=format\u0026n=3RgfgOh8WvS0iG8U\u0026q=85\u0026s=5355d15ce9ecf6740b0c1f21e09e599a 560w, https://mintcdn.com/ocient/3RgfgOh8WvS0iG8U/images/zuvy3ydfvutsvsxva-y5-loadingflow1-8ffcad2d.png?w=840\u0026fit=max\u0026auto=format\u0026n=3RgfgOh8WvS0iG8U\u0026q=85\u0026s=2f263c7144b4361ca0e51dbb6ee2417f 840w, https://mintcdn.com/ocient/3RgfgOh8WvS0iG8U/images/zuvy3ydfvutsvsxva-y5-loadingflow1-8ffcad2d.png?w=1100\u0026fit=max\u0026auto=format\u0026n=3RgfgOh8WvS0iG8U\u0026q=85\u0026s=42686ffaf59d7938977def442269fcf4 1100w, https://mintcdn.com/ocient/3RgfgOh8WvS0iG8U/images/zuvy3ydfvutsvsxva-y5-loadingflow1-8ffcad2d.png?w=1650\u0026fit=max\u0026auto=format\u0026n=3RgfgOh8WvS0iG8U\u0026q=85\u0026s=775f0c4a8bc048c04e23cb33393d74a2 1650w, https://mintcdn.com/ocient/3RgfgOh8WvS0iG8U/images/zuvy3ydfvutsvsxva-y5-loadingflow1-8ffcad2d.png?w=2500\u0026fit=max\u0026auto=format\u0026n=3RgfgOh8WvS0iG8U\u0026q=85\u0026s=8fdea841781cbd90303f1239a34bda07 2500w`})}),`\n`,_jsx(_components.p,{children:`The LAT loads data from two general types of data sources:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Streaming Sources — continuous loading of data from an ordered stream such as Kafka`}),`\n`,_jsx(_components.li,{children:`File Sources — a discrete batch of data loaded from files until complete, typically from a file system or object storage solution like AWS S3`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The main difference between these modes is whether the task continues indefinitely or ends when the batch of files has been loaded. In both cases, the LAT uses identical transformation and loading processes so that you can manage both with the same mental model and configuration files. Most data types are supported identically in streaming and batch processing modes, however some formats are not suitable for streaming due to their structure.`}),`\n`,_jsxs(_components.p,{children:[`A complete list of data sources and supported data formats is in `,_jsx(_components.a,{href:`/lat-data-types-in-loading`,children:`LAT Data Types in Loading`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`While loading, the LAT coordinates with the Ocient System to manage backpressure of loading new records. New rows accumulate into a storage structure called a “page” which is a column-oriented storage mechanism. These pages are replicated across Foundation Nodes so that the specified redundancy is maintained in the event of a system outage. When enough pages have accumulated in a given time period (as defined by the `,TimeKey,` bucket), the Indexer converts the pages into segment structures and places these on the Foundation Nodes for permanent storage as Segment Groups that span the width of the storage space.`]}),`\n`,_jsx(_components.p,{children:`This process is transparent to analysts issuing queries. Rows are federated during queries so that pages and Segments are seamlessly presented in result sets.`}),`\n`,_jsx(Heading,{level:`3`,id:`pipelines-overview`,children:`Pipelines Overview`}),`\n`,_jsx(_components.p,{children:`The process and configuration that defines how data is loaded is referred to as a “pipeline.” A “pipeline” defines the end-to-end data flow in a loading task including the Source type (e.g., Kafka), the record Extraction for the data type (e.g., CSV extraction), the transformations on each record (e.g., JSON value extraction, data exploding, string concatenation, flattening), and where transformed data should be loaded in Ocient tables. As shown in this diagram, you set each of these sections in the pipeline file to control the LAT.`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/ocient/ElfHhdh-jyBXjepx/images/1j-kfyvhhktkcwrhdm4vu-latpipeline-405851f9.png?fit=max\u0026auto=format\u0026n=ElfHhdh-jyBXjepx\u0026q=85\u0026s=7eddfb474757f971796aa0cc8feaad33`,alt:`LAT pipeline JSON configuration with data flow from data sources to storage and processing`,\"data-og-width\":`1541`,width:`1541`,\"data-og-height\":`849`,height:`849`,\"data-path\":`images/1j-kfyvhhktkcwrhdm4vu-latpipeline-405851f9.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/ocient/ElfHhdh-jyBXjepx/images/1j-kfyvhhktkcwrhdm4vu-latpipeline-405851f9.png?w=280\u0026fit=max\u0026auto=format\u0026n=ElfHhdh-jyBXjepx\u0026q=85\u0026s=63526351526b169e026804229406ead0 280w, https://mintcdn.com/ocient/ElfHhdh-jyBXjepx/images/1j-kfyvhhktkcwrhdm4vu-latpipeline-405851f9.png?w=560\u0026fit=max\u0026auto=format\u0026n=ElfHhdh-jyBXjepx\u0026q=85\u0026s=4d80597273a3abdcabeeac6be632fcd8 560w, https://mintcdn.com/ocient/ElfHhdh-jyBXjepx/images/1j-kfyvhhktkcwrhdm4vu-latpipeline-405851f9.png?w=840\u0026fit=max\u0026auto=format\u0026n=ElfHhdh-jyBXjepx\u0026q=85\u0026s=1d9ed5508d36a57e8911bfa483fee315 840w, https://mintcdn.com/ocient/ElfHhdh-jyBXjepx/images/1j-kfyvhhktkcwrhdm4vu-latpipeline-405851f9.png?w=1100\u0026fit=max\u0026auto=format\u0026n=ElfHhdh-jyBXjepx\u0026q=85\u0026s=2d03056fb5647ea9f638a96900303e08 1100w, https://mintcdn.com/ocient/ElfHhdh-jyBXjepx/images/1j-kfyvhhktkcwrhdm4vu-latpipeline-405851f9.png?w=1650\u0026fit=max\u0026auto=format\u0026n=ElfHhdh-jyBXjepx\u0026q=85\u0026s=b131e950eac07b0dbfca88b18f7a180c 1650w, https://mintcdn.com/ocient/ElfHhdh-jyBXjepx/images/1j-kfyvhhktkcwrhdm4vu-latpipeline-405851f9.png?w=2500\u0026fit=max\u0026auto=format\u0026n=ElfHhdh-jyBXjepx\u0026q=85\u0026s=a7370174695861a436dcdef1efa9d5d7 2500w`})}),`\n`,_jsx(_components.p,{children:`The LAT pipelines are managed through an HTTP API on the Loader Nodes or through a Command Line Interface (CLI) that provides a convenient way to work with the HTTP API. Because most Ocient Systems include many Loader Nodes, the CLI coordinates pipelines across the specified set of Loader Nodes.`}),`\n`,_jsx(_components.p,{children:`The LAT Client issues the command to the Loader Node to create the new pipeline with the pipeline configuration file. When started, the LAT uses the pipeline to execute a highly parallelized loading task across all Loader Nodes and Foundation Nodes to load the configured tables.`}),`\n`,_jsxs(_components.p,{children:[`Detailed instructions for configuring a pipeline are found in `,_jsx(_components.a,{href:`/lat-pipeline-configuration`,children:`LAT Pipeline Configuration`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`time-ordering`,children:`Time Ordering`}),`\n`,_jsx(_components.p,{children:`The Ocient System contains timeseries data. Loading in the data warehouse is considerably faster when data is presented in an ordered time sequence according to the TimeKey in a table. For most streaming sources, this is typically accomplished automatically with limited “out of order” data by the nature of the queue.`}),`\n`,_jsxs(_components.p,{children:[`However, for file based sources, it is not uncommon for data to be collected in folders in a manner that could appear haphazard to the loader. For this reason, it is critical that the `,_jsx(_components.code,{children:`sort_type`}),` setting for file based sources be used correctly to inform the LAT how files should be ordered.`]}),`\n`,_jsxs(_components.p,{children:[`Read more about file sorting in `,_jsx(_components.a,{href:`/lat-source-configuration#load-from-a-file-source`,children:`Load From a File Source`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`exactly-once-guarantees`,children:`Exactly-Once Guarantees`}),`\n`,_jsx(_components.p,{children:`Loading in Ocient is designed to ensure exactly once processing of data. The LAT operates independent streams of data that each has a monotonically increasing row ID tied to an individual row in a File-based load or a partition offset in a Kafka-based load. Exactly-once processing is made possible through coordination between the loading components around a “Durability Horizon” that represents the highest record durably stored on non-volatile storage in each independent stream. In the event of a node outage or a replay of the data, the Durability Horizon automatically removes duplicate records in an efficient manner.`}),`\n`,_jsx(_components.p,{children:`It is important to understand how the LAT determines the unique row ID for different source types to ensure that data is loaded correctly. This is described in more detail in the LAT Reference Documentation.`}),`\n`,_jsxs(_components.p,{children:[`Learn more about the underlying approach used in `,_jsx(_components.a,{href:`/loading-characteristics-and-concepts`,children:`Loading Characteristics and Concepts`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`dynamic-schema-changes`,children:`Dynamic Schema Changes`}),`\n`,_jsxs(_components.p,{children:[`Ocient also supports schema changes on tables while loading data in a continuously streaming pipeline. Ocient maintains a table version with each running pipeline that serves as a loading contract until the load task complete. This ensures that existing pipelines are not interrupted when columns are added or removed from a table that is receiving new data. Ocient continues loading records using the original table version even after a change has been made to the tables. These dynamic schema changes from `,_jsx(_components.code,{children:`ALTER TABLE`}),` commands allow flexible updates to tables while complex loading processes are active. Pipelines can then be updated to add or remove data elements and match the altered schema, reducing the burden of coordination across systems.`]}),`\n`,_jsx(Heading,{level:`3`,id:`loading-examples`,children:`Loading Examples`}),`\n`,_jsx(_components.p,{children:`The following examples walk through a simple loading example using the LAT for a streaming load off of Kafka and a file load off of S3. These examples are very similar due to the way the LAT uses a common language for all transformation and loading regardless of data source or data type. The final set of examples outline some more complex transformations.`}),`\n`,_jsx(_components.p,{children:`Examples:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/lat-load-json-data-from-kafka`,children:`LAT Load JSON Data from Kafka`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/lat-load-csv-data-from-s3`,children:`LAT Load CSV Data from S3`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/lat-load-json-data-from-s3`,children:`LAT Load JSON Data from S3`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/lat-advanced-loading-and-transformations`,children:`LAT Advanced Loading and Transformations`})}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For more detailed information about LAT settings, see the `,_jsx(_components.a,{href:`/lat-pipeline-configuration`,children:`LAT Pipeline Configuration`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`related-links`,children:`Related Links`}),`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`/lat-overview`,children:`LAT Overview`})}),`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`/lat-data-types-in-loading`,children:`LAT Data Types in Loading`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{TimeKey,Ocient,Kafka,Java,HDFS,AWS,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Ingest Data with Legacy LAT Reference","description":"(deprecated) Explore methods for efficiently loading large data sets into Ocient, optimized for performance and designed for massive-scale data warehousing.","sidebarTitle":"Ingest Data with Legacy LAT Reference","href":"/ingest-data-with-legacy-lat-reference"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[142,328,"undefined;const Ocient=undefined;const Kafka=undefined;const Java=undefined;const HDFS=undefined;const AWS=undefined;fun"],[881,898,"`Ocient®`,` System. "],[1691,1729,"`Amazon® Web Services℠ (AWS℠)`,` S3, `,`Apache® Kafka®`,`, or `,`Apache® Hadoop® Distributed File System (HDFS)`,`. Sour"],[3511,3528,"`Java®`,` process on"],[7059,7076,"`TimeKey®`,` bucket)"]]},"mdxExtracts":{"tableOfContents":[{"title":"Loading and Transformation (LAT) Overview","slug":"loading-and-transformation-lat-overview","depth":2,"children":[{"title":"Loading Overview","slug":"loading-overview","depth":3,"children":[]},{"title":"Pipelines Overview","slug":"pipelines-overview","depth":3,"children":[]},{"title":"Time Ordering","slug":"time-ordering","depth":3,"children":[]},{"title":"Exactly-Once Guarantees","slug":"exactly-once-guarantees","depth":3,"children":[]},{"title":"Dynamic Schema Changes","slug":"dynamic-schema-changes","depth":3,"children":[]},{"title":"Loading Examples","slug":"loading-examples","depth":3,"children":[]}]},{"title":"Related Links","slug":"related-links","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/ocient/b30a26ab4492f6da/footer.js"],"subdomain":"ocient","siteName":"Ocient Documentation","title":"Ingest Data with Legacy LAT Reference - Ocient Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-07T00:14:59.868Z","gitLastModified":"2026-10-07T00:13:54.000Z","originalFileLocation":"ingest-data-with-legacy-lat-reference.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"(deprecated) Explore methods for efficiently loading large data sets into Ocient, optimized for performance and designed for massive-scale data warehousing.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ocient Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ocient/ad8jAagM5eoso8l-/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ocient/ad8jAagM5eoso8l-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ocient/ad8jAagM5eoso8l-/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ocient/ad8jAagM5eoso8l-/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ocient/ad8jAagM5eoso8l-/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ocient/ad8jAagM5eoso8l-/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ocient/ad8jAagM5eoso8l-/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ocient/ad8jAagM5eoso8l-/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ocient/ad8jAagM5eoso8l-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Ingest Data with Legacy LAT Reference - Ocient Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"(deprecated) Explore methods for efficiently loading large data sets into Ocient, optimized for performance and designed for massive-scale data warehousing.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ocient Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ocient.com/ingest-data-with-legacy-lat-reference\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ocient.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Ingest+Data+with+Legacy+LAT+Reference\u0026amp;description=%28deprecated%29+Explore+methods+for+efficiently+loading+large+data+sets+into+Ocient%2C+optimized+for+performance+and+designed+for+massive-scale+data+warehousing.\u0026amp;theme=eac00f6cfeea2547c43e3873\u0026amp;signature=2eea181187ee665b2d95bc4e99c47d724c47e67479c4f6a2daeffc454a08a77d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Ingest Data with Legacy LAT Reference - Ocient Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"(deprecated) Explore methods for efficiently loading large data sets into Ocient, optimized for performance and designed for massive-scale data warehousing.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ocient.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Ingest+Data+with+Legacy+LAT+Reference\u0026amp;description=%28deprecated%29+Explore+methods+for+efficiently+loading+large+data+sets+into+Ocient%2C+optimized+for+performance+and+designed+for+massive-scale+data+warehousing.\u0026amp;theme=eac00f6cfeea2547c43e3873\u0026amp;signature=2eea181187ee665b2d95bc4e99c47d724c47e67479c4f6a2daeffc454a08a77d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ocient/ad8jAagM5eoso8l-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ocient Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#002fa7\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"DJA5LvkGlC23-2OIqQGjv2tIWp2Gdi1yybvC_WwTGG4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ocient.com/ingest-data-with-legacy-lat-reference\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ingest-data-with-legacy-lat-reference.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ocient.com/#organization\",\"name\":\"Ocient Documentation\",\"url\":\"https://docs.ocient.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ocient/z72iqRqJo7Ob2_zv/images/ocient-logo.png?fit=max\u0026auto=format\u0026n=z72iqRqJo7Ob2_zv\u0026q=85\u0026s=f470cc2d3fc975a0d30ee51065c421e3\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ocient.com#website\",\"name\":\"Ocient Documentation\",\"url\":\"https://docs.ocient.com\",\"publisher\":{\"@id\":\"https://docs.ocient.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ocient.com/ingest-data-with-legacy-lat-reference#webpage\",\"url\":\"https://docs.ocient.com/ingest-data-with-legacy-lat-reference\",\"name\":\"Ingest Data with Legacy LAT Reference\",\"description\":\"(deprecated) Explore methods for efficiently loading large data sets into Ocient, optimized for performance and designed for massive-scale data warehousing.\",\"dateModified\":\"2026-10-07T00:13:54.000Z\",\"isPartOf\":{\"@id\":\"https://docs.ocient.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ocient.com/ingest-data-with-legacy-lat-reference#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ocient.com/ingest-data-with-legacy-lat-reference#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"OcientAIQ Unified Data Platform\",\"item\":\"https://docs.ocient.com/key-concepts\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"LAT Reference\",\"item\":\"https://docs.ocient.com/lat-load-json-data-from-kafka\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Ingest Data with Legacy LAT Reference\",\"item\":\"https://docs.ocient.com/ingest-data-with-legacy-lat-reference\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.ocient.com/ingest-data-with-legacy-lat-reference#article\",\"headline\":\"Ingest Data with Legacy LAT Reference\",\"name\":\"Ingest Data with Legacy LAT Reference\",\"description\":\"(deprecated) Explore methods for efficiently loading large data sets into Ocient, optimized for performance and designed for massive-scale data warehousing.\",\"url\":\"https://docs.ocient.com/ingest-data-with-legacy-lat-reference\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ocient.com/ingest-data-with-legacy-lat-reference#webpage\"},\"dateModified\":\"2026-10-07T00:13:54.000Z\",\"publisher\":{\"@id\":\"https://docs.ocient.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ocient.com#website\"}}]}\u003c/script>","agentPointerHref":"/ingest-data-with-legacy-lat-reference.md","siteName":"Ocient Documentation","nav":{"global":{"anchors":[{"anchor":"Version 28.0","icon":"sourcetree","href":"/ocientaiq-unified-data-platform-release-notes"}]},"pages":[{"group":"OcientAIQ Unified Data Platform","pages":[{"group":"Get Started","root":{"title":"Get Started with the OcientAIQ Unified Data Platform","sidebarTitle":"Get Started with the OcientAIQ Unified Data Platform","href":"/index"},"expanded":true,"pages":[{"title":"Key Concepts","sidebarTitle":"Key Concepts","href":"/key-concepts"},{"title":"Load and Analyze Data","sidebarTitle":"Load and Analyze Data","href":"/load-and-analyze-data"},{"title":"Work with AI Prompts","sidebarTitle":"Work with AI Prompts","href":"/work-with-ai-prompts"}]},{"group":"Connect to Ocient","root":{"title":"Connect to Ocient","sidebarTitle":"Connect to Ocient","href":"/connect-to-ocient"},"expanded":false,"pages":[{"group":"Ocient Integrations","root":{"title":"Ocient Integrations","sidebarTitle":"Ocient Integrations","href":"/ocient-integrations"},"expanded":false,"pages":[{"title":"Looker Connector","sidebarTitle":"Looker Connector","href":"/looker-connector"},{"title":"DBeaver Integration","sidebarTitle":"DBeaver Integration","href":"/dbeaver-integration"},{"title":"Metabase Integration","sidebarTitle":"Metabase Integration","href":"/metabase-integration"},{"title":"SQLAlchemy Integration","sidebarTitle":"SQLAlchemy Integration","href":"/sqlalchemy-integration"},{"title":"Superset Integration","sidebarTitle":"Superset Integration","href":"/superset-integration"},{"title":"Tableau Integration","sidebarTitle":"Tableau Integration","href":"/tableau-integration"}]},{"title":"Connect Using JDBC","sidebarTitle":"Connect Using JDBC","href":"/connect-using-jdbc"},{"title":"Connect Using pyocient","sidebarTitle":"Connect Using pyocient","href":"/connect-using-pyocient"}]},{"group":"Load Data","root":{"title":"Load Data","sidebarTitle":"Load Data","href":"/load-data"},"expanded":false,"pages":[{"group":"Load by Data Source","expanded":false,"pages":[{"title":"Data Pipeline Load of CSV Data from S3","sidebarTitle":"Data Pipeline Load of CSV Data from S3","href":"/data-pipeline-load-of-csv-data-from-s3"},{"title":"Data Pipeline Load of JSON Data from Kafka","sidebarTitle":"Data Pipeline Load of JSON Data from Kafka","href":"/data-pipeline-load-of-json-data-from-kafka"},{"title":"Data Pipeline Load of Parquet Data from S3","sidebarTitle":"Data Pipeline Load of Parquet Data from S3","href":"/data-pipeline-load-of-parquet-data-from-s3"},{"title":"Data Pipeline Load of JSON Data from HDFS","sidebarTitle":"Data Pipeline Load of JSON Data from HDFS","href":"/data-pipeline-load-of-json-data-from-hdfs"}]},{"title":"Data Types for Data Pipelines","sidebarTitle":"Data Types for Data Pipelines","href":"/data-types-for-data-pipelines"},{"group":"Data Formats for Data Pipelines","root":{"title":"Data Formats for Data Pipelines","sidebarTitle":"Data Formats for Data Pipelines","href":"/data-formats-for-data-pipelines"},"expanded":false,"pages":[{"title":"JSON Selectors Examples in Data Pipelines","sidebarTitle":"JSON Selectors Examples in Data Pipelines","href":"/json-selectors-examples-in-data-pipelines"},{"title":"Parquet Selectors Examples in Data Pipelines","sidebarTitle":"Parquet Selectors Examples in Data Pipelines","href":"/parquet-selectors-examples-in-data-pipelines"}]},{"title":"Data Pipeline Behavior Considerations","sidebarTitle":"Data Pipeline Behavior Considerations","href":"/data-pipeline-behavior-considerations"},{"group":"Transform Data in Data Pipelines","root":{"title":"Transform Data in Data Pipelines","sidebarTitle":"Transform Data in Data Pipelines","href":"/transform-data-in-data-pipelines"},"expanded":false,"pages":[{"title":"Special Data Pipeline Transformation Functions","sidebarTitle":"Special Data Pipeline Transformation Functions","href":"/special-data-pipeline-transformation-functions"},{"title":"Data Types for User-Defined Data Pipeline Functions","sidebarTitle":"Data Types for User-Defined Data Pipeline Functions","href":"/data-types-for-user-defined-data-pipeline-functions"}]},{"title":"Load Geospatial Data in Data Pipelines","sidebarTitle":"Load Geospatial Data in Data Pipelines","href":"/load-geospatial-data-in-data-pipelines"},{"title":"Load Data with a User-Defined Data Pipeline Function","sidebarTitle":"Load Data with a User-Defined Data Pipeline Function","href":"/load-data-with-a-user-defined-data-pipeline-function"},{"title":"Load Data from External Sources in Data Pipelines","sidebarTitle":"Load Data from External Sources in Data Pipelines","href":"/load-data-from-external-sources-in-data-pipelines"},{"title":"Load Data into Multiple Targets in Data Pipelines","sidebarTitle":"Load Data into Multiple Targets in Data Pipelines","href":"/load-data-into-multiple-targets-in-data-pipelines"},{"title":"Load metadata and partitioned data in data pipelines","sidebarTitle":"Load Metadata and File-Based Partitioned Data in Data Pipelines","href":"/load-metadata-and-file-based-partitioned-data-in-data-pipelines"},{"title":"Deduplication in Data Pipelines","sidebarTitle":"Deduplication in Data Pipelines","href":"/deduplication-in-data-pipelines"},{"title":"Error Tolerance in Data Pipelines","sidebarTitle":"Error Tolerance in Data Pipelines","href":"/error-tolerance-in-data-pipelines"},{"title":"Monitor Data Pipelines","sidebarTitle":"Monitor Data Pipelines","href":"/monitor-data-pipelines"},{"title":"Manage Errors in Data Pipelines","sidebarTitle":"Manage Errors in Data Pipelines","href":"/manage-errors-in-data-pipelines"},{"title":"Frequently Asked Questions for Data Pipelines","sidebarTitle":"Frequently Asked Questions for Data Pipelines","href":"/frequently-asked-questions-for-data-pipelines"}]},{"group":"Query Ocient","root":{"title":"Query Ocient","sidebarTitle":"Query Ocient","href":"/query-ocient"},"expanded":false,"pages":[{"title":"Quick Start Querying","sidebarTitle":"Quick Start Querying","href":"/quick-start-querying"},{"title":"Query Performance Tuning","sidebarTitle":"Query Performance Tuning","href":"/query-performance-tuning"},{"group":"Ocient HTTP Query API","root":{"title":"Ocient HTTP Query API","sidebarTitle":"Ocient HTTP Query API","href":"/ocient-http-query-api"},"expanded":false,"pages":[{"title":"execute","sidebarTitle":"execute","openapi":"openapi/generated-api-methods.json POST /v1/execute/{database}","href":"/api-playgrounds/ocient-http-query-api/post-execute"},{"title":"execute","sidebarTitle":"execute","openapi":"openapi/generated-api-methods.json GET /v1/execute/{database}","href":"/api-playgrounds/ocient-http-query-api/get-execute"},{"title":"info","sidebarTitle":"info","openapi":"openapi/generated-api-methods.json GET /v1/info","href":"/api-playgrounds/ocient-http-query-api/get-info"},{"title":"login","sidebarTitle":"login","openapi":"openapi/generated-api-methods.json POST /v1/login","href":"/api-playgrounds/ocient-http-query-api/post-login"},{"title":"logout","sidebarTitle":"logout","openapi":"openapi/generated-api-methods.json POST /v1/logout","href":"/api-playgrounds/ocient-http-query-api/post-logout"},{"title":"sso_authentication","sidebarTitle":"sso_authentication","openapi":"openapi/generated-api-methods.json POST /v1/sso_authentication","href":"/api-playgrounds/ocient-http-query-api/post-sso-authentication"},{"title":"callback","sidebarTitle":"callback","openapi":"openapi/generated-api-methods.json GET /v1/callback","href":"/api-playgrounds/ocient-http-query-api/get-callback"},{"title":"sso_token","sidebarTitle":"sso_token","openapi":"openapi/generated-api-methods.json POST /v1/sso_token","href":"/api-playgrounds/ocient-http-query-api/post-sso-token"},{"title":"sso_device_grant","sidebarTitle":"sso_device_grant","openapi":"openapi/generated-api-methods.json POST /v1/sso_device_grant","href":"/api-playgrounds/ocient-http-query-api/post-sso-device-grant"},{"title":"sso_device_grant_verify","sidebarTitle":"sso_device_grant_verify","openapi":"openapi/generated-api-methods.json POST /v1/sso_device_grant_verify","href":"/api-playgrounds/ocient-http-query-api/post-sso-device-grant-verify"},{"title":"token_refresh","sidebarTitle":"token_refresh","openapi":"openapi/generated-api-methods.json POST /v1/token_refresh","href":"/api-playgrounds/ocient-http-query-api/post-token-refresh"}]},{"group":"Understanding Data Types","root":{"title":"Understanding Data Types","sidebarTitle":"Understanding Data Types","href":"/understanding-data-types"},"expanded":false,"pages":[{"title":"Array, Tuple, and Matrix Overview","sidebarTitle":"Array, Tuple, and Matrix Overview","href":"/array-tuple-and-matrix-overview"}]},{"title":"Functions Overview","sidebarTitle":"Functions Overview","href":"/functions-overview"}]},{"group":"Analysis in Ocient","expanded":false,"pages":[{"title":"Text Analysis in Database Queries","sidebarTitle":"Text Analysis in Database Queries","href":"/text-analysis-in-database-queries"},{"group":"Machine Learning in Ocient","root":{"title":"Machine Learning in Ocient","sidebarTitle":"Machine Learning in Ocient","href":"/machine-learning-in-ocient"},"expanded":false,"pages":[{"title":"Regression Analysis","sidebarTitle":"Regression Analysis","href":"/regression-analysis"},{"title":"Classification Analysis","sidebarTitle":"Classification Analysis","href":"/classification-analysis"},{"title":"Clustering Analysis and Dimensionality Reduction","sidebarTitle":"Clustering Analysis and Dimensionality Reduction","href":"/clustering-analysis-and-dimensionality-reduction"}]}]},{"title":"Transactions","sidebarTitle":"Transactions","href":"/transactions"},{"group":"Database Administration","root":{"title":"Database Administration","sidebarTitle":"Database Administration","href":"/database-administration"},"expanded":false,"pages":[{"group":"Ocient Security Guide","root":{"title":"Ocient Security Guide","sidebarTitle":"Ocient Security Guide","href":"/ocient-security-guide"},"expanded":false,"pages":[{"title":"Set Up Data Encryption","sidebarTitle":"Set Up Data Encryption","href":"/set-up-data-encryption"}]},{"group":"Manage Users, Groups, and Roles","expanded":false,"pages":[{"title":"Workload Management Walkthrough","sidebarTitle":"Workload Management Walkthrough","href":"/workload-management-walkthrough"},{"title":"Workload Management and Service Classes","sidebarTitle":"Workload Management and Service Classes","href":"/workload-management-and-service-classes"},{"title":"Result Set Caching","sidebarTitle":"Result Set Caching","href":"/result-set-caching"},{"title":"Object-Type Level Privileges Management","sidebarTitle":"Object-Type Level Privileges Management","href":"/object-type-level-privileges-management"}]},{"title":"Manage Users, Groups, and Roles","sidebarTitle":"Manage Users, Groups, and Roles","href":"/manage-users-groups-and-roles"},{"group":"Authentication Methods","root":{"title":"Authentication Methods","sidebarTitle":"Authentication Methods","href":"/authentication-methods"},"expanded":false,"pages":[{"title":"Database Password Security Settings","sidebarTitle":"Database Password Security Settings","href":"/database-password-security-settings"}]},{"group":"Schema Design","expanded":false,"pages":[{"title":"Storage Optimization","sidebarTitle":"Storage Optimization","href":"/storage-optimization"},{"title":"TimeKeys and Clustering Keys","sidebarTitle":"TimeKeys and Clustering Keys","href":"/timekeys-and-clustering-keys"},{"title":"Secondary Indexes","sidebarTitle":"Secondary Indexes","href":"/secondary-indexes"},{"group":"Table Compression Options","root":{"title":"Table Compression Options","sidebarTitle":"Table Compression Options","href":"/table-compression-options"},"expanded":false,"pages":[{"title":"Global Dictionary Compression","sidebarTitle":"Global Dictionary Compression","href":"/global-dictionary-compression"}]},{"title":"Table Retention Policies","sidebarTitle":"Table Retention Policies","href":"/table-retention-policies"},{"title":"CREATE TABLE SQL Statement Examples","sidebarTitle":"CREATE TABLE SQL Statement Examples","href":"/create-table-sql-statement-examples"}]},{"title":"Manage Distributed Tasks","sidebarTitle":"Manage Distributed Tasks","href":"/manage-distributed-tasks"},{"title":"Remove Records from an Ocient System","sidebarTitle":"Remove Records from an Ocient System","href":"/remove-records-from-an-ocient-system"}]},{"group":"System Administration","root":{"title":"System Administration","sidebarTitle":"System Administration","href":"/system-administration"},"expanded":false,"pages":[{"group":"Ocient Management UI","root":{"title":"Ocient Management UI Features","sidebarTitle":"Ocient Management UI","href":"/ocient-management-ui"},"expanded":false,"pages":[{"title":"Ocient Management UI Configuration","sidebarTitle":"Ocient Management UI Configuration","href":"/ocient-management-ui-configuration"}]},{"group":"Install an Ocient System","root":{"title":"Install an Ocient System","sidebarTitle":"Install an Ocient System","href":"/install-an-ocient-system"},"expanded":false,"pages":[{"title":"Ocient Application Installation","sidebarTitle":"Ocient Application Installation","href":"/ocient-application-installation"},{"title":"Configure the Operating System","sidebarTitle":"Configure the Operating System","href":"/configure-the-operating-system"},{"title":"Ocient System Bootstrapping","sidebarTitle":"Ocient System Bootstrapping","href":"/ocient-system-bootstrapping"},{"title":"Ocient Application Configuration","sidebarTitle":"Ocient Application Configuration","href":"/ocient-application-configuration"},{"group":"Installation Reference","root":{"title":"Installation Reference","sidebarTitle":"Installation Reference","href":"/installation-reference"},"expanded":false,"pages":[{"title":"Ocient System Sizing","sidebarTitle":"Ocient System Sizing","href":"/ocient-system-sizing"},{"title":"Ocient System Requirements","sidebarTitle":"Ocient System Requirements","href":"/ocient-system-requirements"},{"title":"Ocient System Hardware Specifications","sidebarTitle":"Ocient System Hardware Specifications","href":"/ocient-system-hardware-specifications"},{"title":"Checking System Configuration Before Bootstrapping","sidebarTitle":"Checking System Configuration Before Bootstrapping","href":"/checking-system-configuration-before-bootstrapping"},{"title":"Checking System After Configuration","sidebarTitle":"Checking System After Configuration","href":"/checking-system-after-configuration"},{"title":"Node Bootstrapping Reference","sidebarTitle":"Node Bootstrapping Reference","href":"/node-bootstrapping-reference"}]}]},{"title":"Amazon Web Services Ocient Installation","sidebarTitle":"Amazon Web Services Ocient Installation","href":"/amazon-web-services-ocient-installation"},{"title":"Google Cloud Platform Ocient Installation","sidebarTitle":"Google Cloud Platform Ocient Installation","href":"/google-cloud-platform-ocient-installation"},{"title":"Configure Storage Spaces","sidebarTitle":"Configure Storage Spaces","href":"/configure-storage-spaces"},{"title":"Ocient Software Upgrade","sidebarTitle":"Ocient Software Upgrade","href":"/ocient-software-upgrade"},{"group":"Maintenance Overview","root":{"title":"Maintenance Overview","sidebarTitle":"Maintenance Overview","href":"/maintenance-overview"},"expanded":false,"pages":[{"title":"Guide to Rebuilding Segments","sidebarTitle":"Guide to Rebuilding Segments","href":"/guide-to-rebuilding-segments"},{"title":"Startup and Shutdown Procedure","sidebarTitle":"Startup and Shutdown Procedure","href":"/startup-and-shutdown-procedure"},{"title":"Power Safety Recommendations","sidebarTitle":"Power Safety Recommendations","href":"/power-safety-recommendations"},{"group":"NVMe Drive Maintenance","expanded":false,"pages":[{"title":"NVMe Drive Firmware Upgrade Process","sidebarTitle":"NVMe Drive Firmware Upgrade Process","href":"/nvme-drive-firmware-upgrade-process"},{"title":"Replace an NVMe Node Drive","sidebarTitle":"Replace an NVMe Node Drive","href":"/replace-an-nvme-node-drive"}]},{"title":"Expand and Rebalance System","sidebarTitle":"Expand and Rebalance System","href":"/expand-and-rebalance-system"},{"title":"Replace Nodes","sidebarTitle":"Replace Nodes","href":"/replace-nodes"},{"title":"Backup and Restore","sidebarTitle":"Backup and Restore","href":"/backup-and-restore"}]},{"group":"Monitoring","expanded":false,"pages":[{"title":"Log Monitoring","sidebarTitle":"Log Monitoring","href":"/log-monitoring"},{"title":"Statistics Monitoring","sidebarTitle":"Statistics Monitoring","href":"/statistics-monitoring"},{"title":"Prometheus Metrics Endpoint","sidebarTitle":"Prometheus Metrics Endpoint","href":"/prometheus-metrics-endpoint"},{"title":"Datadog Integration","sidebarTitle":"Datadog Integration","href":"/datadog-integration"},{"group":"System Information REST Endpoints","root":{"title":"System Information REST Endpoints","sidebarTitle":"System Information REST Endpoints","href":"/system-information-rest-endpoints"},"expanded":false,"pages":[{"title":"Get Statistics","sidebarTitle":"Get Statistics","openapi":"openapi/generated-api-methods.json GET /v1/stats","href":"/api-playgrounds/system-information-rest-endpoints/get-statistics"},{"title":"Get Version","sidebarTitle":"Get Version","openapi":"openapi/generated-api-methods.json GET /v1/version","href":"/api-playgrounds/system-information-rest-endpoints/get-version"},{"title":"Get Status","sidebarTitle":"Get Status","openapi":"openapi/generated-api-methods.json GET /v1/status","href":"/api-playgrounds/system-information-rest-endpoints/get-status"},{"title":"Get Configuration","sidebarTitle":"Get Configuration","openapi":"openapi/generated-api-methods.json GET /v1/sysconfig","href":"/api-playgrounds/system-information-rest-endpoints/get-configuration"},{"title":"Get Configuration of Whole System","sidebarTitle":"Get Configuration of Whole System","openapi":"openapi/generated-api-methods.json GET /v1/dbconfig","href":"/api-playgrounds/system-information-rest-endpoints/get-configuration-of-whole-system"},{"title":"Get Configuration Parameters","sidebarTitle":"Get Configuration Parameters","openapi":"openapi/generated-api-methods.json GET /v1/config","href":"/api-playgrounds/system-information-rest-endpoints/get-configuration-parameters"}]},{"title":"Set Up System Monitoring with the TIG Stack and Kapacitor","sidebarTitle":"Set Up System Monitoring with the TIG Stack and Kapacitor","href":"/set-up-system-monitoring-with-the-tig-stack-and-kapacitor"},{"title":"Monitor Segment Group Transfers","sidebarTitle":"Monitor Segment Group Transfers","href":"/monitor-segment-group-transfers"}]},{"group":"System Configuration","expanded":false,"pages":[{"title":"Inspect the Current Configuration","sidebarTitle":"Inspect the Current Configuration","href":"/inspect-the-current-configuration"},{"title":"Node Configuration with the Administrator Role","sidebarTitle":"Node Configuration with the Administrator Role","href":"/node-configuration-with-the-administrator-role"},{"title":"Manage the Network Configuration of an Ocient System","sidebarTitle":"Manage the Network Configuration of an Ocient System","href":"/manage-the-network-configuration-of-an-ocient-system"}]},{"title":"Secure Connections Using TLS","sidebarTitle":"Secure Connections Using TLS","href":"/secure-connections-using-tls"},{"title":"Multiple Storage Clusters for Loading Data","sidebarTitle":"Multiple Storage Clusters for Loading Data","href":"/multiple-storage-clusters-for-loading-data"},{"group":"Loading Administration","expanded":false,"pages":[{"title":"Alter Default Data Pipeline Behavior","sidebarTitle":"Alter Default Data Pipeline Behavior","href":"/alter-default-data-pipeline-behavior"},{"title":"Configuration Settings for Data Pipelines","sidebarTitle":"Configuration Settings for Data Pipelines","href":"/configuration-settings-for-data-pipelines"},{"title":"Configure Data Pipeline Logging","sidebarTitle":"Configure Data Pipeline Logging","href":"/configure-data-pipeline-logging"}]},{"title":"Air-Gapped Environment with an Ocient System","sidebarTitle":"Air-Gapped Environment with an Ocient System","href":"/air-gapped-environment-with-an-ocient-system"}]},{"group":"Ocient MCP Server","root":{"title":"Ocient MCP Server","sidebarTitle":"Ocient MCP Server","href":"/ocient-mcp-server"},"expanded":false,"pages":[{"title":"Data Analytics Workflow Using the Ocient MCP Server","sidebarTitle":"Data Analytics Workflow","href":"/data-analytics-workflow-using-the-ocient-mcp-server"},{"title":"Build an AI Agent with the Ocient MCP Server","sidebarTitle":"Build an AI Agent","href":"/build-an-ai-agent-with-the-ocient-mcp-server"}]},{"title":"Ocient Simulator","sidebarTitle":"Ocient Simulator","href":"/ocient-simulator"},{"group":"Ocient Architecture","root":{"title":"Ocient Architecture","sidebarTitle":"Ocient Architecture","href":"/ocient-architecture"},"expanded":false,"pages":[{"title":"Core Elements of an Ocient System","sidebarTitle":"Core Elements of an Ocient System","href":"/core-elements-of-an-ocient-system"},{"title":"Compute-Adjacent Input and Output on Large Working Sets","sidebarTitle":"Compute-Adjacent Input and Output on Large Working Sets","href":"/compute-adjacent-input-and-output-on-large-working-sets"},{"title":"Query Performance Optimizations","sidebarTitle":"Query Performance Optimizations","href":"/query-performance-optimizations"},{"title":"Plan Optimization","sidebarTitle":"Plan Optimization","href":"/plan-optimization"},{"title":"Exabyte Scalability Design","sidebarTitle":"Exabyte Scalability Design","href":"/exabyte-scalability-design"},{"title":"Loading Characteristics and Concepts","sidebarTitle":"Loading Characteristics and Concepts","href":"/loading-characteristics-and-concepts"}]},{"group":"SQL Reference","root":{"title":"SQL Reference","sidebarTitle":"SQL Reference","href":"/sql-reference"},"expanded":false,"pages":[{"title":"Alphabetical SQL Functions List","sidebarTitle":"Alphabetical SQL Functions List","href":"/alphabetical-sql-functions-list"},{"title":"Categorized SQL Functions List","sidebarTitle":"Categorized SQL Functions List","href":"/categorized-sql-functions-list"},{"title":"Aggregate Functions","sidebarTitle":"Aggregate Functions","href":"/aggregate-functions"},{"title":"Array Functions and Operators","sidebarTitle":"Array Functions and Operators","href":"/array-functions-and-operators"},{"title":"Character and Binary Functions","sidebarTitle":"Character and Binary Functions","href":"/character-and-binary-functions"},{"title":"Data Types","sidebarTitle":"Data Types","href":"/data-types"},{"title":"Date and Time Functions","sidebarTitle":"Date and Time Functions","href":"/date-and-time-functions"},{"title":"Formatting Functions","sidebarTitle":"Formatting Functions","href":"/formatting-functions"},{"title":"HyperLogLog Functions","sidebarTitle":"HyperLogLog Functions","href":"/hyperloglog-functions"},{"group":"Geospatial Functions","root":{"title":"Geospatial Functions","sidebarTitle":"Geospatial Functions","href":"/geospatial-functions"},"expanded":false,"pages":[{"title":"Attribute Functions","sidebarTitle":"Attribute Functions","href":"/attribute-functions"},{"title":"Conversion Functions","sidebarTitle":"Conversion Functions","href":"/conversion-functions"},{"title":"Linestring Constructors","sidebarTitle":"Linestring Constructors","href":"/linestring-constructors"},{"title":"Linestring Functions","sidebarTitle":"Linestring Functions","href":"/linestring-functions"},{"title":"Point Constructors","sidebarTitle":"Point Constructors","href":"/point-constructors"},{"title":"Polygon Constructors","sidebarTitle":"Polygon Constructors","href":"/polygon-constructors"},{"title":"Spatial Measurement","sidebarTitle":"Spatial Measurement","href":"/spatial-measurement"},{"title":"Spatial Operators","sidebarTitle":"Spatial Operators","href":"/spatial-operators"},{"title":"Spatial Relationships","sidebarTitle":"Spatial Relationships","href":"/spatial-relationships"},{"title":"Spatiotemporal Measurement","sidebarTitle":"Spatiotemporal Measurement","href":"/spatiotemporal-measurement"},{"title":"Spatiotemporal Operators","sidebarTitle":"Spatiotemporal Operators","href":"/spatiotemporal-operators"}]},{"group":"Machine Learning Model Functions","root":{"title":"Machine Learning Model Functions","sidebarTitle":"Machine Learning Model Functions","href":"/machine-learning-model-functions"},"expanded":false,"pages":[{"title":"Data Preparation","sidebarTitle":"Data Preparation","href":"/data-preparation"},{"title":"Regression Models","sidebarTitle":"Regression Models","href":"/regression-models"},{"title":"Classification Models","sidebarTitle":"Classification Models","href":"/classification-models"},{"title":"Clustering and Dimension Reduction Models","sidebarTitle":"Clustering and Dimension Reduction Models","href":"/clustering-and-dimension-reduction-models"},{"title":"Ensemble Models","sidebarTitle":"Ensemble Models","href":"/ensemble-models"},{"title":"Other Models","sidebarTitle":"Other Models","href":"/other-models"},{"title":"Machine Learning Model Options","sidebarTitle":"Machine Learning Model Options","href":"/machine-learning-model-options"}]},{"title":"Math Functions and Operators","sidebarTitle":"Math Functions and Operators","href":"/math-functions-and-operators"},{"title":"Matrix Functions and Operators","sidebarTitle":"Matrix Functions and Operators","href":"/matrix-functions-and-operators"},{"title":"Network Type Functions","sidebarTitle":"Network Type Functions","href":"/network-type-functions"},{"title":"Scalar Data Conversion Functions","sidebarTitle":"Scalar Data Conversion Functions","href":"/scalar-data-conversion-functions"},{"title":"Time Zone Functions","sidebarTitle":"Time Zone Functions","href":"/time-zone-functions"},{"title":"Tuple Functions and Operators","sidebarTitle":"Tuple Functions and Operators","href":"/tuple-functions-and-operators"},{"title":"Window Aggregate Functions","sidebarTitle":"Window Aggregate Functions","href":"/window-aggregate-functions"},{"title":"Other Functions and Expressions","sidebarTitle":"Other Functions and Expressions","href":"/other-functions-and-expressions"},{"group":"Data Definition Language (DDL) Statement Reference","root":{"title":"Data Definition Language (DDL) Statement Reference","sidebarTitle":"Data Definition Language (DDL) Statement Reference","href":"/data-definition-language-ddl-statement-reference"},"expanded":false,"pages":[{"title":"Cluster and Node Management","sidebarTitle":"Cluster and Node Management","href":"/cluster-and-node-management"},{"title":"Databases","sidebarTitle":"Databases","href":"/databases"},{"title":"Schemas","sidebarTitle":"Schemas","href":"/schemas"},{"title":"Tables","sidebarTitle":"Tables","href":"/tables"},{"title":"Views","sidebarTitle":"Views","href":"/views"},{"title":"Indexes","sidebarTitle":"Indexes","href":"/indexes"},{"group":"Data Pipelines","root":{"title":"Data Pipelines","sidebarTitle":"Data Pipelines","href":"/data-pipelines"},"expanded":false,"pages":[{"title":"Transactional Data Pipelines","sidebarTitle":"Transactional Data Pipelines","href":"/transactional-data-pipelines"}]},{"title":"Distributed Tasks","sidebarTitle":"Distributed Tasks","href":"/distributed-tasks"},{"title":"Machine Learning Models","sidebarTitle":"Machine Learning Models","href":"/machine-learning-models"},{"title":"Model Context Protocol Tools","sidebarTitle":"Model Context Protocol Tools","href":"/model-context-protocol-tools"},{"title":"Users, Groups, and Service Classes","sidebarTitle":"Users, Groups, and Service Classes","href":"/users-groups-and-service-classes"},{"title":"Data Integrity and Storage","sidebarTitle":"Data Integrity and Storage","href":"/data-integrity-and-storage"},{"title":"Query Analysis","sidebarTitle":"Query Analysis","href":"/query-analysis"},{"title":"Query Management","sidebarTitle":"Query Management","href":"/query-management"},{"title":"Statistics Cache Management","sidebarTitle":"Statistics Cache Management","href":"/statistics-cache-management"},{"group":"Data Flows","root":{"title":"Data Flows","sidebarTitle":"Data Flows","href":"/data-flows"},"expanded":false,"pages":[{"title":"Stage and Transform Data with Data Flows","sidebarTitle":"Stage and Transform Data with Data Flows","href":"/stage-and-transform-data-with-data-flows"},{"title":"Validate Data Before Loading with Data Flows","sidebarTitle":"Validate Data Before Loading with Data Flows","href":"/validate-data-before-loading-with-data-flows"},{"title":"Build Iterative Queries with Data Flows","sidebarTitle":"Build Iterative Queries with Data Flows","href":"/iterative-queries-with-data-flows"}]}]},{"title":"Data Control Language (DCL) Statement Reference","sidebarTitle":"Data Control Language (DCL) Statement Reference","href":"/data-control-language-dcl-statement-reference"},{"title":"Data Manipulation Language (DML) Statement Reference","sidebarTitle":"Data Manipulation Language (DML) Statement Reference","href":"/data-manipulation-language-dml-statement-reference"},{"group":"Data Query Language (DQL) Statement Reference","root":{"title":"Data Query Language (DQL) Statement Reference","sidebarTitle":"Data Query Language (DQL) Statement Reference","href":"/data-query-language-dql-statement-reference"},"expanded":false,"pages":[{"title":"Join Operations","sidebarTitle":"Join Operations","href":"/join-operations"},{"title":"SQL Syntax Conventions","sidebarTitle":"SQL Syntax Conventions","href":"/sql-syntax-conventions"},{"title":"Identifiers","sidebarTitle":"Identifiers","href":"/identifiers"},{"title":"Generate Tables Using sys.dummy","sidebarTitle":"Generate Tables Using sys.dummy","href":"/generate-tables-using-sys-dummy"}]},{"title":"Transactional Control Language (TCL) Statement Reference","sidebarTitle":"Transactional Control Language (TCL) Statement Reference","href":"/transaction-control-language-tcl-statement-reference"},{"group":"Errors and Warnings","root":{"title":"Errors and Warnings","sidebarTitle":"Errors and Warnings","href":"/errors-and-warnings"},"expanded":false,"pages":[{"title":"Data Pipeline Loading Errors","sidebarTitle":"Data Pipeline Loading Errors","href":"/data-pipeline-loading-errors"}]},{"title":"Reserved Words","sidebarTitle":"Reserved Words","href":"/reserved-words"},{"group":"System Catalog Reference","root":{"title":"System Catalog Reference","sidebarTitle":"System Catalog Reference","href":"/system-catalog-reference"},"expanded":false,"pages":[{"title":"System Catalog","sidebarTitle":"System Catalog","href":"/system-catalog"},{"title":"Information Schema","sidebarTitle":"Information Schema","href":"/information-schema"},{"title":"Discover Insights From System Catalog Tables","sidebarTitle":"Discover Insights From System Catalog Tables","href":"/discover-insights-from-system-catalog-tables"}]}]},{"group":"Connection Driver Reference","root":{"title":"Connection Driver Reference","sidebarTitle":"Connection Driver Reference","href":"/connection-driver-reference"},"expanded":false,"pages":[{"group":"JDBC Manual","root":{"title":"JDBC Manual","sidebarTitle":"JDBC Manual","href":"/jdbc-manual"},"expanded":false,"pages":[{"title":"Data Extract Tool","sidebarTitle":"Data Extract Tool","href":"/data-extract-tool"},{"title":"Commands Supported by the Ocient JDBC CLI Program","sidebarTitle":"Commands Supported by the Ocient JDBC CLI Program","href":"/commands-supported-by-the-ocient-jdbc-cli-program"},{"title":"JDBC Classes and Methods","sidebarTitle":"JDBC Classes and Methods","href":"/jdbc-classes-and-methods"},{"title":"JDBC Spark Connector","sidebarTitle":"JDBC Spark Connector","href":"/jdbc-spark-connector"},{"title":"OCGraph Java Library","sidebarTitle":"OCGraph Java Library","href":"/ocgraph-java-library"}]},{"group":"Ocient Python Module (pyocient)","root":{"title":"Ocient Python Module: pyocient","sidebarTitle":"Ocient Python Module: pyocient","href":"/ocient-python-module-pyocient"},"expanded":false,"pages":[{"title":"OCGraph Python Library","description":"OCGraph Python provides a SQL-native interface for graph analytics on Ocient using a Python workflow, with function references, parameter tables, and examples.","sidebarTitle":"OCGraph Python Library","href":"/ocgraph-python-library"}]}]},{"group":"LAT Reference","expanded":false,"pages":[{"group":"Ingest Data with Legacy LAT Reference","root":{"title":"Ingest Data with Legacy LAT Reference","sidebarTitle":"Ingest Data with Legacy LAT Reference","href":"/ingest-data-with-legacy-lat-reference"},"expanded":false,"pages":[{"group":"Loading by Data Source","expanded":false,"pages":[{"title":"LAT Load JSON Data from Kafka","description":"(deprecated) Ingest JSON data from Apache Kafka into Ocient with a LAT pipeline. This tutorial covers source, transform, and sink configuration plus monitoring options.","sidebarTitle":"LAT Load JSON Data from Kafka","href":"/lat-load-json-data-from-kafka"},{"title":"LAT Load CSV Data from S3","description":"(deprecated) Learn to load CSV data from Amazon S3 directly into Ocient’s high-performance data warehouse, ensuring smooth and scalable data integration.","sidebarTitle":"LAT Load CSV Data from S3","href":"/lat-load-csv-data-from-s3"},{"title":"LAT Load JSON Data from S3","description":"(deprecated) Integrate JSON data from Amazon S3 into Ocient for advanced analytics, designed for high-throughput and efficient processing of large data sets.","sidebarTitle":"LAT Load JSON Data from S3","href":"/lat-load-json-data-from-s3"}]},{"title":"LAT Advanced Loading and Transformations","description":"(deprecated) Enhance your data loading processes with advanced transformations in Ocient, tailored for complex data requirements and optimized performance.","sidebarTitle":"LAT Advanced Loading and Transformations","href":"/lat-advanced-loading-and-transformations"}]},{"title":"LAT Overview","sidebarTitle":"LAT Overview","href":"/lat-overview"},{"title":"LAT Data Types in Loading","sidebarTitle":"LAT Data Types in Loading","href":"/lat-data-types-in-loading"},{"group":"LAT Pipeline Configuration","root":{"title":"LAT Pipeline Configuration","sidebarTitle":"LAT Pipeline Configuration","href":"/lat-pipeline-configuration"},"expanded":false,"pages":[{"title":"LAT Source Configuration","sidebarTitle":"LAT Source Configuration","href":"/lat-source-configuration"},{"title":"LAT Sink Configuration","sidebarTitle":"LAT Sink Configuration","href":"/lat-sink-configuration"},{"title":"LAT Extract Configuration","sidebarTitle":"LAT Extract Configuration","href":"/lat-extract-configuration"},{"title":"LAT Transform Configuration","sidebarTitle":"LAT Transform Configuration","href":"/lat-transform-configuration"}]},{"group":"LAT Data Transformation with JMESPath","root":{"title":"LAT Data Transformation with JMESPath","sidebarTitle":"LAT Data Transformation with JMESPath","href":"/lat-data-transformation-with-jmespath"},"expanded":false,"pages":[{"title":"LAT Transformation Functions","sidebarTitle":"LAT Transformation Functions","href":"/lat-transformation-functions"},{"title":"LAT User-Defined Transformations","sidebarTitle":"LAT User-Defined Transformations","href":"/lat-user-defined-transformations"},{"title":"LAT Record Filtering","sidebarTitle":"LAT Record Filtering","href":"/lat-record-filtering"}]},{"title":"LAT Service Configuration","sidebarTitle":"LAT Service Configuration","href":"/lat-service-configuration"},{"title":"LAT Metrics","sidebarTitle":"LAT Metrics","href":"/lat-metrics"},{"title":"LAT Log4J Configuration","sidebarTitle":"LAT Log4J Configuration","href":"/lat-log4j-configuration"},{"title":"LAT Packaging and Installation","sidebarTitle":"LAT Packaging and Installation","href":"/lat-packaging-and-installation"},{"title":"LAT Advanced Topics","sidebarTitle":"LAT Advanced Topics","href":"/lat-advanced-topics"},{"group":"LAT Client Command Line Interface","root":{"title":"LAT Client Command Line Interface","sidebarTitle":"LAT Client Command Line Interface","href":"/lat-client-command-line-interface"},"expanded":false,"pages":[{"title":"Install LAT Client in a Disconnected Network","sidebarTitle":"Install LAT Client in a Disconnected Network","href":"/install-lat-client-in-a-disconnected-network"}]}]},{"title":"Version Compatibility","sidebarTitle":"Version Compatibility","href":"/version-compatibility"},{"group":"Release Notes","root":{"title":"Release Notes","sidebarTitle":"Release Notes","href":"/release-notes"},"expanded":false,"pages":[{"title":"OcientAIQ Unified Data Platform Release Notes","sidebarTitle":"OcientAIQ Unified Data Platform Release Notes","href":"/ocientaiq-unified-data-platform-release-notes"},{"title":"JDBC Release Notes","sidebarTitle":"JDBC Release Notes","href":"/jdbc-release-notes"},{"title":"pyocient Release Notes","sidebarTitle":"pyocient Release Notes","href":"/pyocient-release-notes"},{"title":"OCGraph Release Notes","sidebarTitle":"OCGraph Release Notes","href":"/ocgraph-release-notes"},{"title":"Spark Connector Release Notes","sidebarTitle":"Spark Connector Release Notes","href":"/spark-connector-release-notes"}]},{"title":"Glossary","sidebarTitle":"Glossary","href":"/glossary"},{"title":"Open Source Acknowledgments","sidebarTitle":"Open Source Acknowledgments","href":"/open-source-acknowledgments"},{"title":"Download","url":"https://ocient.com/documentation-landing-page/","href":"/download"}]}]},"basePath":"","title":"Ingest Data with Legacy LAT Reference - Ocient Documentation","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-u3J1-UOn.js","DynamicMarkdown-B-f2cqXQ.js","zoom-image-lightbox-DTFzvaXJ.js","lightbox-handle-r17bVUz3.js"]}