Amazon S3 and S3-compatible object storage for engine managed table data, with AWS workload identity and intermediary roles for external access.
Breaking change. Managed-table storage now uses managed_table_storage and managed_table_bucket_name with a per-cloud storage.aws / gcp / azure block. The former keys — type, api_scheme, bucket_name, and the minio / azurite types — are removed and are rejected by the engine at startup. This schema requires a recent engine image; keep the chart and engine on matching versions.
This page configures Amazon S3 or an S3-compatible endpoint as engine object storage.Every engine needs object storage for managed table data. The chart does not support local-filesystem storage for engines, so an engine pod never becomes Ready until customEngineConfig.storage points at object storage.With object storage as the backing store, durability does not depend on the per-pod data volumes mounted to each engine. Even a complete loss of those volumes does not cause data loss, because the authoritative copy of managed table data lives in the object store.You configure object storage on the engine through customEngineConfig.storage, which the chart passes through unchanged into the engine’s config.yaml. The managed_table_storage and managed_table_bucket_name keys match the Firebolt Core configuration schema, and the chart does not validate them. The engine reads AWS credentials from the pod’s workload identity, which you configure through AWS IRSA or AWS Pod Identity.
Create an S3 bucket, block all public access, and turn on default server-side encryption:
# Region and bucket name used by the AWS CLI calls below.export AWS_DEFAULT_REGION=us-east-1export BUCKET_NAME=firebolt-managed# Create the bucket in the configured region.aws s3api create-bucket --bucket "${BUCKET_NAME}"# Block all forms of public access at the bucket level.aws s3api put-public-access-block \ --bucket "${BUCKET_NAME}" \ --public-access-block-configuration \ BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true# Enable default SSE-S3 encryption on every object written.aws s3api put-bucket-encryption \ --bucket "${BUCKET_NAME}" \ --server-side-encryption-configuration \ '{"Rules":[{"ApplyServerSideEncryptionByDefault":{"SSEAlgorithm":"AES256"}}]}'
Create the ServiceAccount, then install the chart with the matching values:
# Create the IRSA-annotated ServiceAccount in the release namespace.kubectl apply -f engine-serviceaccount.yaml# Install the chart against the bucket and the ServiceAccount.helm install firebolt ./helm \ --namespace firebolt --create-namespace \ -f my-values.yaml
To set the AWS region explicitly, add region under aws. The EKS identity webhook usually injects the region automatically.
Create a table, insert a row, and list the bucket to confirm the engine wrote data through to S3:
# Forward the gateway Service to localhost:8080 in the background.kubectl -n firebolt port-forward svc/firebolt-gateway 8080:80 &# Create a table on the engine.curl -s http://localhost:8080/ -H "X-Firebolt-Engine: default" \ -H "Content-Type: text/plain" --data "create table t (val int)"# Insert one row, which forces the engine to write a tablet.curl -s http://localhost:8080/ -H "X-Firebolt-Engine: default" \ -H "Content-Type: text/plain" --data "insert into t values (1)"# List the bucket. New object-storage prefixes appear as the engine writes data.aws s3 ls s3://firebolt-managed/
New prefixes appear under the bucket as the engine writes data.
For any S3-compatible endpoint reachable from the engine pods, such as self-hosted MinIO, Ceph RGW, or a managed store like Nebius or CoreWeave, set managed_table_storage: s3 and point aws.endpoint at the store. Supply credentials through the engine environment (engineSpec.extraEnv / extraEnvFrom); a zero-auth emulator accepts any values. See S3-compatible storage for Nebius and CoreWeave.
Restrict external access with an intermediary role
The bucket you set under customEngineConfig.storage holds the engine’s managed tablet data, and the engine reaches it with the engine pod’s own AWS identity. Queries that read from or write to external locations, such as external tables or COPY statements that point at a different bucket, follow a separate credential path.By default, external access also uses the engine pod’s own AWS identity. That identity belongs to this chart release, so it is not a convenient identity for the owner of an external bucket to reference when they grant access.An intermediary role gives external access a stable identity instead. When you set one, the engine assumes the intermediary role first, and then assumes the external role from there, rather than using its own pod identity. Because the intermediary role ARN is stable and known ahead of time, you can share it with third parties and reference it in S3 bucket policies, IAM role trust policies, and AWS accounts outside your own organization. Access to the object storage bucket always uses the engine pod’s own identity, so the intermediary role applies only to external locations.Create the intermediary IAM role and grant the engine’s identity permission to assume it. The intermediary role’s trust policy must allow the engine ServiceAccount identity to assume it, and the role needs only sts:AssumeRole on the external roles it is allowed to reach.Set the intermediary role ARN under customEngineConfig.storage.aws.intermediary_access_role:
customEngineConfig is global to the release. Multiple engines under the same engines: list share the same customEngineConfig.storage block, and therefore the same bucket. To run engines against different buckets, install the chart twice in separate releases, each with its own customEngineConfig.storage.
Was this page helpful?
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Firebolt Documentation","description":"Firebolt is a high-performance cloud data warehouse optimized for sub-second analytics at scale. This documentation covers SQL references, architecture, integrations, security, and operational guides for developers and data engineers.","colors":{"primary":"#f72931","light":"#f72931","dark":"#f72931"},"logo":{"light":"https://mintcdn.com/firebolt/jsk4YOKkUxncWQJD/assets/images/firebolt_logo_website.svg?fit=max\u0026auto=format\u0026n=jsk4YOKkUxncWQJD\u0026q=85\u0026s=e40a8826a260bed647edd25c7cf669c7","dark":"https://mintcdn.com/firebolt/aMFgmUp8e_qNBRJf/assets/images/firebolt_logo_website_dark.svg?fit=max\u0026auto=format\u0026n=aMFgmUp8e_qNBRJf\u0026q=85\u0026s=33353ecce6603bdfbe18c4f4dc9bddba","href":"https://docs.firebolt.io"},"favicon":"https://mintcdn.com/firebolt/k_vuGw9KG_-t9B3w/assets/mintlify/firebolt-favicon.png?fit=max\u0026auto=format\u0026n=k_vuGw9KG_-t9B3w\u0026q=85\u0026s=a5cc2984121196c9ed86f718fa3531c2","appearance":{"default":"system"},"background":{"color":{"light":"#fbfbf8","dark":"#0a0a0a"}},"navbar":{"primary":{"type":"button","label":"Sign Up","href":"https://go.firebolt.io/signup"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/firebolt","facebook":"https://www.facebook.com/firebolthq","youtube":"https://www.youtube.com/channel/UCR94oA7VkFpsriGzwkpYbAA","instagram":"https://www.instagram.com/firebolt_hq","x":"https://twitter.com/FireboltHQ"}},"fonts":{"family":"JetBrains Mono","format":"woff2"},"icons":{"library":"lucide"},"styling":{"codeblocks":{"theme":{"light":"css-variables","dark":"css-variables"}},"latex":false},"integrations":{"gtm":{"tagId":"GTM-WQS7M2G"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"firebolt","hasAudioNarration":false,"actualSubdomain":"firebolt","customDomains":["docs.firebolt.io"],"gitSource":{"type":"github","owner":"firebolt-analytics","repo":"packdb","deployBranch":"master","contentDirectory":"docs/docs-mdx","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4ada5812f7e980ce5aa3d","collectionId":"e2666062-03b8-4ba9-aa52-5b9a6dc7e3d7","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4ada5812f7e980ce5aa3d"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4ada5812f7e980ce5aa3d","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"SQL reference","count":426},{"language":"default","tag":"SQL functions","count":261},{"language":"default","tag":"SQL commands","count":94},{"language":"default","tag":"Guides","count":78},{"language":"default","tag":"Self-Managed","count":55},{"language":"default","tag":"Managed service","count":43},{"language":"default","tag":"Numeric functions","count":41},{"language":"default","tag":"Data definition","count":40},{"language":"default","tag":"String functions","count":37},{"language":"default","tag":"Information schema","count":35}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"assets/mintlify/css/_overrides.css","content":":root{--rounded-3xl:0px;--rounded-2xl:0px;--rounded-xl:0px;--rounded-lg:0px;--rounded-md:0px;--rounded:0px;--rounded-sm:0px;--rounded-search:0px}div:has(#content-container){max-width:100%}div#navbar>div{max-width:100%}.mx-auto.max-w-5xl{max-width:none!important}.code-block,.code-group{--mint-color-text:#111110;--mint-token-parameter:#111110;--mint-token-comment:#7d7b72;--mint-token-punctuation:#4d4a44;--mint-token-keyword:#f72931;--mint-token-constant:#1f5aa8;--mint-token-function:#1f5aa8;--mint-token-string:#1a7a46;--mint-token-string-expression:#1a7a46}.dark .code-block,.dark .code-group{--mint-color-text:#ededed;--mint-token-parameter:#ededed;--mint-token-comment:#9c9a91;--mint-token-punctuation:#dbdad6;--mint-token-keyword:#f72931;--mint-token-constant:#4fa2ff;--mint-token-function:#4fa2ff;--mint-token-string:#27b96b;--mint-token-string-expression:#27b96b}.\\[\\\u0026_mark\\]\\:text-green-700 mark,.text-green-700{color:rgb(var(--primary))!important}.code-block,.code-group{background-color:transparent}header#navbar{border-bottom:1px solid rgb(var(--gray-200)/.7)}.nav-tabs .bg-primary{display:none}#sidebar-content{border:0}#table-of-contents-layout{padding:0}.dark div[class*=bg-white][class*=\"0.03\"],div[class*=bg-gray-950]{background-color:transparent!important;border-bottom-color:transparent!important}div#navbar div[class*=rounded-2xl][class*=pointer-events-auto]{border-color:transparent!important}.max-w-5xl>div[class*=max-w-][class*=\"28rem\"]{max-width:16rem!important}h2.header-home{padding-top:20px;padding-bottom:20px;font-size:24px}ul.list-home{margin-left:0;margin-top:15px;margin-bottom:15px;list-style-type:none;font-size:16px}ul.list-home a::after{content:\" >\"}.list-home li{margin-bottom:10px}#mobile-nav li>a>div:first-child,nav[aria-label=Pages] li>a>div:first-child{margin-left:18px}:is(div.code-block, .code-group) pre.shiki code,:is(div.code-block, .code-group) pre.shiki code .line,:is(div.code-block, .code-group) pre.shiki code .line span{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace!important;font-variant-ligatures:none;font-feature-settings:normal;white-space:pre!important;word-break:normal!important;overflow-wrap:normal!important}:is(div.code-block, .code-group) pre.shiki code{white-space:normal!important}:is(div.code-block, .code-group) pre.shiki code .line{display:block;line-height:1.5;margin:0;padding:0}:is(div.code-block, .code-group) pre.shiki code .line:empty{min-height:1.5em}:is(div.code-block, .code-group) pre.shiki code .line:empty:last-child{min-height:0}:is(div.code-block, .code-group) .code-block-wrap pre.shiki code .line span,:is(div.code-block, .code-group).code-block-wrap pre.shiki code .line span{white-space:pre!important;word-break:normal!important;overflow-wrap:normal!important}.ascii-diagram div.code-block pre.shiki code .line{line-height:1!important}.feature-tag{display:inline-block;padding:.1em .5em;font-size:.75em;font-weight:600;letter-spacing:.02em;line-height:1.4;vertical-align:middle;white-space:nowrap;color:#4d4a44;background-color:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.1)}.dark .feature-tag{color:#dbdad6;background-color:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12)}"},{"filePath":"assets/mintlify/css/query-window.css","content":".query-window{background-color:#fff;border:1px solid #e1e4e8;margin:1.5rem 0}.dark .query-window{background-color:#000}.query-window>div,.query-window>div.flex{margin:0;padding:0}.query-window,.query-window>div.query-toolbar{font-size:inherit;overflow-wrap:break-word;line-height:1.6;box-sizing:border-box}.query-window>div.query-toolbar{margin-top:0;padding:12px 16px;border-bottom:1px solid #e1e4e8;display:flex;justify-content:space-between;align-items:center}.query-window .run-button,.query-window .window-title{overflow-wrap:break-word;line-height:1.6;box-sizing:border-box;font-size:.95em;font-weight:500}.query-window .run-button{font-family:inherit;font-size:100%;line-height:1.15;margin:0;overflow:visible;text-transform:none;appearance:button;background:#ff0820;color:#fff;border:0;padding:6px 16px;border-radius:4px;cursor:pointer;transition:background .2s ease}.query-window .run-button:disabled{background:#a9a9a9;cursor:not-allowed}.query-window>code{overflow-wrap:break-word;box-sizing:border-box;font-family:monospace;margin:16px;padding:8px;display:block;line-height:1.5;cursor:text;border-radius:0;outline:0;border:1px solid #e1e4e8;background:#55555511;white-space:pre-wrap}.query-window>code:focus,.query-window>code:hover{border-color:rgb(var(--primary))}.query-window .code-block{border-radius:0;border:0;border-bottom:1px solid #e1e4e8;margin:0;padding:16px}.query-window .code-block div{border-radius:0;border:0;margin:0;padding:0}.query-window>code.firebolt-sql{-webkit-user-modify:read-write;-webkit-line-break:after-white-space;transition:background-color .2s ease;font-family:var(--mono-font)}.query-window .server-unavailable-banner{overflow-wrap:break-word;box-sizing:border-box;background-color:#fff8e6;border:1px solid #ffd666;border-radius:4px;color:#664d03;padding:12px;margin:8px 16px;font-family:var(--body-font);font-size:14px;line-height:1.5;display:flex;align-items:center}.query-window .server-unavailable-banner::before{content:\"⚠️\";margin-right:8px;font-size:16px}.query-window-hidden{display:none!important}.query-window table{display:table;border-collapse:collapse;font-family:monospace;width:auto}.query-window table td,.query-window table th{overflow-wrap:break-word;line-height:1.6;border-collapse:collapse;box-sizing:border-box;min-width:7.5rem;border-left:0;padding:16px;text-align:left;border-bottom:1px solid #e1e4e8}.query-window table th{border-top:1px solid #e1e4e8}.query-window table thead th{font-weight:600;position:sticky;top:0;z-index:1}.query-window table thead th span{display:inline-block;margin-left:4px;font-weight:400;color:#aaa;line-height:1.3}.query-window .error-message,.query-window table,.query-window>p{overflow-wrap:break-word;line-height:1.6;box-sizing:border-box}.query-window>p{margin:0;font-size:.8em;color:#666;padding:8px 16px}.query-window>p span{display:inline-block;margin-right:16px}.query-window .error-message{font-size:inherit;border:1px solid #fde8e8;border-radius:4px;color:#9b1c1c;padding:12px}.query-window .error-description{overflow-wrap:break-word;color:#9b1c1c;box-sizing:border-box;margin-top:0;font-family:'SF Mono','Roboto Mono',Consolas,monospace;font-size:14px;line-height:1.5}"}],"page":{"pagePath":"self-managed/helm-chart/usage/object-storage/amazon-s3","slug":"/self-managed/helm-chart/usage/object-storage/amazon-s3","pageMetadata":{"description":"Amazon S3 and S3-compatible object storage for engine managed table data, with AWS workload identity and intermediary roles for external access.","sidebarTitle":"Amazon S3","title":"Amazon S3","href":"/self-managed/helm-chart/usage/object-storage/amazon-s3"},"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: \"Amazon S3 and S3-compatible object storage for engine managed table data, with AWS workload identity and intermediary roles for external access.\"\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];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Breaking change.`}),` Managed-table storage now uses `,_jsx(_components.code,{children:`managed_table_storage`}),` and `,_jsx(_components.code,{children:`managed_table_bucket_name`}),` with a per-cloud `,_jsx(_components.code,{children:`storage.aws`}),` / `,_jsx(_components.code,{children:`gcp`}),` / `,_jsx(_components.code,{children:`azure`}),` block. The former keys — `,_jsx(_components.code,{children:`type`}),`, `,_jsx(_components.code,{children:`api_scheme`}),`, `,_jsx(_components.code,{children:`bucket_name`}),`, and the `,_jsx(_components.code,{children:`minio`}),` / `,_jsx(_components.code,{children:`azurite`}),` types — are removed and are rejected by the engine at startup. This schema requires a recent engine image; keep the chart and engine on matching versions.`]})}),`\n`,_jsx(_components.p,{children:`This page configures Amazon S3 or an S3-compatible endpoint as engine object storage.`}),`\n`,_jsxs(_components.p,{children:[`Every engine needs object storage for managed table data. The chart does not support local-filesystem storage for engines, so an engine pod never becomes Ready until `,_jsx(_components.code,{children:`customEngineConfig.storage`}),` points at object storage.`]}),`\n`,_jsx(_components.p,{children:`With object storage as the backing store, durability does not depend on the per-pod data volumes mounted to each engine. Even a complete loss of those volumes does not cause data loss, because the authoritative copy of managed table data lives in the object store.`}),`\n`,_jsxs(_components.p,{children:[`You configure object storage on the engine through `,_jsx(_components.code,{children:`customEngineConfig.storage`}),`, which the chart passes through unchanged into the engine’s `,_jsx(_components.code,{children:`config.yaml`}),`. The `,_jsx(_components.code,{children:`managed_table_storage`}),` and `,_jsx(_components.code,{children:`managed_table_bucket_name`}),` keys match the Firebolt Core configuration schema, and the chart does not validate them. The engine reads AWS credentials from the pod’s workload identity, which you configure through `,_jsx(_components.a,{href:`https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html`,children:`AWS IRSA`}),` or `,_jsx(_components.a,{href:`https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html`,children:`AWS Pod Identity`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsx(_components.p,{children:`Before you begin, ensure that you have the following installed and configured:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A Kubernetes cluster running on Amazon EKS.`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`kubectl`}),` configured to access your cluster.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`helm`}),` v3 installed on your local machine.`]}),`\n`,_jsx(_components.li,{children:`An AWS account with permissions to create S3 buckets, IAM roles, and IAM policies.`}),`\n`,_jsxs(_components.li,{children:[`An engine image that supports the `,_jsx(_components.code,{children:`s3`}),` storage backend.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`use-amazon-s3`,children:`Use Amazon S3`}),`\n`,_jsxs(_components.p,{children:[`The following examples use an S3 bucket named `,_jsx(_components.code,{children:`firebolt-managed`}),`, but you can choose any name you like.`]}),`\n`,_jsx(Heading,{level:`3`,id:`create-the-bucket`,children:`Create the bucket`}),`\n`,_jsx(_components.p,{children:`Create an S3 bucket, block all public access, and turn on default server-side encryption:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes css-variables css-variables`,style:{backgroundColor:`var(--mint-background)`,\"--shiki-dark-bg\":`var(--mint-background)`,color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`18`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:`# Region and bucket name used by the AWS CLI calls below.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`export`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` AWS_DEFAULT_REGION`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`=`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:`us-east-1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`export`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` BUCKET_NAME`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`=`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:`firebolt-managed`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:`# Create the bucket in the configured region.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-function, #0068d6)`,\"--shiki-dark\":`var(--mint-token-function, #0068d6)`},children:`aws`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` s3api`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` create-bucket`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` --bucket`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:' \"${BUCKET_NAME}\"'})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:`# Block all forms of public access at the bucket level.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-function, #0068d6)`,\"--shiki-dark\":`var(--mint-token-function, #0068d6)`},children:`aws`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` s3api`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` put-public-access-block`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` --bucket`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:' \"${BUCKET_NAME}\"'}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` --public-access-block-configuration`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` BlockPublicAcls=`}),_jsx(_components.span,{style:{color:`var(--mint-token-constant, #171717)`,\"--shiki-dark\":`var(--mint-token-constant, #171717)`},children:`true`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:`,IgnorePublicAcls=`}),_jsx(_components.span,{style:{color:`var(--mint-token-constant, #171717)`,\"--shiki-dark\":`var(--mint-token-constant, #171717)`},children:`true`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:`,BlockPublicPolicy=`}),_jsx(_components.span,{style:{color:`var(--mint-token-constant, #171717)`,\"--shiki-dark\":`var(--mint-token-constant, #171717)`},children:`true`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:`,RestrictPublicBuckets=`}),_jsx(_components.span,{style:{color:`var(--mint-token-constant, #171717)`,\"--shiki-dark\":`var(--mint-token-constant, #171717)`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:`# Enable default SSE-S3 encryption on every object written.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-function, #0068d6)`,\"--shiki-dark\":`var(--mint-token-function, #0068d6)`},children:`aws`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` s3api`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` put-bucket-encryption`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` --bucket`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:' \"${BUCKET_NAME}\"'}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` --server-side-encryption-configuration`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` \\\\`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` '{\"Rules\":[{\"ApplyServerSideEncryptionByDefault\":{\"SSEAlgorithm\":\"AES256\"}}]}'`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`create-an-iam-role`,children:`Create an IAM role`}),`\n`,_jsxs(_components.p,{children:[`The role needs `,_jsx(_components.code,{children:`ListBucket`}),` on the bucket and `,_jsx(_components.code,{children:`GetObject*`}),` and `,_jsx(_components.code,{children:`PutObject*`}),` on its contents:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes css-variables css-variables`,style:{backgroundColor:`var(--mint-background)`,\"--shiki-dark-bg\":`var(--mint-background)`,color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` \"Version\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"2012-10-17\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` \"Statement\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` \"Sid\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"StorageBuckets\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` \"Effect\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"Allow\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` \"Action\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` [`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:`\"s3:ListBucket\"`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:`]`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` \"Resource\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` [`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:`\"arn:aws:s3:::firebolt-managed\"`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` }`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` \"Sid\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"ObjectAccess\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` \"Effect\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"Allow\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` \"Action\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` [`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:`\"s3:GetObject*\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`,`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"s3:PutObject*\"`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:`]`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` \"Resource\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` [`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:`\"arn:aws:s3:::firebolt-managed/*\"`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Bind the role to a ServiceAccount in the release namespace through the IRSA annotation:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes css-variables css-variables`,style:{backgroundColor:`var(--mint-background)`,\"--shiki-dark-bg\":`var(--mint-background)`,color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`apiVersion`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` v1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`kind`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` ServiceAccount`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`metadata`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` name`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` firebolt-engine`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` namespace`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` firebolt`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` annotations`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` eks.amazonaws.com/role-arn`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` arn:aws:iam::\u003caccount-id>:role/\u003cengine-s3-role>`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`point-the-chart-at-both`,children:`Point the chart at both`}),`\n`,_jsx(_components.p,{children:`Run the engine pods under the annotated ServiceAccount and set the storage block to the S3 bucket:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes css-variables css-variables`,style:{backgroundColor:`var(--mint-background)`,\"--shiki-dark-bg\":`var(--mint-background)`,color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:`# my-values.yaml`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`engineSpec`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` serviceAccount`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` firebolt-engine`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`customEngineConfig`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` storage`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` managed_table_storage`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` s3`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` managed_table_bucket_name`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` firebolt-managed`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Create the ServiceAccount, then install the chart with the matching values:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes css-variables css-variables`,style:{backgroundColor:`var(--mint-background)`,\"--shiki-dark-bg\":`var(--mint-background)`,color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:`# Create the IRSA-annotated ServiceAccount in the release namespace.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-function, #0068d6)`,\"--shiki-dark\":`var(--mint-token-function, #0068d6)`},children:`kubectl`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` apply`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` -f`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` engine-serviceaccount.yaml`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:`# Install the chart against the bucket and the ServiceAccount.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-function, #0068d6)`,\"--shiki-dark\":`var(--mint-token-function, #0068d6)`},children:`helm`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` install`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` firebolt`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` ./helm`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` --namespace`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` firebolt`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` --create-namespace`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` -f`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` my-values.yaml`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`To set the AWS region explicitly, add `,_jsx(_components.code,{children:`region`}),` under `,_jsx(_components.code,{children:`aws`}),`. The EKS identity webhook usually injects the region automatically.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes css-variables css-variables`,style:{backgroundColor:`var(--mint-background)`,\"--shiki-dark-bg\":`var(--mint-background)`,color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`customEngineConfig`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` storage`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` managed_table_storage`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` s3`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` managed_table_bucket_name`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` firebolt-managed`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` aws`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` region`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` us-east-1`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`confirm-that-object-storage-works`,children:`Confirm that object storage works`}),`\n`,_jsx(_components.p,{children:`Create a table, insert a row, and list the bucket to confirm the engine wrote data through to S3:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes css-variables css-variables`,style:{backgroundColor:`var(--mint-background)`,\"--shiki-dark-bg\":`var(--mint-background)`,color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:`# Forward the gateway Service to localhost:8080 in the background.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-function, #0068d6)`,\"--shiki-dark\":`var(--mint-token-function, #0068d6)`},children:`kubectl`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` -n`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` firebolt`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` port-forward`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` svc/firebolt-gateway`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` 8080:80`}),_jsx(_components.span,{style:{color:`var(--mint-token-punctuation, #171717)`,\"--shiki-dark\":`var(--mint-token-punctuation, #171717)`},children:` \u0026`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:`# Create a table on the engine.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-function, #0068d6)`,\"--shiki-dark\":`var(--mint-token-function, #0068d6)`},children:`curl`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` -s`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` http://localhost:8080/`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` -H`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"X-Firebolt-Engine: default\"`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` -H`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"Content-Type: text/plain\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` --data`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"create table t (val int)\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:`# Insert one row, which forces the engine to write a tablet.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-function, #0068d6)`,\"--shiki-dark\":`var(--mint-token-function, #0068d6)`},children:`curl`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` -s`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` http://localhost:8080/`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` -H`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"X-Firebolt-Engine: default\"`}),_jsx(_components.span,{style:{color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` -H`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"Content-Type: text/plain\"`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` --data`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` \"insert into t values (1)\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:`# List the bucket. New object-storage prefixes appear as the engine writes data.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-function, #0068d6)`,\"--shiki-dark\":`var(--mint-token-function, #0068d6)`},children:`aws`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` s3`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` ls`}),_jsx(_components.span,{style:{color:`var(--mint-token-string, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string, #297a3a)`},children:` s3://firebolt-managed/`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`New prefixes appear under the bucket as the engine writes data.`}),`\n`,_jsx(Heading,{level:`2`,id:`use-an-s3-compatible-endpoint`,children:`Use an S3-compatible endpoint`}),`\n`,_jsxs(_components.p,{children:[`For any S3-compatible endpoint reachable from the engine pods, such as self-hosted MinIO, Ceph RGW, or a managed store like Nebius or CoreWeave, set `,_jsx(_components.code,{children:`managed_table_storage: s3`}),` and point `,_jsx(_components.code,{children:`aws.endpoint`}),` at the store. Supply credentials through the engine environment (`,_jsx(_components.code,{children:`engineSpec.extraEnv`}),` / `,_jsx(_components.code,{children:`extraEnvFrom`}),`); a zero-auth emulator accepts any values. See `,_jsx(_components.a,{href:`/self-managed/helm-chart/usage/object-storage/s3-compatible`,children:`S3-compatible storage`}),` for Nebius and CoreWeave.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes css-variables css-variables`,style:{backgroundColor:`var(--mint-background)`,\"--shiki-dark-bg\":`var(--mint-background)`,color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`customEngineConfig`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` storage`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` managed_table_storage`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` s3`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` managed_table_bucket_name`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` firebolt-managed`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` aws`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` endpoint`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` http://minio.minio.svc.cluster.local:9000`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` path_style_addressing`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-constant, #171717)`,\"--shiki-dark\":`var(--mint-token-constant, #171717)`},children:` true`}),_jsx(_components.span,{style:{color:`var(--mint-token-comment, #666666)`,\"--shiki-dark\":`var(--mint-token-comment, #666666)`},children:` # non-AWS S3-compatible store; ignored for AWS S3`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`endpoint`}),` must be a URL the engine pod can resolve and reach. Create the bucket out of band before the engine starts.`]}),`\n`,_jsx(Heading,{level:`2`,id:`restrict-external-access-with-an-intermediary-role`,children:`Restrict external access with an intermediary role`}),`\n`,_jsxs(_components.p,{children:[`The bucket you set under `,_jsx(_components.code,{children:`customEngineConfig.storage`}),` holds the engine’s managed tablet data, and the engine reaches it with the engine pod’s own AWS identity. Queries that read from or write to external locations, such as external tables or `,_jsx(_components.code,{children:`COPY`}),` statements that point at a different bucket, follow a separate credential path.`]}),`\n`,_jsx(_components.p,{children:`By default, external access also uses the engine pod’s own AWS identity. That identity belongs to this chart release, so it is not a convenient identity for the owner of an external bucket to reference when they grant access.`}),`\n`,_jsx(_components.p,{children:`An intermediary role gives external access a stable identity instead. When you set one, the engine assumes the intermediary role first, and then assumes the external role from there, rather than using its own pod identity. Because the intermediary role ARN is stable and known ahead of time, you can share it with third parties and reference it in S3 bucket policies, IAM role trust policies, and AWS accounts outside your own organization. Access to the object storage bucket always uses the engine pod’s own identity, so the intermediary role applies only to external locations.`}),`\n`,_jsxs(_components.p,{children:[`Create the intermediary IAM role and grant the engine’s identity permission to assume it. The intermediary role’s trust policy must allow the engine ServiceAccount identity to assume it, and the role needs only `,_jsx(_components.code,{children:`sts:AssumeRole`}),` on the external roles it is allowed to reach.`]}),`\n`,_jsxs(_components.p,{children:[`Set the intermediary role ARN under `,_jsx(_components.code,{children:`customEngineConfig.storage.aws.intermediary_access_role`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes css-variables css-variables`,style:{backgroundColor:`var(--mint-background)`,\"--shiki-dark-bg\":`var(--mint-background)`,color:`var(--mint-foreground)`,\"--shiki-dark\":`var(--mint-foreground)`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`customEngineConfig`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` storage`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` managed_table_storage`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` s3`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` managed_table_bucket_name`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` firebolt-managed`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` aws`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:` intermediary_access_role`}),_jsx(_components.span,{style:{color:`var(--mint-token-keyword, #bd2864)`,\"--shiki-dark\":`var(--mint-token-keyword, #bd2864)`},children:`:`}),_jsx(_components.span,{style:{color:`var(--mint-token-string-expression, #297a3a)`,\"--shiki-dark\":`var(--mint-token-string-expression, #297a3a)`},children:` arn:aws:iam::\u003caccount-id>:role/firebolt-intermediary`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The chart passes the `,_jsx(_components.code,{children:`storage.aws`}),` block through unchanged. The block is valid only when `,_jsx(_components.code,{children:`managed_table_storage`}),` is `,_jsx(_components.code,{children:`s3`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`storage-scope`,children:`Storage scope`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`customEngineConfig`}),` is global to the release. Multiple engines under the same `,_jsx(_components.code,{children:`engines:`}),` list share the same `,_jsx(_components.code,{children:`customEngineConfig.storage`}),` block, and therefore the same bucket. To run engines against different buckets, install the chart twice in separate releases, each with its own `,_jsx(_components.code,{children:`customEngineConfig.storage`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{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":{"codeStyling":{"theme":{"light":"css-variables","dark":"css-variables"}},"config":{},"pageMetadata":{"description":"Amazon S3 and S3-compatible object storage for engine managed table data, with AWS workload identity and intermediary roles for external access.","sidebarTitle":"Amazon S3","title":"Amazon S3","href":"/self-managed/helm-chart/usage/object-storage/amazon-s3"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Use Amazon S3","slug":"use-amazon-s3","depth":2,"children":[{"title":"Create the bucket","slug":"create-the-bucket","depth":3,"children":[]},{"title":"Create an IAM role","slug":"create-an-iam-role","depth":3,"children":[]},{"title":"Point the chart at both","slug":"point-the-chart-at-both","depth":3,"children":[]},{"title":"Confirm that object storage works","slug":"confirm-that-object-storage-works","depth":3,"children":[]}]},{"title":"Use an S3-compatible endpoint","slug":"use-an-s3-compatible-endpoint","depth":2,"children":[]},{"title":"Restrict external access with an intermediary role","slug":"restrict-external-access-with-an-intermediary-role","depth":2,"children":[]},{"title":"Storage scope","slug":"storage-scope","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/firebolt/e61fecbf3feb7bae/assets/js/query-window.js","/_mintlify/custom/firebolt/402e14b37ca25610/scarf-pixel.js"],"subdomain":"firebolt","siteName":"Firebolt Documentation","title":"Amazon S3 - Firebolt Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-02T13:36:40.441Z","originalFileLocation":"self-managed/helm-chart/usage/object-storage/amazon-s3.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=\"system\"}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=\"Amazon S3 and S3-compatible object storage for engine managed table data, with AWS workload identity and intermediary roles for external access.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Firebolt 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/firebolt/Xvo2TFRZ7sI7wJzt/_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/firebolt/Xvo2TFRZ7sI7wJzt/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/firebolt/Xvo2TFRZ7sI7wJzt/_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/firebolt/Xvo2TFRZ7sI7wJzt/_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/firebolt/Xvo2TFRZ7sI7wJzt/_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/firebolt/Xvo2TFRZ7sI7wJzt/_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/firebolt/Xvo2TFRZ7sI7wJzt/_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/firebolt/Xvo2TFRZ7sI7wJzt/_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/firebolt/Xvo2TFRZ7sI7wJzt/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Amazon S3 - Firebolt Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Amazon S3 and S3-compatible object storage for engine managed table data, with AWS workload identity and intermediary roles for external access.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Firebolt Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.firebolt.io/self-managed/helm-chart/usage/object-storage/amazon-s3\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://firebolt.mintlify.app/_mintlify/api/og/v2?division=Object+Storage\u0026amp;title=Amazon+S3\u0026amp;description=Amazon+S3+and+S3-compatible+object+storage+for+engine+managed+table+data%2C+with+AWS+workload+identity+and+intermediary+roles+for+external+access.\u0026amp;theme=8a81ffa540781fcdca668931\u0026amp;signature=76cffe8f0a4a6eff7719ba035bf920880f53200ef196d4cba85237a5c8449904\">\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=\"Amazon S3 - Firebolt Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Amazon S3 and S3-compatible object storage for engine managed table data, with AWS workload identity and intermediary roles for external access.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://firebolt.mintlify.app/_mintlify/api/og/v2?division=Object+Storage\u0026amp;title=Amazon+S3\u0026amp;description=Amazon+S3+and+S3-compatible+object+storage+for+engine+managed+table+data%2C+with+AWS+workload+identity+and+intermediary+roles+for+external+access.\u0026amp;theme=8a81ffa540781fcdca668931\u0026amp;signature=76cffe8f0a4a6eff7719ba035bf920880f53200ef196d4cba85237a5c8449904\">\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/firebolt/Xvo2TFRZ7sI7wJzt/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Firebolt Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#f72931\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.firebolt.io/self-managed/helm-chart/usage/object-storage/amazon-s3\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/self-managed/helm-chart/usage/object-storage/amazon-s3.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.firebolt.io/#organization\",\"name\":\"Firebolt Documentation\",\"url\":\"https://docs.firebolt.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/firebolt/jsk4YOKkUxncWQJD/assets/images/firebolt_logo_website.svg?fit=max\u0026auto=format\u0026n=jsk4YOKkUxncWQJD\u0026q=85\u0026s=e40a8826a260bed647edd25c7cf669c7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.firebolt.io#website\",\"name\":\"Firebolt Documentation\",\"url\":\"https://docs.firebolt.io\",\"publisher\":{\"@id\":\"https://docs.firebolt.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.firebolt.io/self-managed/helm-chart/usage/object-storage/amazon-s3#webpage\",\"url\":\"https://docs.firebolt.io/self-managed/helm-chart/usage/object-storage/amazon-s3\",\"name\":\"Amazon S3\",\"description\":\"Amazon S3 and S3-compatible object storage for engine managed table data, with AWS workload identity and intermediary roles for external access.\",\"dateModified\":\"2026-09-02T13:36:40.441Z\",\"isPartOf\":{\"@id\":\"https://docs.firebolt.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.firebolt.io/self-managed/helm-chart/usage/object-storage/amazon-s3#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.firebolt.io/self-managed/helm-chart/usage/object-storage/amazon-s3#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Self-Managed\",\"item\":\"https://docs.firebolt.io/self-managed\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Helm Chart\",\"item\":\"https://docs.firebolt.io/self-managed/helm-chart/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Usage\",\"item\":\"https://docs.firebolt.io/self-managed/helm-chart/usage/single-engine\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Amazon S3\",\"item\":\"https://docs.firebolt.io/self-managed/helm-chart/usage/object-storage/amazon-s3\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.firebolt.io/self-managed/helm-chart/usage/object-storage/amazon-s3#article\",\"headline\":\"Amazon S3\",\"name\":\"Amazon S3\",\"description\":\"Amazon S3 and S3-compatible object storage for engine managed table data, with AWS workload identity and intermediary roles for external access.\",\"url\":\"https://docs.firebolt.io/self-managed/helm-chart/usage/object-storage/amazon-s3\",\"mainEntityOfPage\":{\"@id\":\"https://docs.firebolt.io/self-managed/helm-chart/usage/object-storage/amazon-s3#webpage\"},\"dateModified\":\"2026-09-02T13:36:40.441Z\",\"publisher\":{\"@id\":\"https://docs.firebolt.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.firebolt.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Firebolt Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Firebolt Documentation","nav":{"global":null,"groups":[{"group":"Overview","pages":[{"title":"What is Firebolt?","sidebarTitle":"What is Firebolt?","href":"/overview"},{"title":"Quickstart","sidebarTitle":"Quickstart","href":"/overview/quickstart"},{"sidebarTitle":"Architecture","title":"Architecture","href":"/overview/architecture-overview"},{"sidebarTitle":"Core concepts","title":"Core concepts","href":"/overview/data-management"}]},{"group":"Performance and Observability","pages":[{"sidebarTitle":"Overview","title":"Overview","href":"/performance-and-observability"},{"group":"Query Planning","pages":[{"sidebarTitle":"Overview","title":"Query Planning","href":"/performance-and-observability/query-planning"},{"sidebarTitle":"Inspecting query plans","title":"Inspecting query plans","href":"/performance-and-observability/query-planning/inspecting-query-plans"},{"sidebarTitle":"Cardinality estimation","title":"Cardinality estimation","href":"/performance-and-observability/query-planning/cardinality-estimation"},{"group":"Automated Column Statistics","pages":[{"sidebarTitle":"Overview","title":"Automated Column Statistics (ACS)","href":"/performance-and-observability/query-planning/automated-column-statistics"},{"sidebarTitle":"Create tables with column statistics","title":"Create tables with column statistics","href":"/performance-and-observability/query-planning/automated-column-statistics/table-with-statistics"},{"sidebarTitle":"Infer from user created indexes","title":"Infer from user created indexes","href":"/performance-and-observability/query-planning/automated-column-statistics/user-created-indexes"}]},{"sidebarTitle":"History-based statistics","title":"History-Based Statistics","href":"/performance-and-observability/query-planning/history-based-statistics"},{"sidebarTitle":"UNIQUE constraints as query hints","title":"UNIQUE constraints as query hints","href":"/performance-and-observability/query-planning/unique-constraint"},{"group":"Query Hints","pages":[{"sidebarTitle":"Overview","title":"Query hints","href":"/performance-and-observability/query-planning/query-hints"},{"sidebarTitle":"No partial aggregation","title":"No partial aggregation","href":"/performance-and-observability/query-planning/query-hints/no-partial-aggregation"},{"sidebarTitle":"No join ordering","title":"No join ordering","href":"/performance-and-observability/query-planning/query-hints/no-join-ordering"},{"sidebarTitle":"Optimize for single row window partitions","title":"Optimize for single row window partitions","href":"/performance-and-observability/query-planning/query-hints/optimize-for-single-row-window-partitions"},{"sidebarTitle":"Unique columns","title":"Unique columns","href":"/performance-and-observability/query-planning/query-hints/unique-columns"}]},{"sidebarTitle":"User-guided mode","title":"User-guided mode","href":"/performance-and-observability/query-planning/user-guided-mode"},{"sidebarTitle":"Late materialization","title":"Late materialization","href":"/performance-and-observability/query-planning/late-materialization"},{"sidebarTitle":"Join pruning","title":"Join pruning","href":"/performance-and-observability/query-planning/join-pruning"}]},{"group":"Runtime","pages":[{"sidebarTitle":"Subresult reuse and result caching","title":"Subresult reuse and result caching","href":"/performance-and-observability/runtime/understand-query-performance-subresult"},{"sidebarTitle":"Spilling","title":"Spilling","href":"/performance-and-observability/runtime/understand-spilling"},{"sidebarTitle":"Iceberg performance","title":"Iceberg performance","href":"/performance-and-observability/runtime/iceberg-performance"}]},{"group":"Storage and Indexing","pages":[{"sidebarTitle":"Overview","title":"Storage and indexing","href":"/performance-and-observability/storage-and-indexing"},{"sidebarTitle":"Primary index","title":"Primary index","href":"/performance-and-observability/storage-and-indexing/primary-index"},{"sidebarTitle":"Data skipping index","title":"Data skipping index","href":"/performance-and-observability/storage-and-indexing/data-skipping-index"},{"sidebarTitle":"Inverted index","title":"Inverted index","href":"/performance-and-observability/storage-and-indexing/inverted-index"},{"sidebarTitle":"Full-text search index","title":"Full-text search index","href":"/performance-and-observability/storage-and-indexing/full-text-search-index"},{"sidebarTitle":"Aggregating index","title":"Aggregating index","href":"/performance-and-observability/storage-and-indexing/aggregating-index"},{"sidebarTitle":"Vector search index","title":"Vector search index","href":"/performance-and-observability/storage-and-indexing/vector-search-index"},{"sidebarTitle":"Table and Column Compression","title":"Table and Column Compression","href":"/performance-and-observability/storage-and-indexing/table-and-column-compression"}]}]},{"group":"Security","pages":[{"sidebarTitle":"Overview","title":"Security","href":"/security"},{"group":"Role-Based Access Control","pages":[{"sidebarTitle":"Overview","title":"Role-Based Access Control","href":"/security/rbac"},{"group":"Database permissions","pages":[{"sidebarTitle":"Overview","title":"Database permissions","href":"/security/rbac/database-permissions"},{"sidebarTitle":"Schema permissions","title":"Schema permissions","href":"/security/rbac/database-permissions/schema-permissions"},{"sidebarTitle":"Table permissions","title":"Table permissions","href":"/security/rbac/database-permissions/table-permissions"},{"sidebarTitle":"View permissions","title":"View permissions","href":"/security/rbac/database-permissions/view-permissions"}]},{"sidebarTitle":"Location Permissions","title":"Location Permissions","href":"/security/rbac/location-permissions"},{"sidebarTitle":"Role Permissions","title":"Role Permissions","href":"/security/rbac/role-permissions"},{"sidebarTitle":"Account Permissions","title":"Account Permissions","href":"/security/rbac/account-permissions"},{"sidebarTitle":"User Permissions","title":"User Permissions","href":"/security/rbac/user-permissions"},{"sidebarTitle":"Engine Permissions","title":"Engine Permissions","href":"/security/rbac/engine-permissions"},{"sidebarTitle":"Ownership","title":"Ownership","href":"/security/rbac/ownership"},{"sidebarTitle":"Check Assigned Privileges","title":"Check Assigned Privileges","href":"/security/rbac/check-privileges"},{"group":"Role Management","pages":[{"sidebarTitle":"Overview","title":"Role Management","href":"/security/rbac/role-management"},{"sidebarTitle":"Default System Roles","title":"Default System Roles","href":"/security/rbac/role-management/system-roles"},{"sidebarTitle":"Custom Roles","title":"Custom Roles","href":"/security/rbac/role-management/custom-roles"}]}]},{"group":"Guides","pages":[{"sidebarTitle":"Role-based access control (RBAC)","title":"Role-based access control (RBAC)","href":"/security/guides/rbac"},{"sidebarTitle":"Column-level security","title":"Column-level security","href":"/security/guides/column-level-security"},{"sidebarTitle":"Secure views","title":"Using secure views","href":"/security/guides/rbac-views-security"},{"sidebarTitle":"LOCATION objects","title":"LOCATION objects","href":"/security/guides/location"},{"sidebarTitle":"Ownership","title":"Ownership","href":"/security/guides/ownership"}]}]},{"group":"Self-Managed","pages":[{"title":"Self-Managed","sidebarTitle":"Overview","href":"/self-managed"},{"group":"Firebolt Operator","pages":[{"title":"Installation","sidebarTitle":"Installation","href":"/self-managed/firebolt-operator/installation"},{"title":"Quickstart","sidebarTitle":"Quickstart","href":"/self-managed/firebolt-operator/quickstart"},{"title":"kubectl firebolt plugin","sidebarTitle":"kubectl plugin","href":"/self-managed/firebolt-operator/kubectl-plugin"},{"title":"Architecture","sidebarTitle":"Architecture","href":"/self-managed/firebolt-operator/architecture"},{"group":"Instance","pages":[{"title":"Instance overview","sidebarTitle":"Overview","href":"/self-managed/firebolt-operator/instance/overview"},{"group":"Gateway","pages":[{"title":"Gateway overview","sidebarTitle":"Overview","href":"/self-managed/firebolt-operator/instance/gateway/overview"},{"title":"Gateway query routing","sidebarTitle":"Gateway query routing","href":"/self-managed/firebolt-operator/instance/gateway/gateway-query-routing"},{"title":"Gateway sizing","sidebarTitle":"Gateway sizing","href":"/self-managed/firebolt-operator/instance/gateway/gateway-sizing"}]},{"group":"Metadata","pages":[{"title":"Metadata overview","sidebarTitle":"Overview","href":"/self-managed/firebolt-operator/instance/metadata/overview"}]}]},{"group":"Engine","pages":[{"title":"Engine overview","sidebarTitle":"Overview","href":"/self-managed/firebolt-operator/engine/overview"},{"title":"Engine rollouts","sidebarTitle":"Engine rollouts","href":"/self-managed/firebolt-operator/engine/engine-rollouts"},{"title":"Auto-stop and wake-up","sidebarTitle":"Auto-stop and wake-up","href":"/self-managed/firebolt-operator/engine/auto-stop-and-wake-up"},{"title":"Engine scaling","sidebarTitle":"Engine scaling","href":"/self-managed/firebolt-operator/engine/engine-scaling"},{"group":"Object storage","pages":[{"title":"Amazon S3","sidebarTitle":"Amazon S3","href":"/self-managed/firebolt-operator/engine/object-storage/amazon-s3"},{"title":"S3-compatible storage","sidebarTitle":"S3-compatible","href":"/self-managed/firebolt-operator/engine/object-storage/s3-compatible"},{"title":"Google Cloud Storage","sidebarTitle":"Google Cloud Storage","href":"/self-managed/firebolt-operator/engine/object-storage/google-cloud-storage"},{"title":"Azure Blob Storage","sidebarTitle":"Azure Blob Storage","href":"/self-managed/firebolt-operator/engine/object-storage/azure-blob-storage"}]}]},{"group":"EngineClass","pages":[{"title":"FireboltEngineClass overview","sidebarTitle":"Overview","href":"/self-managed/firebolt-operator/engineclass/overview"},{"title":"EngineClass configuration inheritance","sidebarTitle":"Configuration inheritance","href":"/self-managed/firebolt-operator/engineclass/configuration-inheritance"}]},{"group":"EnginePreset","pages":[{"title":"FireboltEnginePreset overview","sidebarTitle":"Overview","href":"/self-managed/firebolt-operator/enginepreset/overview"}]},{"title":"Monitoring","sidebarTitle":"Monitoring","href":"/self-managed/firebolt-operator/monitoring"},{"title":"Security model","sidebarTitle":"Security","href":"/self-managed/firebolt-operator/security"},{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","href":"/self-managed/firebolt-operator/troubleshooting"},{"group":"CRD reference","pages":[{"title":"FireboltInstance CRD reference","sidebarTitle":"FireboltInstance CRD reference","href":"/self-managed/firebolt-operator/crd-reference/instance-crd-reference"},{"title":"FireboltEngine CRD reference","sidebarTitle":"FireboltEngine CRD reference","href":"/self-managed/firebolt-operator/crd-reference/engine-crd-reference"},{"title":"FireboltEngineClass CRD reference","sidebarTitle":"FireboltEngineClass CRD reference","href":"/self-managed/firebolt-operator/crd-reference/fireboltengineclass-crd-reference"},{"title":"ClusterFireboltEngineClass CRD reference","sidebarTitle":"ClusterFireboltEngineClass CRD reference","href":"/self-managed/firebolt-operator/crd-reference/clusterfireboltengineclass-crd-reference"},{"title":"FireboltEnginePreset CRD reference","sidebarTitle":"FireboltEnginePreset CRD reference","href":"/self-managed/firebolt-operator/crd-reference/fireboltenginepreset-crd-reference"}]}]},{"group":"Helm Chart","pages":[{"sidebarTitle":"Overview","title":"Firebolt instance Helm chart","href":"/self-managed/helm-chart/overview"},{"sidebarTitle":"Prerequisites","title":"Prerequisites","href":"/self-managed/helm-chart/prerequisites"},{"sidebarTitle":"Quickstart","title":"Quickstart","href":"/self-managed/helm-chart/quickstart"},{"group":"Usage","pages":[{"sidebarTitle":"Single engine","title":"Single engine","href":"/self-managed/helm-chart/usage/single-engine"},{"description":"Two or more named Firebolt engines under one firebolt-instance Helm release, routed by the X-Firebolt-Engine header.","sidebarTitle":"Multi-engine","title":"Multi-engine","href":"/self-managed/helm-chart/usage/multi-engine"},{"group":"Object Storage","pages":[{"sidebarTitle":"Amazon S3","title":"Amazon S3","href":"/self-managed/helm-chart/usage/object-storage/amazon-s3"},{"title":"S3-compatible storage","description":"Back Firebolt engines with a non-AWS S3-compatible object store (Nebius, CoreWeave, MinIO) using firebolt-instance-helm.","sidebarTitle":"S3-compatible","href":"/self-managed/helm-chart/usage/object-storage/s3-compatible"},{"sidebarTitle":"Google Cloud Storage","title":"Google Cloud Storage","href":"/self-managed/helm-chart/usage/object-storage/google-cloud-storage"},{"sidebarTitle":"Azure Blob Storage","title":"Azure Blob Storage","href":"/self-managed/helm-chart/usage/object-storage/azure-blob-storage"}]},{"sidebarTitle":"External PostgreSQL","title":"External PostgreSQL","href":"/self-managed/helm-chart/usage/external-postgres"},{"sidebarTitle":"Authentication","title":"Authentication","href":"/self-managed/helm-chart/usage/authentication"},{"sidebarTitle":"TLS","title":"TLS","href":"/self-managed/helm-chart/usage/tls"},{"sidebarTitle":"Image overrides","title":"Image overrides","href":"/self-managed/helm-chart/usage/image-overrides"}]},{"sidebarTitle":"Operator upgrade path","title":"Operator upgrade path","href":"/self-managed/helm-chart/operator-upgrade-path"},{"sidebarTitle":"Monitoring","title":"Monitoring","href":"/self-managed/helm-chart/monitoring"},{"sidebarTitle":"Security","title":"Security model","href":"/self-managed/helm-chart/security"},{"sidebarTitle":"Troubleshooting","title":"Troubleshooting","href":"/self-managed/helm-chart/troubleshooting"}]},{"group":"Standalone Binaries","pages":[{"title":"Run Firebolt from the standalone binaries","sidebarTitle":"Overview","href":"/self-managed/standalone-binaries/overview"},{"title":"Deploy with embedded metadata","sidebarTitle":"Embedded metadata","href":"/self-managed/standalone-binaries/embedded-metadata"},{"title":"Deploy with standalone metadata","sidebarTitle":"Standalone metadata","href":"/self-managed/standalone-binaries/standalone-metadata"},{"title":"Colocate multiple nodes on one host","sidebarTitle":"Colocate on one host","href":"/self-managed/standalone-binaries/colocation"}]},{"title":"Connecting over HTTP","sidebarTitle":"Connect over HTTP","href":"/self-managed/connecting-over-http"},{"title":"Engine arguments","sidebarTitle":"Engine arguments","href":"/self-managed/engine-arguments"},{"sidebarTitle":"Engine configuration","title":"Engine configuration reference","href":"/self-managed/engine-configuration"},{"sidebarTitle":"Structured logging","title":"Structured logging","href":"/self-managed/structured-logging"},{"title":"Web UI","sidebarTitle":"Web UI","href":"/self-managed/web-ui"}]},{"group":"Managed service","pages":[{"sidebarTitle":"Organizations and accounts","title":"Organizations and accounts","href":"/managed-service/organizations-accounts"},{"sidebarTitle":"Engine fundamentals","title":"Engine Fundamentals","href":"/managed-service/engine-fundamentals"},{"sidebarTitle":"Engine Consumption","title":"Engine Consumption","href":"/managed-service/engine-consumption"},{"sidebarTitle":"Pricing and billing","title":"Pricing and billing","href":"/managed-service/billing"},{"sidebarTitle":"Available regions","title":"Available regions","href":"/managed-service/available-regions"},{"sidebarTitle":"Support","title":"Support","href":"/managed-service/support"},{"group":"Security","pages":[{"group":"Configure SSO","pages":[{"sidebarTitle":"Overview","title":"Configure SSO","href":"/managed-service/security/sso"},{"sidebarTitle":"Auth0","title":"Auth0","href":"/managed-service/security/sso/auth0"},{"sidebarTitle":"Okta","title":"Okta","href":"/managed-service/security/sso/okta"},{"sidebarTitle":"OneLogin","title":"OneLogin","href":"/managed-service/security/sso/onelogin"},{"sidebarTitle":"PingFederate","title":"PingFederate","href":"/managed-service/security/sso/pingfederate"},{"sidebarTitle":"Salesforce","title":"Salesforce","href":"/managed-service/security/sso/salesforce"},{"sidebarTitle":"Custom Identity Provider","title":"Custom Identity Provider","href":"/managed-service/security/sso/custom-sso"}]},{"sidebarTitle":"Multi-factor authentication","title":"Multi-factor authentication","href":"/managed-service/security/enabling-mfa"},{"sidebarTitle":"Network policies","title":"Network policies","href":"/managed-service/security/network-policies"},{"sidebarTitle":"AWS PrivateLink","title":"AWS PrivateLink","href":"/managed-service/security/privatelink"}]},{"group":"Operate Engines","pages":[{"sidebarTitle":"Governing Engines","title":"Governing Engines","href":"/managed-service/operate-engines/rbac-for-engines"},{"sidebarTitle":"Work with engines","title":"Work with engines","href":"/managed-service/operate-engines/working-with-engines-using-ddl"},{"sidebarTitle":"Sizing Engines","title":"Sizing Engines","href":"/managed-service/operate-engines/sizing-engines"},{"sidebarTitle":"Understanding Autoscaling","title":"Understanding Autoscaling","href":"/managed-service/operate-engines/understand-autoscaling"},{"sidebarTitle":"Warming Up Engines","title":"Warming Up Engines","href":"/managed-service/operate-engines/warming-up-engines"},{"sidebarTitle":"Release settings","title":"Release settings","href":"/managed-service/operate-engines/engines-release-settings"},{"sidebarTitle":"System Engine","title":"System Engine","href":"/managed-service/operate-engines/system-engine"},{"sidebarTitle":"Engine Warmpools","title":"Engine Warmpools","href":"/managed-service/operate-engines/engine-warmpools"}]},{"group":"Manage organization objects","pages":[{"sidebarTitle":"Manage logins","title":"Manage logins","href":"/managed-service/organization/managing-logins"},{"sidebarTitle":"Manage programmatic access","title":"Manage programmatic access","href":"/managed-service/organization/service-accounts"},{"group":"SQL commands","pages":[{"sidebarTitle":"CREATE LOGIN","title":"CREATE LOGIN","href":"/managed-service/organization/commands/create-login"},{"sidebarTitle":"ALTER LOGIN","title":"ALTER LOGIN","href":"/managed-service/organization/commands/alter-login"},{"sidebarTitle":"DROP LOGIN","title":"DROP LOGIN","href":"/managed-service/organization/commands/drop-login"},{"sidebarTitle":"CREATE SERVICE ACCOUNT","title":"CREATE SERVICE ACCOUNT","href":"/managed-service/organization/commands/create-service-account"},{"sidebarTitle":"ALTER SERVICE ACCOUNT","title":"ALTER SERVICE ACCOUNT","href":"/managed-service/organization/commands/alter-service-account"},{"sidebarTitle":"DROP SERVICE ACCOUNT","title":"DROP SERVICE ACCOUNT","href":"/managed-service/organization/commands/drop-service-account"},{"sidebarTitle":"CREATE ORGANIZATION ROLE","title":"CREATE ORGANIZATION ROLE","href":"/managed-service/organization/commands/create-organization-role"},{"sidebarTitle":"ALTER ORGANIZATION ROLE","title":"ALTER ORGANIZATION ROLE","href":"/managed-service/organization/commands/alter-organization-role"},{"sidebarTitle":"DROP ORGANIZATION ROLE","title":"DROP ORGANIZATION ROLE","href":"/managed-service/organization/commands/drop-organization-role"},{"sidebarTitle":"GRANT ORGANIZATION ROLE","title":"GRANT ORGANIZATION ROLE","href":"/managed-service/organization/commands/grant-organization-role"},{"sidebarTitle":"REVOKE ORGANIZATION ROLE","title":"REVOKE ORGANIZATION ROLE","href":"/managed-service/organization/commands/revoke-organization-role"},{"sidebarTitle":"ALTER ORGANIZATION","title":"ALTER ORGANIZATION","href":"/managed-service/organization/commands/alter-organization"}]},{"group":"Information schema","pages":[{"sidebarTitle":"Accounts","title":"Accounts","href":"/managed-service/organization/information-schema/accounts"},{"sidebarTitle":"Logins","title":"Logins","href":"/managed-service/organization/information-schema/logins"},{"sidebarTitle":"Organization","title":"Organization","href":"/managed-service/organization/information-schema/organization"},{"sidebarTitle":"Service accounts","title":"Service accounts","href":"/managed-service/organization/information-schema/service-accounts"},{"sidebarTitle":"Network policies","title":"Network policies","href":"/managed-service/organization/information-schema/network_policies"}]}]}]},{"group":"Guides","pages":[{"group":"Manage organization","pages":[{"sidebarTitle":"Overview","title":"Manage organization","href":"/guides/managing-your-organization"},{"sidebarTitle":"Register to Firebolt","title":"Register to Firebolt","href":"/guides/managing-your-organization/creating-an-organization"},{"sidebarTitle":"Manage accounts","title":"Manage accounts","href":"/guides/managing-your-organization/managing-accounts"},{"sidebarTitle":"Manage users and roles","title":"Manage users and roles","href":"/guides/managing-your-organization/managing-users"},{"sidebarTitle":"Billing","title":"Billing","href":"/guides/managing-your-organization/billing"}]},{"group":"SQL Dialect","pages":[{"sidebarTitle":"Arrays","title":"Arrays","href":"/guides/sql-dialect/arrays"},{"sidebarTitle":"Collations","title":"Collations","href":"/guides/sql-dialect/collations"},{"sidebarTitle":"SQL Pipe syntax","title":"SQL Pipe syntax","href":"/guides/sql-dialect/sql-pipe-syntax"},{"sidebarTitle":"Parametrized queries","title":"Parametrized queries","href":"/guides/sql-dialect/parametrized-queries"}]},{"group":"Load data","pages":[{"sidebarTitle":"Overview","title":"Load data","href":"/guides/loading-data"},{"sidebarTitle":"Load data using a wizard","title":"Load data using a wizard","href":"/guides/loading-data/loading-data-wizard"},{"sidebarTitle":"Load data using SQL","title":"Load data using SQL","href":"/guides/loading-data/loading-data-sql"},{"sidebarTitle":"Creating Access Key and Secret ID in AWS","title":"Creating Access Key and Secret ID in AWS","href":"/guides/loading-data/creating-access-keys-aws"},{"sidebarTitle":"Use AWS roles to access S3","title":"Use AWS roles to access S3","href":"/guides/loading-data/configuring-aws-role-to-access-amazon-s3"},{"sidebarTitle":"Work with external tables","title":"Work with external tables","href":"/guides/loading-data/working-with-external-tables"},{"sidebarTitle":"Incremental loading from Amazon S3","title":"Incremental loading from Amazon S3","href":"/guides/loading-data/incremental-ingestion-from-s3"},{"group":"Work with semi-structured data","pages":[{"sidebarTitle":"Overview","title":"Work with semi-structured data","href":"/guides/loading-data/working-with-semi-structured-data"},{"sidebarTitle":"Load semi-structured JSON data","title":"Load semi-structured JSON data","href":"/guides/loading-data/working-with-semi-structured-data/load-json-data"},{"sidebarTitle":"Load semi-structured Parquet data","title":"Load semi-structured Parquet data","href":"/guides/loading-data/working-with-semi-structured-data/load-parquet-data"}]}]},{"group":"Change Data Capture","pages":[{"sidebarTitle":"Overview","title":"Change data capture","href":"/guides/change-data-capture"},{"sidebarTitle":"Postgres CDC","title":"Postgres CDC","href":"/guides/change-data-capture/postgres"},{"sidebarTitle":"MongoDB CDC","title":"MongoDB CDC","href":"/guides/change-data-capture/mongodb"},{"sidebarTitle":"CDC tables","title":"CDC tables","href":"/guides/change-data-capture/cdc-tables"}]},{"sidebarTitle":"Export data","title":"Export data","href":"/guides/exporting-data"},{"group":"Iceberg and data lake","pages":[{"sidebarTitle":"Iceberg","title":"Iceberg","href":"/guides/iceberg-and-data-lake/iceberg"},{"sidebarTitle":"DuckLake","title":"Query DuckLake tables with Firebolt","href":"/guides/iceberg-and-data-lake/ducklake"}]},{"group":"AI and Machine Learning","pages":[{"title":"Firebolt Agent","sidebarTitle":"Firebolt Agent","href":"/guides/ai/firebolt-agent"},{"sidebarTitle":"Getting started with AI","title":"Getting started with AI","href":"/guides/ai/getting-started-with-ai"},{"sidebarTitle":"Use AWS roles to access Bedrock","title":"Use AWS roles to access Bedrock","href":"/guides/ai/use-aws-roles-to-access-bedrock"}]},{"group":"Develop with Firebolt","pages":[{"sidebarTitle":"REST API","title":"REST API","href":"/guides/developing-with-firebolt/using-the-api"},{"sidebarTitle":"Node.js","title":"Node.js","href":"/guides/developing-with-firebolt/connecting-with-nodejs"},{"sidebarTitle":"Python","title":"Python","href":"/guides/developing-with-firebolt/connecting-with-python"},{"sidebarTitle":"JDBC","title":"JDBC","href":"/guides/developing-with-firebolt/connecting-with-jdbc"},{"sidebarTitle":"SQLAlchemy","title":"SQLAlchemy","href":"/guides/developing-with-firebolt/connecting-with-sqlalchemy"},{"sidebarTitle":".NET SDK","title":".NET SDK","href":"/guides/developing-with-firebolt/connecting-with-net-sdk"},{"sidebarTitle":"Go","title":"Go","href":"/guides/developing-with-firebolt/connecting-with-go"},{"sidebarTitle":"Rust","title":"Rust","href":"/guides/developing-with-firebolt/connecting-with-rust"},{"sidebarTitle":"Parametrized queries","title":"Parametrized queries","href":"/guides/developing-with-firebolt/parametrized-queries"}]},{"group":"Integrate with Firebolt","pages":[{"sidebarTitle":"Overview","title":"Integrate with Firebolt","href":"/guides/integrations"},{"sidebarTitle":"Airbyte","title":"Airbyte","href":"/guides/integrations/airbyte"},{"sidebarTitle":"Airflow","title":"Airflow","href":"/guides/integrations/airflow"},{"sidebarTitle":"Apache Superset","title":"Apache Superset","href":"/guides/integrations/connecting-to-apache-superset"},{"sidebarTitle":"DataBrain","title":"DataBrain","href":"/guides/integrations/connecting-to-databrain"},{"sidebarTitle":"AWS Glue","title":"AWS Glue","href":"/guides/integrations/aws-glue"},{"sidebarTitle":"AWS QuickSight","title":"AWS QuickSight","href":"/guides/integrations/quicksight"},{"sidebarTitle":"Cube.js","title":"Cube.js","href":"/guides/integrations/cube-js"},{"sidebarTitle":"DBeaver","title":"DBeaver","href":"/guides/integrations/dbeaver"},{"sidebarTitle":"dbt - Firebolt adapter","title":"dbt - Firebolt adapter","href":"/guides/integrations/dbt-firebolt-adaptor"},{"sidebarTitle":"dbt - PostgreSQL adapter (cloud and core)","title":"dbt - PostgreSQL adapter (cloud and core)","href":"/guides/integrations/dbt-postgres-adaptor"},{"sidebarTitle":"Dot","title":"Dot","href":"/guides/integrations/dot"},{"sidebarTitle":"Embeddable","title":"Embeddable","href":"/guides/integrations/embeddable"},{"sidebarTitle":"Estuary","title":"Estuary","href":"/guides/integrations/estuary"},{"sidebarTitle":"Hex","title":"Hex","href":"/guides/integrations/hex"},{"sidebarTitle":"Kafka Sink Connector","title":"Kafka Sink Connector","href":"/guides/integrations/kafka-sink-connector"},{"sidebarTitle":"LangChain","title":"LangChain","href":"/guides/integrations/langchain"},{"sidebarTitle":"Lightdash","title":"Lightdash","href":"/guides/integrations/lightdash"},{"sidebarTitle":"Looker Cloud","title":"Looker Cloud","href":"/guides/integrations/looker-cloud"},{"sidebarTitle":"Looker On-Prem","title":"Looker On-Prem","href":"/guides/integrations/looker-on-prem"},{"sidebarTitle":"MCP Server","title":"MCP Server","href":"/guides/integrations/mcp"},{"sidebarTitle":"Metabase Cloud","title":"Metabase Cloud","href":"/guides/integrations/metabase-cloud"},{"sidebarTitle":"Metabase On Prem","title":"Metabase On Prem","href":"/guides/integrations/metabase-on-prem"},{"sidebarTitle":"OpenTelemetry Exporter","title":"OpenTelemetry Exporter","href":"/guides/integrations/otel-exporter"},{"sidebarTitle":"Omni","title":"Omni","href":"/guides/integrations/omni"},{"sidebarTitle":"Pandas","title":"Pandas","href":"/guides/integrations/pandas"},{"sidebarTitle":"Paradime","title":"Paradime","href":"/guides/integrations/connecting-to-paradime"},{"title":"Power BI","sidebarTitle":"Power BI","href":"/guides/integrations/power-bi"},{"sidebarTitle":"Preset","title":"Preset","href":"/guides/integrations/connecting-to-preset"},{"sidebarTitle":"Tableau","title":"Tableau","href":"/guides/integrations/tableau"},{"sidebarTitle":"TextQL","title":"TextQL","href":"/guides/integrations/textql"},{"sidebarTitle":"ThoughtSpot","title":"ThoughtSpot","href":"/guides/integrations/thoughtspot"},{"sidebarTitle":"Wirekite","title":"Wirekite","href":"/guides/integrations/wirekite"}]},{"group":"Migrate to Firebolt","pages":[{"sidebarTitle":"Overview","title":"Migrate to Firebolt","href":"/guides/migration-guides"},{"sidebarTitle":"Migrate from Amazon Redshift","title":"Migrate from Amazon Redshift","href":"/guides/migration-guides/redshift"}]}]},{"group":"SQL reference","pages":[{"title":"SQL reference","sidebarTitle":"Overview","href":"/reference-sql"},{"group":"Lexical structure","pages":[{"sidebarTitle":"Overview","title":"Lexical structure","href":"/reference-sql/lexical-structure"},{"sidebarTitle":"Object identifiers","title":"Object identifiers","href":"/reference-sql/lexical-structure/object-identifiers"},{"sidebarTitle":"Reserved words","title":"Reserved words","href":"/reference-sql/lexical-structure/reserved-words"},{"sidebarTitle":"Operators","title":"Operators","href":"/reference-sql/lexical-structure/operators"},{"sidebarTitle":"ANY/ALL (array)","title":"ANY/ALL (array)","href":"/reference-sql/lexical-structure/any-all-array"},{"sidebarTitle":"ANY/ALL (subquery)","title":"ANY/ALL (subquery)","href":"/reference-sql/lexical-structure/any-all-subquery"}]},{"sidebarTitle":"Explicit Transactions","title":"Explicit Transactions","href":"/reference-sql/explicit-transactions"},{"group":"Data types","pages":[{"sidebarTitle":"All data types","title":"Data types","href":"/reference-sql/data-types"},{"sidebarTitle":"BYTEA","title":"BYTEA data type","href":"/reference-sql/data-types/bytea"},{"sidebarTitle":"DATE","title":"DATE data type","href":"/reference-sql/data-types/date"},{"sidebarTitle":"GEOGRAPHY","title":"GEOGRAPHY data type","href":"/reference-sql/data-types/geography"},{"sidebarTitle":"JSON","title":"JSON Data Type","href":"/reference-sql/data-types/json"},{"sidebarTitle":"NUMERIC","title":"NUMERIC data type","href":"/reference-sql/data-types/numeric"},{"sidebarTitle":"STRUCT","title":"STRUCT data type","href":"/reference-sql/data-types/struct"},{"sidebarTitle":"TIMESTAMP","title":"TIMESTAMP data type","href":"/reference-sql/data-types/timestampntz"},{"sidebarTitle":"TIMESTAMPTZ","title":"TIMESTAMPTZ data type","href":"/reference-sql/data-types/timestamptz"}]},{"group":"Information schema","pages":[{"sidebarTitle":"Overview","title":"Information Schema","href":"/reference-sql/information-schema"},{"sidebarTitle":"Account info","title":"Account info","href":"/reference-sql/information-schema/account_info"},{"sidebarTitle":"Applicable roles","title":"Applicable roles","href":"/reference-sql/information-schema/applicable-roles"},{"sidebarTitle":"Catalogs","title":"Catalogs","href":"/reference-sql/information-schema/catalogs"},{"sidebarTitle":"Columns","title":"Columns","href":"/reference-sql/information-schema/columns"},{"sidebarTitle":"Enabled roles","title":"Enabled roles","href":"/reference-sql/information-schema/enabled-roles"},{"sidebarTitle":"Engine history","title":"Engine history","href":"/reference-sql/information-schema/engine-history"},{"sidebarTitle":"Engine metering history","title":"Engine metering history","href":"/reference-sql/information-schema/engine-metering-history"},{"sidebarTitle":"Engine metrics history","title":"Engine metrics history","href":"/reference-sql/information-schema/engine-metrics-history"},{"sidebarTitle":"Engine caches","title":"Engine caches","href":"/reference-sql/information-schema/engine-caches"},{"sidebarTitle":"Engine query history","title":"Engine query history","href":"/reference-sql/information-schema/engine-query-history"},{"sidebarTitle":"Engine running queries","title":"Engine running queries","href":"/reference-sql/information-schema/engine-running-queries"},{"sidebarTitle":"Engine user query history","title":"Engine user query history","href":"/reference-sql/information-schema/engine-user-query-history"},{"sidebarTitle":"Engines","title":"Engines","href":"/reference-sql/information-schema/engines"},{"sidebarTitle":"Indexes","title":"Indexes","href":"/reference-sql/information-schema/indexes"},{"sidebarTitle":"Locations","title":"Locations","href":"/reference-sql/information-schema/locations"},{"title":"Object default privileges","href":"/reference-sql/information-schema/object-default-privileges"},{"sidebarTitle":"Object privileges","title":"Object privileges","href":"/reference-sql/information-schema/object-privileges"},{"sidebarTitle":"pg_settings","title":"pg_settings","href":"/reference-sql/information-schema/pg_settings"},{"sidebarTitle":"Quotas","title":"Quotas","href":"/reference-sql/information-schema/quotas"},{"sidebarTitle":"Routines","title":"Routines","href":"/reference-sql/information-schema/routines"},{"sidebarTitle":"CDC ingests","title":"CDC ingests","href":"/reference-sql/information-schema/cdc-ingests"},{"sidebarTitle":"Schemata","title":"Schemata","href":"/reference-sql/information-schema/schemata"},{"sidebarTitle":"Settings","title":"Settings","href":"/reference-sql/information-schema/settings"},{"sidebarTitle":"Streams","title":"Streams","href":"/reference-sql/information-schema/streams"},{"sidebarTitle":"Tables","title":"Tables","href":"/reference-sql/information-schema/tables"},{"sidebarTitle":"Transactions","title":"Transactions","href":"/reference-sql/information-schema/transactions"},{"sidebarTitle":"Transitive applicable roles","title":"Transitive applicable roles","href":"/reference-sql/information-schema/transitive-applicable-roles"},{"sidebarTitle":"Users","title":"Users","href":"/reference-sql/information-schema/users"},{"sidebarTitle":"Views","title":"Views","href":"/reference-sql/information-schema/views"}]},{"group":"SQL commands","pages":[{"sidebarTitle":"Overview","title":"SQL commands","href":"/reference-sql/commands"},{"group":"Access control","pages":[{"sidebarTitle":"ALTER DEFAULT PRIVILEGES","title":"ALTER DEFAULT PRIVILEGES","href":"/reference-sql/commands/access-control/alter-default-privileges"},{"sidebarTitle":"ALTER NETWORK POLICY","title":"ALTER NETWORK POLICY","href":"/reference-sql/commands/access-control/alter-network-policy"},{"sidebarTitle":"ALTER ROLE","title":"ALTER ROLE","href":"/reference-sql/commands/access-control/alter-role"},{"sidebarTitle":"ALTER USER","title":"ALTER USER","href":"/reference-sql/commands/access-control/alter-user"},{"sidebarTitle":"CREATE NETWORK POLICY","title":"CREATE NETWORK POLICY","href":"/reference-sql/commands/access-control/create-network-policy"},{"sidebarTitle":"CREATE ROLE","title":"CREATE ROLE","href":"/reference-sql/commands/access-control/create-role"},{"sidebarTitle":"CREATE USER","title":"CREATE USER","href":"/reference-sql/commands/access-control/create-user"},{"sidebarTitle":"DROP NETWORK POLICY","title":"DROP NETWORK POLICY","href":"/reference-sql/commands/access-control/drop-network-policy"},{"sidebarTitle":"DROP ROLE","title":"DROP ROLE","href":"/reference-sql/commands/access-control/drop-role"},{"sidebarTitle":"DROP USER","title":"DROP USER","href":"/reference-sql/commands/access-control/drop-user"},{"sidebarTitle":"GRANT","title":"GRANT","href":"/reference-sql/commands/access-control/grant"},{"sidebarTitle":"REVOKE","title":"REVOKE","href":"/reference-sql/commands/access-control/revoke"}]},{"group":"Data definition","pages":[{"sidebarTitle":"ALTER ACCOUNT","title":"ALTER ACCOUNT","href":"/reference-sql/commands/data-definition/alter-account"},{"sidebarTitle":"ALTER DATABASE","title":"ALTER DATABASE","href":"/reference-sql/commands/data-definition/alter-database"},{"sidebarTitle":"ALTER LOCATION","title":"ALTER LOCATION","href":"/reference-sql/commands/data-definition/alter-location"},{"sidebarTitle":"ALTER SCHEMA","title":"ALTER SCHEMA","href":"/reference-sql/commands/data-definition/alter-schema"},{"sidebarTitle":"ALTER TABLE","title":"ALTER TABLE","href":"/reference-sql/commands/data-definition/alter-table"},{"sidebarTitle":"ALTER VIEW","title":"ALTER VIEW","href":"/reference-sql/commands/data-definition/alter-view"},{"sidebarTitle":"COMMENT ON","title":"COMMENT ON","href":"/reference-sql/commands/data-definition/comment-on"},{"sidebarTitle":"CREATE ACCOUNT","title":"CREATE ACCOUNT","href":"/reference-sql/commands/data-definition/create-account"},{"sidebarTitle":"CREATE AGGREGATING INDEX","title":"CREATE AGGREGATING INDEX","href":"/reference-sql/commands/data-definition/create-aggregating-index"},{"sidebarTitle":"CREATE INDEX","title":"CREATE INDEX","href":"/reference-sql/commands/data-definition/create-index"},{"sidebarTitle":"CREATE VECTOR SEARCH INDEX","title":"CREATE VECTOR SEARCH INDEX","href":"/reference-sql/commands/data-definition/create-vector-search-index"},{"sidebarTitle":"CREATE DATABASE","title":"CREATE DATABASE","href":"/reference-sql/commands/data-definition/create-database"},{"sidebarTitle":"CREATE EXTERNAL TABLE","title":"CREATE EXTERNAL TABLE","href":"/reference-sql/commands/data-definition/create-external-table"},{"sidebarTitle":"CREATE TABLE AS SELECT (CTAS)","title":"CREATE TABLE AS SELECT (CTAS)","href":"/reference-sql/commands/data-definition/create-fact-dimension-table-as-select"},{"sidebarTitle":"CREATE FUNCTION","title":"CREATE FUNCTION","href":"/reference-sql/commands/data-definition/create-function"},{"sidebarTitle":"CREATE TABLE","title":"CREATE TABLE","href":"/reference-sql/commands/data-definition/create-fact-dimension-table"},{"sidebarTitle":"CREATE ICEBERG DATABASE","title":"CREATE ICEBERG DATABASE","href":"/reference-sql/commands/data-definition/create-iceberg-database"},{"sidebarTitle":"CREATE ICEBERG TABLE","title":"CREATE ICEBERG TABLE","href":"/reference-sql/commands/data-definition/create-iceberg-table"},{"sidebarTitle":"CREATE ICEBERG TABLE AS SELECT","title":"CREATE ICEBERG TABLE AS SELECT","href":"/reference-sql/commands/data-definition/create-iceberg-table-as-select"},{"sidebarTitle":"CREATE CDC TABLE","title":"CREATE CDC TABLE","href":"/reference-sql/commands/data-definition/create-cdc-table"},{"sidebarTitle":"CREATE LOCATION (Amazon Bedrock)","title":"CREATE LOCATION (Amazon Bedrock)","href":"/reference-sql/commands/data-definition/create-location-bedrock"},{"sidebarTitle":"CREATE LOCATION (DuckLake)","title":"CREATE LOCATION (DuckLake)","href":"/reference-sql/commands/data-definition/create-location-ducklake"},{"sidebarTitle":"CREATE LOCATION (Iceberg)","title":"CREATE LOCATION (Iceberg)","href":"/reference-sql/commands/data-definition/create-location-iceberg"},{"sidebarTitle":"CREATE LOCATION (MongoDB)","title":"CREATE LOCATION (MongoDB)","href":"/reference-sql/commands/data-definition/create-location-mongodb"},{"sidebarTitle":"CREATE LOCATION (Postgres)","title":"CREATE LOCATION (Postgres)","href":"/reference-sql/commands/data-definition/create-location-postgres"},{"sidebarTitle":"CREATE LOCATION (Amazon S3)","title":"CREATE LOCATION (Amazon S3)","href":"/reference-sql/commands/data-definition/create-location-s3"},{"sidebarTitle":"CREATE LOCATION","title":"CREATE LOCATION","href":"/reference-sql/commands/data-definition/create-location"},{"sidebarTitle":"CREATE SCHEMA","title":"CREATE SCHEMA","href":"/reference-sql/commands/data-definition/create-schema"},{"sidebarTitle":"CREATE STREAM","title":"CREATE STREAM","href":"/reference-sql/commands/data-definition/create-stream"},{"sidebarTitle":"CREATE TABLE CLONE","title":"CREATE TABLE CLONE","href":"/reference-sql/commands/data-definition/create-table-clone"},{"sidebarTitle":"CREATE VIEW","title":"CREATE VIEW","href":"/reference-sql/commands/data-definition/create-view"},{"sidebarTitle":"DROP ACCOUNT","title":"DROP ACCOUNT","href":"/reference-sql/commands/data-definition/drop-account"},{"sidebarTitle":"DROP DATABASE","title":"DROP DATABASE","href":"/reference-sql/commands/data-definition/drop-database"},{"sidebarTitle":"DROP FUNCTION","title":"DROP FUNCTION","href":"/reference-sql/commands/data-definition/drop-function"},{"sidebarTitle":"DROP INDEX","title":"DROP INDEX","href":"/reference-sql/commands/data-definition/drop-index"},{"sidebarTitle":"DROP LOCATION","title":"DROP LOCATION","href":"/reference-sql/commands/data-definition/drop-location"},{"sidebarTitle":"DROP SCHEMA","title":"DROP SCHEMA","href":"/reference-sql/commands/data-definition/drop-schema"},{"sidebarTitle":"DROP TABLE","title":"DROP TABLE","href":"/reference-sql/commands/data-definition/drop-table"},{"sidebarTitle":"DROP VIEW","title":"DROP VIEW","href":"/reference-sql/commands/data-definition/drop-view"},{"sidebarTitle":"USE DATABASE","title":"USE DATABASE","href":"/reference-sql/commands/data-definition/use-database"}]},{"group":"Data management","pages":[{"sidebarTitle":"COPY FROM","title":"COPY FROM","href":"/reference-sql/commands/data-management/copy-from"},{"sidebarTitle":"COPY TO","title":"COPY TO","href":"/reference-sql/commands/data-management/copy-to"},{"sidebarTitle":"DELETE","title":"DELETE","href":"/reference-sql/commands/data-management/delete"},{"sidebarTitle":"INSERT","title":"INSERT","href":"/reference-sql/commands/data-management/insert"},{"sidebarTitle":"MERGE","title":"MERGE","href":"/reference-sql/commands/data-management/merge"},{"sidebarTitle":"TRUNCATE TABLE","title":"TRUNCATE TABLE","href":"/reference-sql/commands/data-management/truncate-table"},{"sidebarTitle":"UPDATE","title":"UPDATE","href":"/reference-sql/commands/data-management/update"},{"sidebarTitle":"VACUUM","title":"VACUUM","href":"/reference-sql/commands/data-management/vacuum"}]},{"group":"Engine commands","pages":[{"sidebarTitle":"Overview","title":"Engine commands","href":"/reference-sql/commands/engines"},{"sidebarTitle":"ALTER ENGINE","title":"ALTER ENGINE","href":"/reference-sql/commands/engines/alter-engine"},{"sidebarTitle":"CREATE ENGINE","title":"CREATE ENGINE","href":"/reference-sql/commands/engines/create-engine"},{"sidebarTitle":"DROP ENGINE","title":"DROP ENGINE","href":"/reference-sql/commands/engines/drop-engine"},{"sidebarTitle":"START ENGINE","title":"START ENGINE","href":"/reference-sql/commands/engines/start-engine"},{"sidebarTitle":"STOP ENGINE","title":"STOP ENGINE","href":"/reference-sql/commands/engines/stop-engine"},{"sidebarTitle":"USE ENGINE","title":"USE ENGINE","href":"/reference-sql/commands/engines/use-engine"},{"sidebarTitle":"CLEAR CACHE","title":"CLEAR CACHE","href":"/reference-sql/commands/engines/clear-cache"}]},{"group":"Querying and query optimization","pages":[{"sidebarTitle":"CANCEL QUERY","title":"CANCEL QUERY","href":"/reference-sql/commands/queries/cancel"},{"sidebarTitle":"EXPLAIN","title":"EXPLAIN","href":"/reference-sql/commands/queries/explain"},{"sidebarTitle":"SELECT","title":"SELECT","href":"/reference-sql/commands/queries/select"},{"sidebarTitle":"Cross-database queries","title":"Cross-database queries","href":"/reference-sql/commands/queries/cross-database-queries"}]},{"group":"Metadata commands","pages":[{"sidebarTitle":"DESCRIBE","title":"DESCRIBE","href":"/reference-sql/commands/metadata/describe"},{"sidebarTitle":"SHOW ALL","title":"SHOW ALL","href":"/reference-sql/commands/metadata/show-all"},{"sidebarTitle":"SHOW CACHE","title":"SHOW CACHE","href":"/reference-sql/commands/metadata/show-cache"},{"sidebarTitle":"SHOW CATALOGS","title":"SHOW CATALOGS","href":"/reference-sql/commands/metadata/show-catalogs"},{"sidebarTitle":"SHOW COLUMNS","title":"SHOW COLUMNS","href":"/reference-sql/commands/metadata/show-columns"},{"sidebarTitle":"SHOW ENGINES","title":"SHOW ENGINES","href":"/reference-sql/commands/metadata/show-engines"},{"sidebarTitle":"SHOW INDEXES","title":"SHOW INDEXES","href":"/reference-sql/commands/metadata/show-indexes"},{"sidebarTitle":"SHOW TABLES","title":"SHOW TABLES","href":"/reference-sql/commands/metadata/show-tables"},{"sidebarTitle":"SHOW VIEWS","title":"SHOW VIEWS","href":"/reference-sql/commands/metadata/show-views"}]}]},{"group":"SQL functions","pages":[{"sidebarTitle":"Overview","title":"SQL functions","href":"/reference-sql/functions-reference"},{"sidebarTitle":"Functions glossary","title":"Functions glossary","href":"/reference-sql/functions-reference/functions-glossary"},{"group":"Aggregate functions","pages":[{"sidebarTitle":"ANY_VALUE","title":"ANY_VALUE","href":"/reference-sql/functions-reference/aggregation/any_value"},{"sidebarTitle":"APPROX_COUNT_DISTINCT","title":"APPROX_COUNT_DISTINCT","href":"/reference-sql/functions-reference/aggregation/approx-count-distinct"},{"sidebarTitle":"APPROX_PERCENTILE","title":"APPROX_PERCENTILE","href":"/reference-sql/functions-reference/aggregation/approx-percentile"},{"sidebarTitle":"ARRAY_AGG","title":"ARRAY_AGG","href":"/reference-sql/functions-reference/aggregation/array-agg"},{"sidebarTitle":"AVG","title":"AVG","href":"/reference-sql/functions-reference/aggregation/avg"},{"sidebarTitle":"BIT_AND","title":"BIT_AND","href":"/reference-sql/functions-reference/aggregation/bit_and"},{"sidebarTitle":"BIT_OR","title":"BIT_OR","href":"/reference-sql/functions-reference/aggregation/bit_or"},{"sidebarTitle":"BIT_XOR","title":"BIT_XOR","href":"/reference-sql/functions-reference/aggregation/bit_xor"},{"sidebarTitle":"BOOL_AND","title":"BOOL_AND","href":"/reference-sql/functions-reference/aggregation/bool_and"},{"sidebarTitle":"BOOL_OR","title":"BOOL_OR","href":"/reference-sql/functions-reference/aggregation/bool_or"},{"sidebarTitle":"CORR","title":"CORR","href":"/reference-sql/functions-reference/aggregation/corr"},{"sidebarTitle":"COUNT","title":"COUNT","href":"/reference-sql/functions-reference/aggregation/count"},{"sidebarTitle":"COUNTING_HLL_COUNT_DISTINCT","title":"COUNTING_HLL_COUNT_DISTINCT","href":"/reference-sql/functions-reference/aggregation/counting-hll-count-distinct"},{"sidebarTitle":"COVAR_POP","title":"COVAR_POP","href":"/reference-sql/functions-reference/aggregation/covar-pop"},{"sidebarTitle":"COVAR_SAMP","title":"COVAR_SAMP","href":"/reference-sql/functions-reference/aggregation/covar-samp"},{"sidebarTitle":"GROUPING","title":"GROUPING","href":"/reference-sql/functions-reference/aggregation/grouping"},{"sidebarTitle":"HASH_AGG","title":"HASH_AGG","href":"/reference-sql/functions-reference/aggregation/hash-agg"},{"sidebarTitle":"HLL_COUNT_BUILD","title":"HLL_COUNT_BUILD","href":"/reference-sql/functions-reference/aggregation/hll-count-build"},{"sidebarTitle":"HLL_COUNT_DISTINCT","title":"HLL_COUNT_DISTINCT","href":"/reference-sql/functions-reference/aggregation/hll-count-distinct"},{"sidebarTitle":"HLL_COUNT_MERGE","title":"HLL_COUNT_MERGE","href":"/reference-sql/functions-reference/aggregation/hll-count-merge"},{"sidebarTitle":"MAX_BY","title":"MAX_BY","href":"/reference-sql/functions-reference/aggregation/max-by"},{"sidebarTitle":"MAX","title":"MAX","href":"/reference-sql/functions-reference/aggregation/max"},{"sidebarTitle":"MEDIAN","title":"MEDIAN","href":"/reference-sql/functions-reference/aggregation/median"},{"sidebarTitle":"MIN_BY","title":"MIN_BY","href":"/reference-sql/functions-reference/aggregation/min-by"},{"sidebarTitle":"MIN","title":"MIN","href":"/reference-sql/functions-reference/aggregation/min"},{"sidebarTitle":"PERCENTILE_CONT","title":"PERCENTILE_CONT","href":"/reference-sql/functions-reference/aggregation/percentile-cont"},{"sidebarTitle":"STDDEV_POP","title":"STDDEV_POP","href":"/reference-sql/functions-reference/aggregation/stddev-pop"},{"sidebarTitle":"STDDEV_SAMP","title":"STDDEV_SAMP","href":"/reference-sql/functions-reference/aggregation/stddev-samp"},{"sidebarTitle":"STRING_AGG","title":"STRING_AGG","href":"/reference-sql/functions-reference/aggregation/string-agg"},{"sidebarTitle":"SUM","title":"SUM","href":"/reference-sql/functions-reference/aggregation/sum"},{"sidebarTitle":"VAR_POP","title":"VAR_POP","href":"/reference-sql/functions-reference/aggregation/variance-pop"},{"sidebarTitle":"VAR_SAMP","title":"VAR_SAMP","href":"/reference-sql/functions-reference/aggregation/variance-samp"}]},{"group":"AI functions","pages":[{"sidebarTitle":"Overview","title":"AI functions","href":"/reference-sql/functions-reference/ai"},{"sidebarTitle":"AI_EMBED_TEXT","title":"AI_EMBED_TEXT","href":"/reference-sql/functions-reference/ai/ai-embed-text"},{"sidebarTitle":"AI_QUERY","title":"AI_QUERY","href":"/reference-sql/functions-reference/ai/ai-query"},{"sidebarTitle":"AWS_BEDROCK_AI_QUERY","title":"AWS_BEDROCK_AI_QUERY","href":"/reference-sql/functions-reference/ai/aws-bedrock-ai-query"}]},{"group":"Array functions","pages":[{"sidebarTitle":"ARRAY_CONCAT","title":"ARRAY_CONCAT","href":"/reference-sql/functions-reference/array/array-concat"},{"sidebarTitle":"ARRAY_CONTAINS","title":"ARRAY_CONTAINS","href":"/reference-sql/functions-reference/array/array-contains"},{"sidebarTitle":"ARRAY_COUNT_DISTINCT","title":"ARRAY_COUNT_DISTINCT","href":"/reference-sql/functions-reference/array/array-count-distinct"},{"sidebarTitle":"ARRAY_COUNT","title":"ARRAY_COUNT","href":"/reference-sql/functions-reference/array/array-count"},{"sidebarTitle":"ARRAY_DISTINCT","title":"ARRAY_DISTINCT","href":"/reference-sql/functions-reference/array/array-distinct"},{"sidebarTitle":"ARRAY_INTERSECT","title":"ARRAY_INTERSECT","href":"/reference-sql/functions-reference/array/array-intersect"},{"sidebarTitle":"ARRAY_LENGTH","title":"ARRAY_LENGTH","href":"/reference-sql/functions-reference/array/array-length"},{"sidebarTitle":"ARRAY_MAX","title":"ARRAY_MAX","href":"/reference-sql/functions-reference/array/array-max"},{"sidebarTitle":"ARRAY_MIN","title":"ARRAY_MIN","href":"/reference-sql/functions-reference/array/array-min"},{"sidebarTitle":"ARRAY_REVERSE_SORT","title":"ARRAY_REVERSE_SORT","href":"/reference-sql/functions-reference/array/array-reverse-sort"},{"sidebarTitle":"ARRAY_REVERSE","title":"ARRAY_REVERSE","href":"/reference-sql/functions-reference/array/array-reverse"},{"sidebarTitle":"ARRAY_SLICE","title":"ARRAY_SLICE","href":"/reference-sql/functions-reference/array/array-slice"},{"sidebarTitle":"ARRAY_SORT","title":"ARRAY_SORT","href":"/reference-sql/functions-reference/array/array-sort"},{"sidebarTitle":"ARRAY_SUM","title":"ARRAY_SUM","href":"/reference-sql/functions-reference/array/array-sum"},{"sidebarTitle":"ARRAY_TO_STRING","title":"ARRAY_TO_STRING","href":"/reference-sql/functions-reference/array/array-to-string"},{"sidebarTitle":"ARRAY_UPPER","title":"ARRAY_UPPER","href":"/reference-sql/functions-reference/array/array-upper"},{"sidebarTitle":"ARRAYS_OVERLAP","title":"ARRAYS_OVERLAP","href":"/reference-sql/functions-reference/array/arrays-overlap"},{"sidebarTitle":"ARRAY_FLATTEN","title":"ARRAY_FLATTEN","href":"/reference-sql/functions-reference/array/flatten"},{"sidebarTitle":"INDEX_OF","title":"INDEX_OF","href":"/reference-sql/functions-reference/array/index-of"}]},{"group":"Binary functions","pages":[{"sidebarTitle":"CONVERT_FROM","title":"CONVERT_FROM","href":"/reference-sql/functions-reference/bytea/convert-from"},{"sidebarTitle":"DECODE","title":"DECODE","href":"/reference-sql/functions-reference/bytea/decode"},{"sidebarTitle":"ENCODE","title":"ENCODE","href":"/reference-sql/functions-reference/bytea/encode"}]},{"group":"Conditional and miscellaneous functions","pages":[{"sidebarTitle":"CASE","title":"CASE","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/case"},{"sidebarTitle":"CAST","title":"CAST","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/cast"},{"sidebarTitle":"CITY_HASH","title":"CITY_HASH","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/city-hash"},{"sidebarTitle":"COALESCE","title":"COALESCE","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/coalesce"},{"sidebarTitle":"GREATEST","title":"GREATEST","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/greatest"},{"sidebarTitle":"HASH","title":"HASH","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/hash"},{"sidebarTitle":"IF","title":"IF","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/if"},{"sidebarTitle":"IFNULL","title":"IFNULL","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/ifnull"},{"sidebarTitle":"LEAST","title":"LEAST","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/least"},{"sidebarTitle":"NULLIF","title":"NULLIF","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/nullif"},{"sidebarTitle":"TRY_CAST","title":"TRY_CAST","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/try-cast"},{"sidebarTitle":"TYPEOF","title":"TYPEOF","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/typeof"},{"sidebarTitle":"VERSION","title":"VERSION","href":"/reference-sql/functions-reference/conditional-and-miscellaneous/version"}]},{"group":"DataSketches functions","pages":[{"sidebarTitle":"Overview","title":"DataSketches functions","href":"/reference-sql/functions-reference/datasketches"},{"sidebarTitle":"APACHE_DATASKETCHES_HLL_BUILD","title":"APACHE_DATASKETCHES_HLL_BUILD","href":"/reference-sql/functions-reference/datasketches/apache-datasketches-hll-build"},{"sidebarTitle":"APACHE_DATASKETCHES_HLL_ESTIMATE","title":"APACHE_DATASKETCHES_HLL_ESTIMATE","href":"/reference-sql/functions-reference/datasketches/apache-datasketches-hll-estimate"},{"sidebarTitle":"APACHE_DATASKETCHES_HLL_MERGE","title":"APACHE_DATASKETCHES_HLL_MERGE","href":"/reference-sql/functions-reference/datasketches/apache-datasketches-hll-merge"}]},{"group":"Date and time functions","pages":[{"sidebarTitle":"AGO","title":"AGO","href":"/reference-sql/functions-reference/date-and-time/ago"},{"sidebarTitle":"CURRENT_DATE","title":"CURRENT_DATE","href":"/reference-sql/functions-reference/date-and-time/current-date"},{"sidebarTitle":"CURRENT_TIMESTAMP","title":"CURRENT_TIMESTAMP","href":"/reference-sql/functions-reference/date-and-time/current-timestamptz"},{"sidebarTitle":"DATE_ADD","title":"DATE_ADD","href":"/reference-sql/functions-reference/date-and-time/date-add"},{"sidebarTitle":"DATE_DIFF","title":"DATE_DIFF","href":"/reference-sql/functions-reference/date-and-time/date-diff"},{"sidebarTitle":"DATE_TRUNC","title":"DATE_TRUNC","href":"/reference-sql/functions-reference/date-and-time/date-trunc"},{"sidebarTitle":"DATE","title":"DATE","href":"/reference-sql/functions-reference/date-and-time/date"},{"sidebarTitle":"EXTRACT","title":"EXTRACT","href":"/reference-sql/functions-reference/date-and-time/extract"},{"sidebarTitle":"JUSTIFY_HOURS, JUSTIFY_DAYS, JUSTIFY_INTERVAL","title":"JUSTIFY_HOURS, JUSTIFY_DAYS, JUSTIFY_INTERVAL","href":"/reference-sql/functions-reference/date-and-time/justify"},{"sidebarTitle":"LOCALTIMESTAMP","title":"LOCALTIMESTAMP","href":"/reference-sql/functions-reference/date-and-time/localtimestamp"},{"sidebarTitle":"MAKE_INTERVAL","title":"MAKE_INTERVAL","href":"/reference-sql/functions-reference/date-and-time/make-interval"},{"sidebarTitle":"TO_CHAR","title":"TO_CHAR","href":"/reference-sql/functions-reference/date-and-time/to-char"},{"sidebarTitle":"TO_DATE","title":"TO_DATE","href":"/reference-sql/functions-reference/date-and-time/to-date"},{"sidebarTitle":"TO_TIMESTAMP","title":"TO_TIMESTAMP","href":"/reference-sql/functions-reference/date-and-time/to-timestamp"},{"sidebarTitle":"TO_YYYYMM","title":"TO_YYYYMM","href":"/reference-sql/functions-reference/date-and-time/to-yyyymm"},{"sidebarTitle":"TO_YYYYMMDD","title":"TO_YYYYMMDD","href":"/reference-sql/functions-reference/date-and-time/to-yyyymmdd"}]},{"group":"Geospatial functions","pages":[{"sidebarTitle":"ST_ASBINARY","title":"ST_ASBINARY","href":"/reference-sql/functions-reference/geospatial/st_asbinary"},{"sidebarTitle":"ST_ASEWKB","title":"ST_ASEWKB","href":"/reference-sql/functions-reference/geospatial/st_asewkb"},{"sidebarTitle":"ST_ASGEOJSON","title":"ST_ASGEOJSON","href":"/reference-sql/functions-reference/geospatial/st_asgeojson"},{"sidebarTitle":"ST_ASTEXT","title":"ST_ASTEXT","href":"/reference-sql/functions-reference/geospatial/st_astext"},{"sidebarTitle":"ST_CONTAINS","title":"ST_CONTAINS","href":"/reference-sql/functions-reference/geospatial/st_contains"},{"sidebarTitle":"ST_COVERS","title":"ST_COVERS","href":"/reference-sql/functions-reference/geospatial/st_covers"},{"sidebarTitle":"ST_DISTANCE","title":"ST_DISTANCE","href":"/reference-sql/functions-reference/geospatial/st_distance"},{"sidebarTitle":"ST_GEOGFROMGEOJSON","title":"ST_GEOGFROMGEOJSON","href":"/reference-sql/functions-reference/geospatial/st_geogfromgeojson"},{"sidebarTitle":"ST_GEOGFROMTEXT","title":"ST_GEOGFROMTEXT","href":"/reference-sql/functions-reference/geospatial/st_geogfromtext"},{"sidebarTitle":"ST_GEOGFROMWKB","title":"ST_GEOGFROMWKB","href":"/reference-sql/functions-reference/geospatial/st_geogfromwkb"},{"sidebarTitle":"ST_GEOGPOINT","title":"ST_GEOGPOINT","href":"/reference-sql/functions-reference/geospatial/st_geogpoint"},{"sidebarTitle":"ST_INTERSECTS","title":"ST_INTERSECTS","href":"/reference-sql/functions-reference/geospatial/st_intersects"},{"sidebarTitle":"ST_S2CELLIDFROMPOINT","title":"ST_S2CELLIDFROMPOINT","href":"/reference-sql/functions-reference/geospatial/st_s2cellidfrompoint"},{"sidebarTitle":"ST_X","title":"ST_X","href":"/reference-sql/functions-reference/geospatial/st_x"},{"sidebarTitle":"ST_Y","title":"ST_Y","href":"/reference-sql/functions-reference/geospatial/st_y"}]},{"group":"Iceberg functions","pages":[{"sidebarTitle":"Overview","title":"Iceberg functions","href":"/reference-sql/functions-reference/iceberg"},{"sidebarTitle":"READ_ICEBERG","title":"READ_ICEBERG","href":"/reference-sql/functions-reference/iceberg/read_iceberg"},{"sidebarTitle":"LIST_ICEBERG_FILES","title":"LIST_ICEBERG_FILES","href":"/reference-sql/functions-reference/iceberg/list_iceberg_files"},{"group":"Partition transform functions","pages":[{"sidebarTitle":"ICEBERG_YEAR","title":"ICEBERG_YEAR","href":"/reference-sql/functions-reference/iceberg/partitioning/iceberg_year"},{"sidebarTitle":"ICEBERG_MONTH","title":"ICEBERG_MONTH","href":"/reference-sql/functions-reference/iceberg/partitioning/iceberg_month"},{"sidebarTitle":"ICEBERG_DAY","title":"ICEBERG_DAY","href":"/reference-sql/functions-reference/iceberg/partitioning/iceberg_day"},{"sidebarTitle":"ICEBERG_HOUR","title":"ICEBERG_HOUR","href":"/reference-sql/functions-reference/iceberg/partitioning/iceberg_hour"},{"sidebarTitle":"ICEBERG_BUCKET","title":"ICEBERG_BUCKET","href":"/reference-sql/functions-reference/iceberg/partitioning/iceberg_bucket"},{"sidebarTitle":"ICEBERG_TRUNCATE","title":"ICEBERG_TRUNCATE","href":"/reference-sql/functions-reference/iceberg/partitioning/iceberg_truncate"}]}]},{"group":"DuckLake functions","pages":[{"sidebarTitle":"Overview","title":"DuckLake functions","href":"/reference-sql/functions-reference/ducklake/ducklake"},{"sidebarTitle":"READ_DUCKLAKE","title":"READ_DUCKLAKE","href":"/reference-sql/functions-reference/ducklake/read_ducklake"},{"sidebarTitle":"LIST_DUCKLAKE_FILES","title":"LIST_DUCKLAKE_FILES","href":"/reference-sql/functions-reference/ducklake/list_ducklake_files"}]},{"group":"JSON functions","pages":[{"sidebarTitle":"Overview","title":"JSON functions","href":"/reference-sql/functions-reference/json"},{"sidebarTitle":"CHECK_JSON","title":"CHECK_JSON","href":"/reference-sql/functions-reference/json/check-json"},{"sidebarTitle":"JSON_ARRAY_LENGTH","title":"JSON_ARRAY_LENGTH","href":"/reference-sql/functions-reference/json/json-array-length"},{"sidebarTitle":"JSON_EXTRACT_ARRAY","title":"JSON_EXTRACT_ARRAY","href":"/reference-sql/functions-reference/json/json-extract-array"},{"sidebarTitle":"JSON_EXTRACT","title":"JSON_EXTRACT","href":"/reference-sql/functions-reference/json/json-extract"},{"sidebarTitle":"JSON_POINTER_EXTRACT_KEYS","title":"JSON_POINTER_EXTRACT_KEYS","href":"/reference-sql/functions-reference/json/json-pointer-extract-keys"},{"sidebarTitle":"JSON_POINTER_EXTRACT_TEXT","title":"JSON_POINTER_EXTRACT_TEXT","href":"/reference-sql/functions-reference/json/json-pointer-extract-text"},{"sidebarTitle":"JSON_POINTER_EXTRACT_VALUES","title":"JSON_POINTER_EXTRACT_VALUES","href":"/reference-sql/functions-reference/json/json-pointer-extract-values"},{"sidebarTitle":"JSON_VALUE_ARRAY","title":"JSON_VALUE_ARRAY","href":"/reference-sql/functions-reference/json/json-value-array"},{"sidebarTitle":"JSON_VALUE","title":"JSON_VALUE","href":"/reference-sql/functions-reference/json/json-value"},{"sidebarTitle":"JSON_FORMAT","title":"JSON_FORMAT","href":"/reference-sql/functions-reference/json/json-format"},{"sidebarTitle":"JSON_IS_VALID","title":"JSON_IS_VALID","href":"/reference-sql/functions-reference/json/json-is-valid"},{"sidebarTitle":"JSON_TYPEOF","title":"JSON_TYPEOF","href":"/reference-sql/functions-reference/json/json-typeof"},{"sidebarTitle":"JSON operators","title":"JSON Operators","href":"/reference-sql/functions-reference/json/json-operators"},{"sidebarTitle":"TO_JSON","title":"TO_JSON","href":"/reference-sql/functions-reference/json/to-json"},{"sidebarTitle":"TO_JSON_STRING","title":"TO_JSON_STRING","href":"/reference-sql/functions-reference/json/to-json-string"}]},{"group":"Lambda functions","pages":[{"sidebarTitle":"Overview","title":"Lambda functions","href":"/reference-sql/functions-reference/lambda"},{"sidebarTitle":"ARRAY_ALL_MATCH","title":"ARRAY_ALL_MATCH","href":"/reference-sql/functions-reference/lambda/array-all-match"},{"sidebarTitle":"ARRAY_ANY_MATCH","title":"ARRAY_ANY_MATCH","href":"/reference-sql/functions-reference/lambda/array-any-match"},{"sidebarTitle":"ARRAY_FIRST","title":"ARRAY_FIRST","href":"/reference-sql/functions-reference/lambda/array-first"},{"sidebarTitle":"ARRAY_FILTER","title":"ARRAY_FILTER","href":"/reference-sql/functions-reference/lambda/filter"},{"sidebarTitle":"ARRAY_TRANSFORM","title":"ARRAY_TRANSFORM","href":"/reference-sql/functions-reference/lambda/transform"}]},{"group":"Numeric functions","pages":[{"sidebarTitle":"ABS","title":"ABS","href":"/reference-sql/functions-reference/numeric/abs"},{"sidebarTitle":"ACOS","title":"ACOS","href":"/reference-sql/functions-reference/numeric/acos"},{"sidebarTitle":"ACOSH","title":"ACOSH","href":"/reference-sql/functions-reference/numeric/acosh"},{"sidebarTitle":"ARRAY_ENUMERATE","title":"ARRAY_ENUMERATE","href":"/reference-sql/functions-reference/numeric/array-enumerate"},{"sidebarTitle":"ASIN","title":"ASIN","href":"/reference-sql/functions-reference/numeric/asin"},{"sidebarTitle":"ASINH","title":"ASINH","href":"/reference-sql/functions-reference/numeric/asinh"},{"sidebarTitle":"ATAN","title":"ATAN","href":"/reference-sql/functions-reference/numeric/atan"},{"sidebarTitle":"ATAN2","title":"ATAN2","href":"/reference-sql/functions-reference/numeric/atan2"},{"sidebarTitle":"ATANH","title":"ATANH","href":"/reference-sql/functions-reference/numeric/atanh"},{"sidebarTitle":"BIT_SHIFT_LEFT","title":"BIT_SHIFT_LEFT","href":"/reference-sql/functions-reference/numeric/bit_shift_left"},{"sidebarTitle":"BIT_SHIFT_RIGHT","title":"BIT_SHIFT_RIGHT","href":"/reference-sql/functions-reference/numeric/bit_shift_right"},{"sidebarTitle":"CBRT","title":"CBRT","href":"/reference-sql/functions-reference/numeric/cbrt"},{"sidebarTitle":"CEIL","title":"CEIL","href":"/reference-sql/functions-reference/numeric/ceil"},{"sidebarTitle":"COS","title":"COS","href":"/reference-sql/functions-reference/numeric/cos"},{"sidebarTitle":"COSH","title":"COSH","href":"/reference-sql/functions-reference/numeric/cosh"},{"sidebarTitle":"CSCH","title":"CSCH","href":"/reference-sql/functions-reference/numeric/csch"},{"sidebarTitle":"COTH","title":"COTH","href":"/reference-sql/functions-reference/numeric/coth"},{"sidebarTitle":"COT","title":"COT","href":"/reference-sql/functions-reference/numeric/cot"},{"sidebarTitle":"DEGREES","title":"DEGREES","href":"/reference-sql/functions-reference/numeric/degrees"},{"sidebarTitle":"EXP","title":"EXP","href":"/reference-sql/functions-reference/numeric/exp"},{"sidebarTitle":"FLOOR","title":"FLOOR","href":"/reference-sql/functions-reference/numeric/floor"},{"sidebarTitle":"HLL_COUNT_ESTIMATE","title":"HLL_COUNT_ESTIMATE","href":"/reference-sql/functions-reference/numeric/hll-count-estimate"},{"sidebarTitle":"IS_FINITE","title":"IS_FINITE","href":"/reference-sql/functions-reference/numeric/is_finite"},{"sidebarTitle":"IS_INFINITE","title":"IS_INFINITE","href":"/reference-sql/functions-reference/numeric/is_infinite"},{"sidebarTitle":"LN","title":"LN","href":"/reference-sql/functions-reference/numeric/ln"},{"sidebarTitle":"LOG","title":"LOG","href":"/reference-sql/functions-reference/numeric/log"},{"sidebarTitle":"MOD","title":"MOD","href":"/reference-sql/functions-reference/numeric/mod"},{"sidebarTitle":"PARAM","title":"PARAM","href":"/reference-sql/functions-reference/numeric/param"},{"sidebarTitle":"PI","title":"PI","href":"/reference-sql/functions-reference/numeric/pi"},{"sidebarTitle":"POW","title":"POW","href":"/reference-sql/functions-reference/numeric/pow"},{"sidebarTitle":"RADIANS","title":"RADIANS","href":"/reference-sql/functions-reference/numeric/radians"},{"sidebarTitle":"RANDOM","title":"RANDOM","href":"/reference-sql/functions-reference/numeric/random"},{"sidebarTitle":"ROUND","title":"ROUND","href":"/reference-sql/functions-reference/numeric/round"},{"sidebarTitle":"SIGN","title":"SIGN","href":"/reference-sql/functions-reference/numeric/sign"},{"sidebarTitle":"SIN","title":"SIN","href":"/reference-sql/functions-reference/numeric/sin"},{"sidebarTitle":"SINH","title":"SINH","href":"/reference-sql/functions-reference/numeric/sinh"},{"sidebarTitle":"SECH","title":"SECH","href":"/reference-sql/functions-reference/numeric/sech"},{"sidebarTitle":"SQRT","title":"SQRT","href":"/reference-sql/functions-reference/numeric/sqrt"},{"sidebarTitle":"TAN","title":"TAN","href":"/reference-sql/functions-reference/numeric/tan"},{"sidebarTitle":"TANH","title":"TANH","href":"/reference-sql/functions-reference/numeric/tanh"},{"sidebarTitle":"TRUNC","title":"TRUNC","href":"/reference-sql/functions-reference/numeric/trunc"}]},{"group":"Session functions","pages":[{"sidebarTitle":"CURRENT_ACCOUNT","title":"CURRENT_ACCOUNT","href":"/reference-sql/functions-reference/session/current-account"},{"sidebarTitle":"CURRENT_DATABASE","title":"CURRENT_DATABASE","href":"/reference-sql/functions-reference/session/current-database"},{"sidebarTitle":"SESSION_USER","title":"SESSION_USER","href":"/reference-sql/functions-reference/session/session-user"}]},{"group":"String functions","pages":[{"sidebarTitle":"BTRIM","title":"BTRIM","href":"/reference-sql/functions-reference/string/btrim"},{"sidebarTitle":"CONCAT","title":"CONCAT","href":"/reference-sql/functions-reference/string/concat"},{"sidebarTitle":"GEN_RANDOM_UUID_TEXT","title":"GEN_RANDOM_UUID_TEXT","href":"/reference-sql/functions-reference/string/gen-random-uuid-text"},{"sidebarTitle":"ICU_NORMALIZE","title":"ICU_NORMALIZE","href":"/reference-sql/functions-reference/string/icu_normalize"},{"sidebarTitle":"ILIKE","title":"ILIKE","href":"/reference-sql/functions-reference/string/ilike"},{"sidebarTitle":"LENGTH","title":"LENGTH","href":"/reference-sql/functions-reference/string/length"},{"sidebarTitle":"LIKE","title":"LIKE","href":"/reference-sql/functions-reference/string/like"},{"sidebarTitle":"LOWER","title":"LOWER","href":"/reference-sql/functions-reference/string/lower"},{"sidebarTitle":"LPAD","title":"LPAD","href":"/reference-sql/functions-reference/string/lpad"},{"sidebarTitle":"LTRIM","title":"LTRIM","href":"/reference-sql/functions-reference/string/ltrim"},{"sidebarTitle":"MD5","title":"MD5","href":"/reference-sql/functions-reference/string/md5"},{"sidebarTitle":"MD5_NUMBER_LOWER64","title":"MD5_NUMBER_LOWER64","href":"/reference-sql/functions-reference/string/md5-number-lower64"},{"sidebarTitle":"MD5_NUMBER_UPPER64","title":"MD5_NUMBER_UPPER64","href":"/reference-sql/functions-reference/string/md5-number-upper64"},{"sidebarTitle":"NGRAM","title":"NGRAM","href":"/reference-sql/functions-reference/string/ngram"},{"sidebarTitle":"OCTET_LENGTH","title":"OCTET_LENGTH","href":"/reference-sql/functions-reference/string/octet_length"},{"sidebarTitle":"POSITION","title":"POSITION","href":"/reference-sql/functions-reference/string/position"},{"sidebarTitle":"REGEXP_EXTRACT_ALL","title":"REGEXP_EXTRACT_ALL","href":"/reference-sql/functions-reference/string/regexp-extract-all"},{"sidebarTitle":"REGEXP_EXTRACT","title":"REGEXP_EXTRACT","href":"/reference-sql/functions-reference/string/regexp-extract"},{"sidebarTitle":"REGEXP_LIKE_ANY","title":"REGEXP_LIKE_ANY","href":"/reference-sql/functions-reference/string/regexp-like-any"},{"sidebarTitle":"REGEXP_LIKE","title":"REGEXP_LIKE","href":"/reference-sql/functions-reference/string/regexp-like"},{"sidebarTitle":"REGEXP_REPLACE","title":"REGEXP_REPLACE","href":"/reference-sql/functions-reference/string/regexp-replace"},{"sidebarTitle":"REPEAT","title":"REPEAT","href":"/reference-sql/functions-reference/string/repeat"},{"sidebarTitle":"REPLACE","title":"REPLACE","href":"/reference-sql/functions-reference/string/replace"},{"sidebarTitle":"REVERSE","title":"REVERSE","href":"/reference-sql/functions-reference/string/reverse"},{"sidebarTitle":"RPAD","title":"RPAD","href":"/reference-sql/functions-reference/string/rpad"},{"sidebarTitle":"RTRIM","title":"RTRIM","href":"/reference-sql/functions-reference/string/rtrim"},{"sidebarTitle":"SPLIT_PART","title":"SPLIT_PART","href":"/reference-sql/functions-reference/string/split-part"},{"sidebarTitle":"SOUNDEX","title":"SOUNDEX","href":"/reference-sql/functions-reference/string/soundex"},{"sidebarTitle":"STRING_TO_ARRAY","title":"STRING_TO_ARRAY","href":"/reference-sql/functions-reference/string/string-to-array"},{"sidebarTitle":"STRPOS","title":"STRPOS","href":"/reference-sql/functions-reference/string/strpos"},{"sidebarTitle":"SUBSTRING, SUBSTR","title":"SUBSTRING, SUBSTR","href":"/reference-sql/functions-reference/string/substring"},{"sidebarTitle":"TO_BIN","title":"TO_BIN","href":"/reference-sql/functions-reference/string/to_bin"},{"sidebarTitle":"TO_OCT","title":"TO_OCT","href":"/reference-sql/functions-reference/string/to_oct"},{"sidebarTitle":"TRIM","title":"TRIM","href":"/reference-sql/functions-reference/string/trim"},{"sidebarTitle":"UPPER","title":"UPPER","href":"/reference-sql/functions-reference/string/upper"},{"sidebarTitle":"URL_DECODE","title":"URL_DECODE","href":"/reference-sql/functions-reference/string/url_decode"},{"sidebarTitle":"URL_ENCODE","title":"URL_ENCODE","href":"/reference-sql/functions-reference/string/url_encode"}]},{"group":"Table-valued functions","pages":[{"sidebarTitle":"Overview","title":"Table-valued functions","href":"/reference-sql/functions-reference/table-valued"},{"sidebarTitle":"GENERATE_SERIES","title":"GENERATE_SERIES","href":"/reference-sql/functions-reference/table-valued/generate-series"},{"sidebarTitle":"LIST_OBJECTS","title":"LIST_OBJECTS","href":"/reference-sql/functions-reference/table-valued/list-objects"},{"sidebarTitle":"READ_AVRO","title":"READ_AVRO","href":"/reference-sql/functions-reference/table-valued/read_avro"},{"sidebarTitle":"READ_CSV","title":"READ_CSV","href":"/reference-sql/functions-reference/table-valued/read_csv"},{"sidebarTitle":"READ_FILES","title":"READ_FILES","href":"/reference-sql/functions-reference/table-valued/read_files"},{"sidebarTitle":"READ_JSON","title":"READ_JSON","href":"/reference-sql/functions-reference/table-valued/read_json"},{"sidebarTitle":"READ_PARQUET","title":"READ_PARQUET","href":"/reference-sql/functions-reference/table-valued/read_parquet"},{"sidebarTitle":"PARQUET_METADATA","title":"PARQUET_METADATA","href":"/reference-sql/functions-reference/table-valued/parquet_metadata"},{"sidebarTitle":"READ_SNAPSHOT","title":"READ_SNAPSHOT","href":"/reference-sql/functions-reference/table-valued/read_snapshot"},{"sidebarTitle":"READ_STREAM","title":"READ_STREAM","href":"/reference-sql/functions-reference/table-valued/read_stream"},{"sidebarTitle":"READ_TEXT","title":"READ_TEXT","href":"/reference-sql/functions-reference/table-valued/read_text"}]},{"group":"Vector functions","pages":[{"sidebarTitle":"Overview","title":"Vector functions","href":"/reference-sql/functions-reference/vector"},{"sidebarTitle":"VECTOR_ADD","title":"VECTOR_ADD","href":"/reference-sql/functions-reference/vector/vector-add"},{"sidebarTitle":"VECTOR_COSINE_DISTANCE","title":"VECTOR_COSINE_DISTANCE","href":"/reference-sql/functions-reference/vector/vector-cosine-distance"},{"sidebarTitle":"VECTOR_COSINE_SIMILARITY","title":"VECTOR_COSINE_SIMILARITY","href":"/reference-sql/functions-reference/vector/vector-cosine-similarity"},{"sidebarTitle":"VECTOR_EUCLIDEAN_DISTANCE","title":"VECTOR_EUCLIDEAN_DISTANCE","href":"/reference-sql/functions-reference/vector/vector-euclidean-distance"},{"sidebarTitle":"VECTOR_INNER_PRODUCT","title":"VECTOR_INNER_PRODUCT","href":"/reference-sql/functions-reference/vector/vector-inner-product"},{"sidebarTitle":"VECTOR_MANHATTAN_DISTANCE","title":"VECTOR_MANHATTAN_DISTANCE","href":"/reference-sql/functions-reference/vector/vector-manhattan-distance"},{"sidebarTitle":"VECTOR_SEARCH","title":"VECTOR_SEARCH","href":"/reference-sql/functions-reference/vector/vector-search"},{"sidebarTitle":"VECTOR_SQUARED_EUCLIDEAN_DISTANCE","title":"VECTOR_SQUARED_EUCLIDEAN_DISTANCE","href":"/reference-sql/functions-reference/vector/vector-squared-euclidean-distance"},{"sidebarTitle":"VECTOR_SUBTRACT","title":"VECTOR_SUBTRACT","href":"/reference-sql/functions-reference/vector/vector-subtract"}]},{"group":"Window functions","pages":[{"sidebarTitle":"Overview","title":"Window functions","href":"/reference-sql/functions-reference/window"},{"sidebarTitle":"AVG OVER","title":"AVG OVER","href":"/reference-sql/functions-reference/window/avg-window"},{"sidebarTitle":"COUNT OVER","title":"COUNT OVER","href":"/reference-sql/functions-reference/window/count-window"},{"sidebarTitle":"CUME_DIST OVER","title":"CUME_DIST OVER","href":"/reference-sql/functions-reference/window/cume-dist"},{"sidebarTitle":"DENSE_RANK OVER","title":"DENSE_RANK OVER","href":"/reference-sql/functions-reference/window/dense-rank"},{"sidebarTitle":"FIRST_VALUE","title":"FIRST_VALUE","href":"/reference-sql/functions-reference/window/first-value"},{"sidebarTitle":"LAG OVER","title":"LAG OVER","href":"/reference-sql/functions-reference/window/lag"},{"sidebarTitle":"LEAD OVER","title":"LEAD OVER","href":"/reference-sql/functions-reference/window/lead"},{"sidebarTitle":"MAX OVER","title":"MAX OVER","href":"/reference-sql/functions-reference/window/max-window"},{"sidebarTitle":"MIN OVER","title":"MIN OVER","href":"/reference-sql/functions-reference/window/min-window"},{"sidebarTitle":"NTH_VALUE OVER","title":"NTH_VALUE OVER","href":"/reference-sql/functions-reference/window/nth-value"},{"sidebarTitle":"NTILE OVER","title":"NTILE OVER","href":"/reference-sql/functions-reference/window/ntile"},{"sidebarTitle":"PERCENT_RANK OVER","title":"PERCENT_RANK OVER","href":"/reference-sql/functions-reference/window/percent-rank"},{"sidebarTitle":"RANK OVER","title":"RANK OVER","href":"/reference-sql/functions-reference/window/rank"},{"sidebarTitle":"ROW_NUMBER OVER","title":"ROW_NUMBER OVER","href":"/reference-sql/functions-reference/window/row-number"},{"sidebarTitle":"SUM OVER","title":"SUM OVER","href":"/reference-sql/functions-reference/window/sum-window"}]}]},{"sidebarTitle":"System settings","title":"System settings","href":"/reference-sql/system-settings"},{"title":"Differences from PostgreSQL","sidebarTitle":"Differences from PostgreSQL","href":"/reference-sql/postgresql-differences"},{"group":"BigQuery compatibility","pages":[{"title":"BigQuery compatibility","sidebarTitle":"Overview","href":"/reference-sql/bigquery/overview"},{"title":"Query syntax","sidebarTitle":"Query syntax","href":"/reference-sql/bigquery/query-syntax"},{"title":"Pipe syntax","sidebarTitle":"Pipe syntax","href":"/reference-sql/bigquery/pipe-syntax"},{"title":"Data types","sidebarTitle":"Data types","href":"/reference-sql/bigquery/data-types"},{"title":"Operators","sidebarTitle":"Operators","href":"/reference-sql/bigquery/operators"},{"group":"Functions","pages":[{"title":"Date and time functions","sidebarTitle":"Date and time","href":"/reference-sql/bigquery/functions/date-and-time"},{"title":"String functions","sidebarTitle":"String","href":"/reference-sql/bigquery/functions/string"},{"title":"JSON functions","sidebarTitle":"JSON","href":"/reference-sql/bigquery/functions/json"},{"title":"Array functions","sidebarTitle":"Array","href":"/reference-sql/bigquery/functions/array"},{"title":"Aggregate and approximate functions","sidebarTitle":"Aggregate \u0026 approximate","href":"/reference-sql/bigquery/functions/aggregate"},{"title":"Math functions","sidebarTitle":"Math","href":"/reference-sql/bigquery/functions/math"},{"title":"Geography functions","sidebarTitle":"Geography","href":"/reference-sql/bigquery/functions/geography"},{"title":"Conditional and conversion functions","sidebarTitle":"Conditional \u0026 conversion","href":"/reference-sql/bigquery/functions/conditional-and-conversion"}]},{"title":"Statements","sidebarTitle":"Statements","href":"/reference-sql/bigquery/statements"},{"title":"BigQuery information_schema","sidebarTitle":"Information schema","href":"/reference-sql/bigquery/information-schema"}]},{"group":"Snowflake compatibility","pages":[{"title":"Snowflake compatibility","sidebarTitle":"Overview","href":"/reference-sql/snowflake/overview"},{"title":"Query syntax","sidebarTitle":"Query syntax","href":"/reference-sql/snowflake/query-syntax"},{"title":"Data types","sidebarTitle":"Data types","href":"/reference-sql/snowflake/data-types"},{"title":"Operators","sidebarTitle":"Operators","href":"/reference-sql/snowflake/operators"},{"group":"Functions","pages":[{"title":"Aggregate functions","sidebarTitle":"Aggregate","href":"/reference-sql/snowflake/functions/aggregate"},{"title":"Bitwise expression functions","sidebarTitle":"Bitwise","href":"/reference-sql/snowflake/functions/bitwise"},{"title":"Conditional expression functions","sidebarTitle":"Conditional","href":"/reference-sql/snowflake/functions/conditional"},{"title":"Context functions","sidebarTitle":"Context","href":"/reference-sql/snowflake/functions/context"},{"title":"Conversion functions","sidebarTitle":"Conversion","href":"/reference-sql/snowflake/functions/conversion"},{"title":"Date \u0026 time functions","sidebarTitle":"Date and time","href":"/reference-sql/snowflake/functions/date-and-time"},{"title":"Geospatial functions","sidebarTitle":"Geospatial","href":"/reference-sql/snowflake/functions/geospatial"},{"title":"Hash functions","sidebarTitle":"Hash","href":"/reference-sql/snowflake/functions/hash"},{"title":"Numeric functions","sidebarTitle":"Numeric","href":"/reference-sql/snowflake/functions/numeric"},{"title":"Regular expressions functions","sidebarTitle":"Regular expressions","href":"/reference-sql/snowflake/functions/regular-expressions"},{"title":"Semi-structured and structured data functions","sidebarTitle":"Semi-structured","href":"/reference-sql/snowflake/functions/semi-structured"},{"title":"String \u0026 binary functions","sidebarTitle":"String and binary","href":"/reference-sql/snowflake/functions/string"},{"title":"Window functions","sidebarTitle":"Window","href":"/reference-sql/snowflake/functions/window"}]},{"title":"Statements","sidebarTitle":"Statements","href":"/reference-sql/snowflake/statements"},{"title":"Snowflake information_schema","sidebarTitle":"Information schema","href":"/reference-sql/snowflake/information-schema"}]}]},{"group":"Release notes","pages":[{"sidebarTitle":"Overview","title":"Release notes","href":"/release-notes"},{"sidebarTitle":"Release notes archive","title":"Release notes archive","href":"/release-notes/release-notes-archive"}]},{"group":"API reference","pages":[{"sidebarTitle":"Overview","title":"API reference","href":"/reference-api"},{"sidebarTitle":"Synchronous queries","title":"Synchronous queries","href":"/reference-api/using-sync-queries"},{"sidebarTitle":"Asynchronous queries","title":"Asynchronous queries","href":"/reference-api/using-async-queries"},{"sidebarTitle":"Uploading files","title":"Upload and query local files","href":"/reference-api/uploading-files"},{"group":"OpenAPI spec","pages":[{"group":"API Reference","pages":[{"title":"Submit a sql statement for execution","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/firebolt-db/openapi/main/specification/yaml/firebolt_query_v2.3.yaml post /query","href":"/api-reference/submit-a-sql-statement-for-execution"}]}]}]},{"group":"Legal","pages":[{"sidebarTitle":"EU Data Act Switching","title":"Firebolt Data Portability \u0026 Switching Specifications","href":"/legal/data-portability-and-export"}]}]},"basePath":"","title":"Amazon S3 - Firebolt Documentation","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}