From 71b92a94d912727ed6f49aa9d0681d55751e2830 Mon Sep 17 00:00:00 2001 From: Sergio Torrado Date: Wed, 13 Aug 2025 20:21:10 -0500 Subject: [PATCH] add partial Spanish translation --- docusaurus.config.en.js | 7 +- docusaurus.config.es.js | 373 +++++++++ docusaurus.config.jp.js | 7 +- docusaurus.config.js | 4 +- docusaurus.config.ru.js | 7 +- docusaurus.config.zh.js | 7 +- i18n/es/code.json | 635 +++++++++++++++ .../options.json | 14 + .../current.json | 742 ++++++++++++++++++ .../current/about-us/intro.mdx | 10 + .../current/deployment-modes.md | 75 ++ .../current/getting-started/_category_.yml | 8 + .../install/_snippets/_deb_install.md | 130 +++ .../install/_snippets/_docker.md | 190 +++++ .../install/_snippets/_linux_tar_install.md | 94 +++ .../install/_snippets/_macos.md | 103 +++ .../install/_snippets/_quick_install.md | 64 ++ .../install/_snippets/_rpm_install.md | 83 ++ .../install/_snippets/_windows_install.md | 84 ++ .../getting-started/install/advanced.md | 45 ++ .../getting-started/install/debian_ubuntu.md | 12 + .../current/getting-started/install/docker.md | 12 + .../getting-started/install/install.mdx | 47 ++ .../current/getting-started/install/macos.md | 12 + .../getting-started/install/other_linux.md | 12 + .../install/quick-install-curl.md | 12 + .../current/getting-started/install/redhat.md | 12 + .../getting-started/install/windows.md | 12 + .../getting-started/quick-start/cloud.mdx | 330 ++++++++ .../getting-started/quick-start/index.mdx | 104 +++ .../getting-started/quick-start/oss.mdx | 344 ++++++++ .../current/intro.md | 90 +++ .../current/introduction-index.md | 18 + .../current/tutorial.md | 538 +++++++++++++ i18n/es/docusaurus-theme-classic/footer.json | 22 + i18n/es/docusaurus-theme-classic/navbar.json | 6 + .../best-practices/use_materialized_views.md | 2 +- 37 files changed, 4261 insertions(+), 6 deletions(-) create mode 100644 docusaurus.config.es.js create mode 100644 i18n/es/code.json create mode 100644 i18n/es/docusaurus-plugin-content-blog/options.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/about-us/intro.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/deployment-modes.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/_category_.yml create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_deb_install.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_docker.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_linux_tar_install.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_macos.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_quick_install.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_rpm_install.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_windows_install.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/advanced.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/debian_ubuntu.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/docker.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/install.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/macos.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/other_linux.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/quick-install-curl.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/redhat.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/windows.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/cloud.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/index.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/oss.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/intro.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/introduction-index.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/tutorial.md create mode 100644 i18n/es/docusaurus-theme-classic/footer.json create mode 100644 i18n/es/docusaurus-theme-classic/navbar.json diff --git a/docusaurus.config.en.js b/docusaurus.config.en.js index b930c2a57a2..95ba094bea5 100644 --- a/docusaurus.config.en.js +++ b/docusaurus.config.en.js @@ -62,7 +62,7 @@ const config = { trailingSlash: false, i18n: { defaultLocale: "en", - locales: ["en", "jp", "zh", "ru"], + locales: ["en", "jp", "zh", "ru", "es"], path: "i18n", localeConfigs: { en: { @@ -84,6 +84,11 @@ const config = { label: "Русский", htmlLang: "ru", path: "ru", + }, + es: { + label: "Español", + htmlLang: "es", + path: "es", } }, }, diff --git a/docusaurus.config.es.js b/docusaurus.config.es.js new file mode 100644 index 00000000000..a214b0e459b --- /dev/null +++ b/docusaurus.config.es.js @@ -0,0 +1,373 @@ +import { themes } from "prism-react-renderer"; +import math from "remark-math"; +import katex from "rehype-katex"; +import chHeader from "./plugins/header.js"; +import fixLinks from "./src/hooks/fixLinks.js"; +const path = require('path'); +const remarkCustomBlocks = require('./plugins/remark-custom-blocks.js'); + +// Import custom plugins +const { customParseFrontMatter } = require('./plugins/frontmatter-validation/customParseFrontMatter.js'); +const checkFloatingPages = require('./plugins/checkFloatingPages.js'); +const frontmatterValidator = require('./plugins/frontmatter-validation/frontmatterValidatorPlugin.js'); +import pluginLlmsTxt from './plugins/llms-txt-plugin.ts' +import prismLight from "./src/utils/prismLight.ts"; +import prismDark from "./src/utils/prismDark.ts"; +import glossaryTransformer from "./plugins/glossary-transformer.js"; + +// Helper function to skip over index.md files. +function skipIndex(items) { + return items.filter(({ type, id }) => { + return type !== "doc" || !id.match(/index$/); + }); +} + +/** @type {import('@docusaurus/types').Config} */ +const config = { + scripts: [ + { + src: "/docs/js/kapa_config.js", + async: false, + }, + { + src: "/docs/js/kapa_widget.js", + async: true, + defer: true, // execute after document parsing, but before firing DOMContentLoaded event + }, + ], + // Settings for Docusaurus Faster - build optimizations + future: { + experimental_faster: { + swcJsLoader: true, + swcJsMinimizer: true, + swcHtmlMinimizer: true, + lightningCssMinimizer: true, + rspackBundler: true, + mdxCrossCompilerCache: true, + }, + }, + title: "ClickHouse Docs", + tagline: + "Documentation, quick starts, user guides, technical references, FAQs and more...", + url: "https://clickhouse.com", + // url: process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : 'https://bookish-disco-5997zvo.pages.github.io', + baseUrl: "/docs/", + baseUrlIssueBanner: true, + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + onDuplicateRoutes: "throw", + onBrokenAnchors: "throw", + favicon: "img/docs_favicon.ico", + organizationName: "ClickHouse", + trailingSlash: false, + i18n: { + defaultLocale: "en", + locales: ["en", "jp", "zh", "ru", "es"], + path: "i18n", + localeConfigs: { + en: { + label: "English", + htmlLang: "en", + path: "en", + }, + jp: { + label: "日本語", + htmlLang: "jp", + path: "jp", + }, + zh: { + label: "中文", + htmlLang: "zh", + path: "zh", + }, + ru: { + label: "Русский", + htmlLang: "ru", + path: "ru", + }, + es: { + label: "Español", + htmlLang: "es", + path: "es", + } + }, + }, + staticDirectories: ["static"], + projectName: "clickhouse-docs", + markdown: { + mermaid: true, + parseFrontMatter: async (params) => { + return await customParseFrontMatter(params); + } + }, + themes: ["@docusaurus/theme-mermaid"], + presets: [ + [ + "classic", + /** @type {import('@docusaurus/preset-classic').Options} */ + ({ + docs: { + admonitions: { + keywords: [ + "note", + "tip", + "info", + "caution", + "danger", + "experimental", + "obsolete", + "warning", + "success", + "important", + "secondary", + ], + }, + sidebarPath: require.resolve("./sidebars.js"), + // Implements a custom sidebar to override default behaviour where index.md page shows underneath the category name. + // With this sidebar the category name is clickable to show the index.md contents. + async sidebarItemsGenerator({ + defaultSidebarItemsGenerator, + ...args + }) { + const sidebarItems = await defaultSidebarItemsGenerator(args); + return skipIndex(sidebarItems); + }, + editCurrentVersion: true, + breadcrumbs: true, + editUrl: ({ docPath }) => { + if (docPath === "index.md") return false; + if ( + docPath.includes("development") || + docPath.includes("engines") || + docPath.includes("interfaces") || + docPath.includes("operations") || + docPath.includes("sql-reference") + ) { + return ( + "https://github.com/ClickHouse/ClickHouse/tree/master/docs/en/" + + docPath + ); + } else { + return ( + "https://github.com/ClickHouse/clickhouse-docs/blob/main/docs/" + + docPath + ); + } + }, + showLastUpdateTime: false, + sidebarCollapsed: true, + routeBasePath: "/", + remarkPlugins: [math, remarkCustomBlocks, glossaryTransformer], + beforeDefaultRemarkPlugins: [fixLinks], + rehypePlugins: [katex], + }, + blog: { + path: "knowledgebase", + blogTitle: "ClickHouse Knowledge Base", + blogDescription: "Knowledge Base", + blogSidebarTitle: "All KB articles", + routeBasePath: "/knowledgebase", + postsPerPage: 10, + blogSidebarCount: "ALL", + feedOptions: { + type: "all", + title: "ClickHouse Knowledge Base Feed", + description: + "Feed of articles posted to the ClickHouse Knowledge Base", + copyright: `Copyright © 2016–${new Date().getFullYear()} ClickHouse, Inc. ClickHouse Docs provided under the Creative Commons CC BY-NC-SA 4.0 license. ClickHouse® is a registered trademark of ClickHouse, Inc.`, + language: "en", + createFeedItems: async (params) => { + const { blogPosts, defaultCreateFeedItems, ...rest } = params; + return defaultCreateFeedItems({ + // keep only the 10 most recent blog posts in the feed + blogPosts: blogPosts.filter((item, index) => index < 10), + ...rest, + }); + }, + }, + editUrl: ({ blogPath }) => { + return ( + "https://github.com/ClickHouse/clickhouse-docs/blob/main/knowledgebase/" + + blogPath + ); + }, + }, + pages: { + + }, + theme: { + customCss: [require.resolve("./src/css/custom.scss")], + }, + googleTagManager: { + containerId: 'GTM-WTNTDT7W', + }, + }), + ], + ], + // Inserts tags into the + headTags: [ + { + // Ask AI component + tagName: "link", + attributes: { + href: "https://widget.kapa.ai", + rel: "preconnect", // preemptively initiate a connection to resource + }, + }, + { + // Google's CDN. Caches all 'static' files in a server near to you + // to reduce load times. + tagName: "link", + attributes: { + href: "https://www.gstatic.com", + rel: "preconnect", + crossorigin: "use-credentials", + }, + }, + { + tagName: "link", + attributes: { + href: "https://www.googletagmanager.com", + rel: "preconnect", + }, + }, + ], + themeConfig: + /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ + ({ + metadata: [ + {name: 'Accept-Language', content: 'en-US,en;q=0.9'}, + ], + algolia: { + appId: "5H9UG7CX5W", + apiKey: "4a7bf25cf3edbef29d78d5e1eecfdca5", + indexName: "clickhouse", + contextualSearch: false, + searchPagePath: "search", + }, + image: "img/docs_social_share.png", + icon: "/img/gareth.png", + docs: { + sidebar: { + autoCollapseCategories: true, + }, + }, + // autoCollapseSidebarCategories: true, + navbar: { + hideOnScroll: false, + logo: { + alt: "ClickHouse", + src: "img/ch_logo_docs.svg", + srcDark: "img/ch_logo_docs_dark.svg", + href: "https://clickhouse.com/", + }, + items: [], + }, + footer: { + style: "light", + links: [ + { + label: "Trademark", + to: "https://clickhouse.com/legal/trademark-policy", + }, + { + label: "Privacy", + to: "https://clickhouse.com/legal/privacy-policy", + }, + { + label: "Security", + to: "https://trust.clickhouse.com/", + }, + { + label: "Terms of Service", + to: "https://clickhouse.com/legal/agreements/terms-of-service", + }, + ], + copyright: `© 2016–${new Date().getFullYear()} ClickHouse, Inc.`, + }, + prism: { + theme: prismLight, + darkTheme: prismDark, + additionalLanguages: ["java", "cpp", "rust", "python", "javascript", "yaml", "bash", "docker", "csharp"], + magicComments: [ + // Remember to extend the default highlight class name as well! + { + className: "theme-code-block-highlighted-line", + line: "highlight-next-line", + block: { start: "highlight-start", end: "highlight-end" }, + }, + ], + }, + colorMode: { + disableSwitch: false, + respectPrefersColorScheme: true, + defaultMode: "dark", + }, + }), + + plugins: [ + "docusaurus-plugin-sass", + function (context, options) { + return { + name: "docusaurus-plugin", + async postBuild({ siteConfig = {}, routesPaths = [], outDir }) { + // Print out to console all the rendered routes. + routesPaths.map((route) => { + //console.log(route) + }); + }, + }; + }, + // [ + // N.B - If you need to redirect a page please do so from vercel.json + // '@docusaurus/plugin-client-redirects', + // { + // }, + // ], + [ + "vercel-analytics", + { + debug: false, + mode: "auto", + }, + ], + chHeader, + [ + '@docusaurus/plugin-ideal-image', + { + quality: 85, + sizes: [48, 300, 600, 1024, 2048], + disableInDev: false, + }, + ], + [ + frontmatterValidator, + { + failBuild: true + }, + ], + [ + checkFloatingPages, + { + failBuild: true, + exceptionsFile: path.resolve(__dirname, 'plugins/floating-pages-exceptions.txt') + }, + ], + [ + pluginLlmsTxt, + {} + ], + [ + './plugins/tailwind-config.js', + {} + ] + ], + customFields: { + blogSidebarLink: "/docs/knowledgebase", // Used for KB article page + galaxyApiEndpoint: + process.env.NEXT_PUBLIC_GALAXY_API_ENDPOINT || "http://localhost:3000", + }, + +}; + +module.exports = config; diff --git a/docusaurus.config.jp.js b/docusaurus.config.jp.js index 742e74a0c91..6d7ba743ac4 100644 --- a/docusaurus.config.jp.js +++ b/docusaurus.config.jp.js @@ -54,7 +54,7 @@ const config = { trailingSlash: false, i18n: { defaultLocale: "jp", - locales: ["en", "jp", "zh", "ru"], + locales: ["en", "jp", "zh", "ru", "es"], path: "i18n", localeConfigs: { en: { @@ -76,6 +76,11 @@ const config = { label: "Русский", htmlLang: "ru", path: "ru", + }, + es: { + label: "Español", + htmlLang: "es", + path: "es", } }, }, diff --git a/docusaurus.config.js b/docusaurus.config.js index 5b0f5873cd2..763e072d930 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -2,6 +2,7 @@ import enConfig from "./docusaurus.config.en.js"; import jpConfig from "./docusaurus.config.jp.js"; import zhConfig from "./docusaurus.config.zh.js"; import ruConfig from "./docusaurus.config.ru.js"; +import esConfig from "./docusaurus.config.es.js"; const env = process.env.DOCUSUARUS_LOCALE || "en"; // Default to "en" @@ -9,7 +10,8 @@ const configMap = { en: enConfig, jp: jpConfig, zh: zhConfig, - ru: ruConfig + ru: ruConfig, + es: esConfig }; // Export the selected config, defaulting to English if the environment variable is invalid diff --git a/docusaurus.config.ru.js b/docusaurus.config.ru.js index 2369b02c088..e563fa5b4ea 100644 --- a/docusaurus.config.ru.js +++ b/docusaurus.config.ru.js @@ -54,7 +54,7 @@ const config = { trailingSlash: false, i18n: { defaultLocale: "ru", - locales: ["ru", "en", "jp", "zh"], + locales: ["ru", "en", "jp", "zh", "es"], path: "i18n", localeConfigs: { en: { @@ -76,6 +76,11 @@ const config = { label: "Русский", htmlLang: "ru", path: "ru", + }, + es: { + label: "Español", + htmlLang: "es", + path: "es", } }, }, diff --git a/docusaurus.config.zh.js b/docusaurus.config.zh.js index ecff04ba03a..183f18be25c 100644 --- a/docusaurus.config.zh.js +++ b/docusaurus.config.zh.js @@ -54,7 +54,7 @@ const config = { trailingSlash: false, i18n: { defaultLocale: "zh", - locales: ["en", "jp", "zh", "ru"], + locales: ["en", "jp", "zh", "ru", "es"], path: "i18n", localeConfigs: { en: { @@ -76,6 +76,11 @@ const config = { label: "Русский", htmlLang: "ru", path: "ru", + }, + es: { + label: "Español", + htmlLang: "es", + path: "es", } }, }, diff --git a/i18n/es/code.json b/i18n/es/code.json new file mode 100644 index 00000000000..f5f505c1bc6 --- /dev/null +++ b/i18n/es/code.json @@ -0,0 +1,635 @@ +{ + "theme.NotFound.title": { + "message": "Page Not Found", + "description": "The title of the 404 page" + }, + "topNav.navItems.Products": { + "message": "Products" + }, + "topNav.navItems.Use cases": { + "message": "Use cases" + }, + "topNav.navItems.Docs": { + "message": "Docs" + }, + "topNav.navItems.Resources": { + "message": "Resources" + }, + "topNav.navItems.Pricing": { + "message": "Pricing" + }, + "topNav.navItems.Contact us": { + "message": "Contact us" + }, + "theme.admonition.note": { + "message": "Note", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "Tip", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.danger": { + "message": "Danger", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "Info", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.caution": { + "message": "Caution", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.admonition.experimental": { + "message": "EXPERIMENTAL", + "description": "The default label used for the Experimental admonition (:::experimental)" + }, + "theme.admonition.obsolete": { + "message": "OBSOLETE", + "description": "The default label used for the Obsolete admonition (:::obsolete)" + }, + "theme.blog.title": { + "message": "Knowledge Base" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription": { + "message": "{count} items", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versions", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.SearchBar.seeAll": { + "message": "See all {count} results" + }, + "theme.SearchPage.documentsFound.plurals": { + "message": "One document found|{count} documents found", + "description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.SearchPage.existingResultsTitle": { + "message": "Search results for \"{query}\"", + "description": "The search page title for non-empty query" + }, + "theme.SearchPage.emptyResultsTitle": { + "message": "Search the documentation", + "description": "The search page title for empty query" + }, + "theme.SearchPage.inputPlaceholder": { + "message": "Type your search here", + "description": "The placeholder for search page input" + }, + "theme.SearchPage.inputLabel": { + "message": "Search", + "description": "The ARIA label for search page input" + }, + "theme.SearchPage.algoliaLabel": { + "message": "Search by Algolia", + "description": "The ARIA label for Algolia mention" + }, + "theme.SearchPage.noResultsText": { + "message": "No results were found", + "description": "The paragraph for empty search result" + }, + "theme.SearchPage.fetchingNewResults": { + "message": "Fetching new results...", + "description": "The paragraph for fetching new search results" + }, + "topNav.navItems.products.clickhouse_cloud_1": { + "message": "The best way to use ClickHouse." + }, + "topNav.navItems.products.clickhouse_cloud_2": { + "message": "Available on AWS, GCP, and Azure." + }, + "topNav.navItems.products.byoc_1": { + "message": "Bring Your Own Cloud" + }, + "topNav.navItems.products.byoc_2": { + "message": "A fully managed ClickHouse Cloud service," + }, + "topNav.navItems.products.byoc_3": { + "message": "deployed in your own AWS account." + }, + "topNav.navItems.products.oss": { + "message": "Spin up a database with open-source" + }, + "topNav.navItems.products.oss_2": { + "message": "ClickHouse" + }, + "topNav.navItems.products.integrations": { + "message": "View 100+ integrations" + }, + "topNav.navItems.resources.User stories": { + "message": "User stories" + }, + "topNav.navItems.resources.Blog": { + "message": "Blog" + }, + "topNav.navItems.resources.Learning and Certification": { + "message": "Learning and Certification" + }, + "topNav.navItems.resources.ClickHouse Academy": { + "message": "ClickHouse Academy" + }, + "topNav.navItems.resources.Free live training": { + "message": "Free live training" + }, + "topNav.navItems.resources.ClickHouse Certification": { + "message": "ClickHouse Certification" + }, + "topNav.navItems.resources.Comparisons": { + "message": "Comparisons" + }, + "topNav.navItems.resources.BigQuery": { + "message": "BigQuery" + }, + "topNav.navItems.resources.PostgreSQL": { + "message": "PostgreSQL" + }, + "topNav.navItems.resources.Redshift": { + "message": "Redshift" + }, + "topNav.navItems.resources.Rockset": { + "message": "Rockset" + }, + "topNav.navItems.resources.Snowflake": { + "message": "Snowflake" + }, + "topNav.navItems.resources.Videos": { + "message": "Videos" + }, + "topNav.navItems.resources.Demos": { + "message": "Demos" + }, + "topNav.navItems.use_cases.Real-time analytics": { + "message": "Real-time analytics" + }, + "topNav.navItems.use_cases.Machine learning and GenAI": { + "message": "Machine learning and GenAI" + }, + "topNav.navItems.use_cases.Business intelligence": { + "message": "Business intelligence" + }, + "topNav.navItems.use_cases.Logs, events, and traces": { + "message": "Logs, events, and traces" + }, + "topNav.navItems.use_cases.All use cases": { + "message": "All use cases" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Blog recent posts navigation", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": { + "message": "Toggle the collapsible sidebar category '{label}'", + "description": "The ARIA label to toggle the collapsible sidebar category" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main", + "description": "The ARIA label for the main navigation" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Languages", + "description": "The label for the mobile language switcher dropdown" + }, + "This documentation is translated with the help of AI": { + "message": "This documentation is translated with the help of AI" + }, + "Spotted a translation issue? Help us to improve it by reporting translation issues.": { + "message": "Spotted a translation issue? Help us to improve it by reporting translation issues." + }, + "Report an issue": { + "message": "Report an issue" + }, + "theme.blog.post.readMore": { + "message": "Read more", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "Read more about {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readingTime.plurals": { + "message": "One min read|{readingTime} min read", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.breadcrumbs.home": { + "message": "Home page", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close navigation bar", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Back to main menu", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.ErrorPageContent.title": { + "message": "This page crashed.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Scroll back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "Archive", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archive", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Blog list page navigation", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Newer entries", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Older entries", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Blog post page navigation", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Newer post", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Older post", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.tags.tagsPageLink": { + "message": "View all tags", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode (currently {mode})", + "description": "The ARIA label for the navbar color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "dark mode", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "light mode", + "description": "The name for the light color mode" + }, + "theme.docs.DocCard.categoryDescription.plurals": { + "message": "1 item|{count} items", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs pages", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Anterior", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Siguiente", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "One doc tagged|{count} docs tagged", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} with \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Version: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "This is unreleased documentation for {siteTitle} {versionLabel} version.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "latest version", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Direct link to {heading}", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " on {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " by {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Last updated{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.tags.tagsListLabel": { + "message": "Tags:", + "description": "The label alongside a tag list" + }, + "theme.admonition.warning": { + "message": "warning", + "description": "The default label used for the Warning admonition (:::warning)" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "Toggle word wrap", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.expandCategoryAriaLabel": { + "message": "Expand sidebar category '{label}'", + "description": "The ARIA label to expand the sidebar category" + }, + "theme.DocSidebarItem.collapseCategoryAriaLabel": { + "message": "Collapse sidebar category '{label}'", + "description": "The ARIA label to collapse the sidebar category" + }, + "theme.NotFound.p1": { + "message": "We could not find what you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Please contact the owner of the site that linked you to the original URL and let them know their link is broken.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Toggle navigation bar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.SearchBar.label": { + "message": "Search", + "description": "The ARIA label and placeholder for search button" + }, + "theme.SearchModal.searchBox.resetButtonTitle": { + "message": "Clear the query", + "description": "The label and ARIA label for search box reset button" + }, + "theme.SearchModal.searchBox.cancelButtonText": { + "message": "Cancel", + "description": "The label and ARIA label for search box cancel button" + }, + "theme.SearchModal.startScreen.recentSearchesTitle": { + "message": "Recent", + "description": "The title for recent searches" + }, + "theme.SearchModal.startScreen.noRecentSearchesText": { + "message": "No recent searches", + "description": "The text when no recent searches" + }, + "theme.SearchModal.startScreen.saveRecentSearchButtonTitle": { + "message": "Save this search", + "description": "The label for save recent search button" + }, + "theme.SearchModal.startScreen.removeRecentSearchButtonTitle": { + "message": "Remove this search from history", + "description": "The label for remove recent search button" + }, + "theme.SearchModal.startScreen.favoriteSearchesTitle": { + "message": "Favorite", + "description": "The title for favorite searches" + }, + "theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": { + "message": "Remove this search from favorites", + "description": "The label for remove favorite search button" + }, + "theme.SearchModal.errorScreen.titleText": { + "message": "Unable to fetch results", + "description": "The title for error screen of search modal" + }, + "theme.SearchModal.errorScreen.helpText": { + "message": "You might want to check your network connection.", + "description": "The help text for error screen of search modal" + }, + "theme.SearchModal.footer.selectText": { + "message": "to select", + "description": "The explanatory text of the action for the enter key" + }, + "theme.SearchModal.footer.selectKeyAriaLabel": { + "message": "Enter key", + "description": "The ARIA label for the Enter key button that makes the selection" + }, + "theme.SearchModal.footer.navigateText": { + "message": "to navigate", + "description": "The explanatory text of the action for the Arrow up and Arrow down key" + }, + "theme.SearchModal.footer.navigateUpKeyAriaLabel": { + "message": "Arrow up", + "description": "The ARIA label for the Arrow up key button that makes the navigation" + }, + "theme.SearchModal.footer.navigateDownKeyAriaLabel": { + "message": "Arrow down", + "description": "The ARIA label for the Arrow down key button that makes the navigation" + }, + "theme.SearchModal.footer.closeText": { + "message": "to close", + "description": "The explanatory text of the action for Escape key" + }, + "theme.SearchModal.footer.closeKeyAriaLabel": { + "message": "Escape key", + "description": "The ARIA label for the Escape key button that close the modal" + }, + "theme.SearchModal.footer.searchByText": { + "message": "Search by", + "description": "The text explain that the search is making by Algolia" + }, + "theme.SearchModal.noResultsScreen.noResultsText": { + "message": "No results for", + "description": "The text explains that there are no results for the following search" + }, + "theme.SearchModal.noResultsScreen.suggestedQueryText": { + "message": "Try searching for", + "description": "The text for the suggested query when no results are found for the following search" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsText": { + "message": "Believe this query should return results?", + "description": "The text for the question where the user thinks there are missing results" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": { + "message": "Let us know.", + "description": "The text for the link to report missing results" + }, + "theme.SearchModal.placeholder": { + "message": "Search docs", + "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.blog.post.plurals": { + "message": "One post|{count} posts", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} tagged with \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.blog.author.pageTitle": { + "message": "{authorName} - {nPosts}", + "description": "The title of the page for a blog author" + }, + "theme.blog.authorsList.pageTitle": { + "message": "Authors", + "description": "The title of the authors page" + }, + "theme.blog.authorsList.viewAll": { + "message": "View all authors", + "description": "The label of the link targeting the blog authors page" + }, + "theme.blog.author.noPosts": { + "message": "This author has not written any posts yet.", + "description": "The text for authors with 0 blog post" + }, + "theme.contentVisibility.unlistedBanner.title": { + "message": "Unlisted page", + "description": "The unlisted content banner title" + }, + "theme.contentVisibility.unlistedBanner.message": { + "message": "This page is unlisted. Search engines will not index it, and only users having a direct link can access it.", + "description": "The unlisted content banner message" + }, + "theme.contentVisibility.draftBanner.title": { + "message": "Draft page", + "description": "The draft content banner title" + }, + "theme.contentVisibility.draftBanner.message": { + "message": "This page is a draft. It will only be visible in dev and be excluded from the production build.", + "description": "The draft content banner message" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Try again", + "description": "The label of the button to try again rendering when the React error boundary captures an error" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "Tags", + "description": "The title of the tag list page" + }, + "sidebar.dropdownCategories.category.Get Started": { + "message": "Primeros pasos", + "description": "The label for the 'Get Started' category in the sidebar" + }, + "sidebar.dropdownCategories.category.description.Get Started": { + "message": "Aprende a usar ClickHouse.", + "description": "A short description of what users will learn in the 'Get Started' category" + }, + "sidebar.dropdownCategories.category.Get Started.Introduction": { + "message": "Introducción", + "description": "The label for the 'Introduction' page under the 'Get Started' category" + }, + "sidebar.dropdownCategories.category.Get Started.Introduction.description": { + "message": "Una introducción a ClickHouse.", + "description": "A short description of the 'Introduction' page content" + }, + "sidebar.dropdownCategories.category.Get Started.Concepts": { + "message": "Conceptos", + "description": "The label for the 'Concepts' page under the 'Get Started' category" + }, + "sidebar.dropdownCategories.category.Get Started.Concepts.description": { + "message": "Conceptos fundamentales que debes conocer", + "description": "A short description of the 'Concepts' page content" + }, + "sidebar.dropdownCategories.category.Get Started.Starter Guides": { + "message": "Guías de inicio", + "description": "The label for the 'Starter Guides' page under the 'Get Started' category" + }, + "sidebar.dropdownCategories.category.Get Started.Starter Guides.description": { + "message": "Comienza aquí tu aprendizaje de ClickHouse", + "description": "A short description of the 'Starter Guides' page content" + }, + "sidebar.dropdownCategories.category.Get Started.Best Practices": { + "message": "Mejores prácticas", + "description": "The label for the 'Best Practices' page under the 'Get Started' category" + }, + "sidebar.dropdownCategories.category.Get Started.Best Practices.description": { + "message": "Sigue las mejores prácticas con ClickHouse", + "description": "A short description of the 'Best Practices' page content" + }, + "sidebar.dropdownCategories.category.Get Started.Migration Guides": { + "message": "Guías de migración", + "description": "The label for the 'Migration Guides' page under the 'Get Started' category" + }, + "sidebar.dropdownCategories.category.Get Started.Migration Guides.description": { + "message": "Migra tu base de datos a ClickHouse", + "description": "A short description of the 'Migration Guides' page content" + }, + "sidebar.dropdownCategories.category.Get Started.Use Case Guides": { + "message": "Guías de casos de uso", + "description": "The label for the 'Use Case Guides' page under the 'Get Started' category" + }, + "sidebar.dropdownCategories.category.Get Started.Use Case Guides.description": { + "message": "Guías de casos de uso comunes para ClickHouse", + "description": "A short description of the 'Use Case Guides' page content" + }, + "sidebar.dropdownCategories.category.Get Started.Example datasets": { + "message": "Fuentes de datos", + "description": "The label for the 'Example datasets' page under the 'Get Started' category" + }, + "sidebar.dropdownCategories.category.Get Started.Example datasets.description": { + "message": "Fuentes de datos y tutoriales útiles", + "description": "A short description of the 'Example datasets' page content" + } +} diff --git a/i18n/es/docusaurus-plugin-content-blog/options.json b/i18n/es/docusaurus-plugin-content-blog/options.json new file mode 100644 index 00000000000..490b22b5c95 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-blog/options.json @@ -0,0 +1,14 @@ +{ + "title": { + "message": "ClickHouse Knowledge Base", + "description": "The title for the blog used in SEO" + }, + "description": { + "message": "Knowledge Base", + "description": "The description for the blog used in SEO" + }, + "sidebar.title": { + "message": "All KB articles", + "description": "The label for the left sidebar" + } +} diff --git a/i18n/es/docusaurus-plugin-content-docs/current.json b/i18n/es/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000000..54b010b9ade --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,742 @@ +{ + "version.label": { + "message": "Siguiente", + "description": "The label for version current" + }, + "sidebar.docs.category.Introduction": { + "message": "Introducción", + "description": "The label for category Introduction in sidebar docs" + }, + "sidebar.docs.category.Quick start": { + "message": "Primeros pasos", + "description": "The label for category Quick start in sidebar docs" + }, + "sidebar.docs.category.Install": { + "message": "Instalación", + "description": "The label for category Install in sidebar docs" + }, + "sidebar.docs.category.Concepts": { + "message": "Conceptos", + "description": "The label for category Concepts in sidebar docs" + }, + "sidebar.docs.category.FAQ": { + "message": "FAQ", + "description": "The label for category FAQ in sidebar docs" + }, + "sidebar.docs.category.Starter Guides": { + "message": "Guías de inicio", + "description": "The label for category Starter Guides in sidebar docs" + }, + "sidebar.docs.category.Use Case Guides": { + "message": "Guías de casos de uso", + "description": "The label for category Use Case Guides in sidebar docs" + }, + "sidebar.docs.category.Observability": { + "message": "Observabilidad", + "description": "The label for category Observability in sidebar docs" + }, + "sidebar.docs.category.Migration Guides": { + "message": "Guías de migración", + "description": "The label for category Migration Guides in sidebar docs" + }, + "sidebar.docs.category.BigQuery": { + "message": "BigQuery", + "description": "The label for category BigQuery in sidebar docs" + }, + "sidebar.docs.category.PostgreSQL": { + "message": "PostgreSQL", + "description": "The label for category PostgreSQL in sidebar docs" + }, + "sidebar.docs.category.Example Datasets": { + "message": "Fuentes de datos", + "description": "The label for category Example Datasets in sidebar docs" + }, + "sidebar.docs.doc.Introduction": { + "message": "Introducción", + "description": "The label for the doc item Introduction in sidebar docs, linking to the doc migrations/postgres/overview" + }, + "sidebar.docs.doc.Rockset": { + "message": "Rockset", + "description": "The label for the doc item Rockset in sidebar docs, linking to the doc integrations/migration/rockset" + }, + "sidebar.cloud.category.Get Started": { + "message": "Primeros pasos", + "description": "The label for category Get Started in sidebar cloud" + }, + "sidebar.cloud.category.Managing Cloud": { + "message": "Administración de ClickHouse Cloud", + "description": "The label for category Managing Cloud in sidebar cloud" + }, + "sidebar.cloud.category.Backups": { + "message": "Copias de seguridad", + "description": "The label for category Backups in sidebar cloud" + }, + "sidebar.cloud.category.Monitoring": { + "message": "Monitoreo", + "description": "The label for category Monitoring in sidebar cloud" + }, + "sidebar.cloud.category.Billing": { + "message": "Facturación", + "description": "The label for category Billing in sidebar cloud" + }, + "sidebar.cloud.category.Marketplace": { + "message": "Marketplace", + "description": "The label for category Marketplace in sidebar cloud" + }, + "sidebar.cloud.category.Jan 2025 Changes FAQ": { + "message": "Jan 2025 Changes FAQ", + "description": "The label for category Jan 2025 Changes FAQ in sidebar cloud" + }, + "sidebar.cloud.category.Cloud API": { + "message": "Cloud API", + "description": "The label for category Cloud API in sidebar cloud" + }, + "sidebar.cloud.category.API Reference": { + "message": "Referencia de la API", + "description": "The label for category API Reference in sidebar cloud" + }, + "sidebar.cloud.category.Cloud Reference ": { + "message": "Referencia de ClickHouse Cloud", + "description": "The label for category Cloud Reference in sidebar cloud" + }, + "sidebar.cloud.category.Changelogs": { + "message": "Historial de cambios", + "description": "The label for category Changelogs in sidebar cloud" + }, + "sidebar.cloud.category.Release Notes": { + "message": "Notas de la versión", + "description": "The label for category Release Notes in sidebar cloud" + }, + "sidebar.cloud.category.Best Practices": { + "message": "Mejores prácticas", + "description": "The label for category Best Practices in sidebar cloud" + }, + "sidebar.cloud.category.Security": { + "message": "Seguridad", + "description": "The label for category Security in sidebar cloud" + }, + "sidebar.cloud.category.Cloud Access Management": { + "message": "Gestión de acceso en la nube", + "description": "The label for category Cloud Access Management in sidebar cloud" + }, + "sidebar.cloud.category.Connectivity": { + "message": "Conectividad", + "description": "The label for category Connectivity in sidebar cloud" + }, + "sidebar.cloud.category.Private Networking": { + "message": "Redes privadas", + "description": "The label for category Private Networking in sidebar cloud" + }, + "sidebar.cloud.category.Privacy and Compliance": { + "message": "Privacidad y cumplimiento", + "description": "The label for category Privacy and Compliance in sidebar cloud" + }, + "sidebar.cloud.category.Migrating to Cloud": { + "message": "Migración a la nube", + "description": "The label for category Migrating to Cloud in sidebar cloud" + }, + "sidebar.cloud.link.Rockset": { + "message": "Rockset", + "description": "The label for link Rockset in sidebar cloud, linking to /migrations/rockset" + }, + "sidebar.sqlreference.category.Introduction": { + "message": "Introducción", + "description": "The label for category Introduction in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Data Types": { + "message": "Data Types", + "description": "The label for category Data Types in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Special Data Types": { + "message": "Special Data Types", + "description": "The label for category Special Data Types in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Statements": { + "message": "Statements", + "description": "The label for category Statements in sidebar sqlreference" + }, + "sidebar.sqlreference.category.SELECT": { + "message": "SELECT", + "description": "The label for category SELECT in sidebar sqlreference" + }, + "sidebar.sqlreference.category.CREATE": { + "message": "CREATE", + "description": "The label for category CREATE in sidebar sqlreference" + }, + "sidebar.sqlreference.category.ALTER": { + "message": "ALTER", + "description": "The label for category ALTER in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Engines": { + "message": "Engines", + "description": "The label for category Engines in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Database Engines": { + "message": "Database Engines", + "description": "The label for category Database Engines in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Table Engines": { + "message": "Table Engines", + "description": "The label for category Table Engines in sidebar sqlreference" + }, + "sidebar.sqlreference.category.MergeTree Family": { + "message": "MergeTree Family", + "description": "The label for category MergeTree Family in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Log Family": { + "message": "Log Family", + "description": "The label for category Log Family in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Integrations": { + "message": "Integrations", + "description": "The label for category Integrations in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Special": { + "message": "Special", + "description": "The label for category Special in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Functions": { + "message": "Functions", + "description": "The label for category Functions in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Regular Functions": { + "message": "Regular Functions", + "description": "The label for category Regular Functions in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Geo": { + "message": "Geo", + "description": "The label for category Geo in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Aggregate Functions": { + "message": "Aggregate Functions", + "description": "The label for category Aggregate Functions in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Table Functions": { + "message": "Table Functions", + "description": "The label for category Table Functions in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Window Functions": { + "message": "Window Functions", + "description": "The label for category Window Functions in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Other Features": { + "message": "Other Features", + "description": "The label for category Other Features in sidebar sqlreference" + }, + "sidebar.sqlreference.category.Operators": { + "message": "Operators", + "description": "The label for category Operators in sidebar sqlreference" + }, + "sidebar.integrations.category.Language Clients": { + "message": "Language Clients", + "description": "The label for category Language Clients in sidebar integrations" + }, + "sidebar.integrations.category.Java": { + "message": "Java", + "description": "The label for category Java in sidebar integrations" + }, + "sidebar.integrations.category.Third-party Clients": { + "message": "Third-party Clients", + "description": "The label for category Third-party Clients in sidebar integrations" + }, + "sidebar.integrations.category.ClickPipes": { + "message": "ClickPipes", + "description": "The label for category ClickPipes in sidebar integrations" + }, + "sidebar.integrations.category.ClickPipes for Postgres": { + "message": "ClickPipes for Postgres", + "description": "The label for category ClickPipes for Postgres in sidebar integrations" + }, + "sidebar.integrations.category.Source": { + "message": "Source", + "description": "The label for category Source in sidebar integrations" + }, + "sidebar.integrations.category.Native Clients & Interfaces": { + "message": "Native Clients & Interfaces", + "description": "The label for category Native Clients & Interfaces in sidebar integrations" + }, + "sidebar.integrations.category.Drivers and Interfaces": { + "message": "Drivers and Interfaces", + "description": "The label for category Drivers and Interfaces in sidebar integrations" + }, + "sidebar.integrations.category.Data Sources": { + "message": "Data Sources", + "description": "The label for category Data Sources in sidebar integrations" + }, + "sidebar.integrations.category.AWS S3": { + "message": "AWS S3", + "description": "The label for category AWS S3 in sidebar integrations" + }, + "sidebar.integrations.category.Kafka": { + "message": "Kafka", + "description": "The label for category Kafka in sidebar integrations" + }, + "sidebar.integrations.category.Apache Spark": { + "message": "Apache Spark", + "description": "The label for category Apache Spark in sidebar integrations" + }, + "sidebar.integrations.category.Data Visualization": { + "message": "Data Visualization", + "description": "The label for category Data Visualization in sidebar integrations" + }, + "sidebar.integrations.category.Grafana": { + "message": "Grafana", + "description": "The label for category Grafana in sidebar integrations" + }, + "sidebar.integrations.category.Tableau": { + "message": "Tableau", + "description": "The label for category Tableau in sidebar integrations" + }, + "sidebar.integrations.category.Data Formats": { + "message": "Data Formats", + "description": "The label for category Data Formats in sidebar integrations" + }, + "sidebar.integrations.category.JSON": { + "message": "JSON", + "description": "The label for category JSON in sidebar integrations" + }, + "sidebar.integrations.category.View All Formats": { + "message": "View All Formats", + "description": "The label for category View All Formats in sidebar integrations" + }, + "sidebar.integrations.category.Arrow": { + "message": "Arrow", + "description": "The label for category Arrow in sidebar integrations" + }, + "sidebar.integrations.category.Avro": { + "message": "Avro", + "description": "The label for category Avro in sidebar integrations" + }, + "sidebar.integrations.category.CSV": { + "message": "CSV", + "description": "The label for category CSV in sidebar integrations" + }, + "sidebar.integrations.category.CustomSeparated": { + "message": "CustomSeparated", + "description": "The label for category CustomSeparated in sidebar integrations" + }, + "sidebar.integrations.category.LineAsString": { + "message": "LineAsString", + "description": "The label for category LineAsString in sidebar integrations" + }, + "sidebar.integrations.category.Parquet": { + "message": "Parquet", + "description": "The label for category Parquet in sidebar integrations" + }, + "sidebar.integrations.category.Pretty": { + "message": "Pretty", + "description": "The label for category Pretty in sidebar integrations" + }, + "sidebar.integrations.category.Protobuf": { + "message": "Protobuf", + "description": "The label for category Protobuf in sidebar integrations" + }, + "sidebar.integrations.category.RowBinary": { + "message": "RowBinary", + "description": "The label for category RowBinary in sidebar integrations" + }, + "sidebar.integrations.category.TabSeparated": { + "message": "TabSeparated", + "description": "The label for category TabSeparated in sidebar integrations" + }, + "sidebar.integrations.category.Template": { + "message": "Template", + "description": "The label for category Template in sidebar integrations" + }, + "sidebar.integrations.category.Data Ingestion": { + "message": "Data Ingestion", + "description": "The label for category Data Ingestion in sidebar integrations" + }, + "sidebar.integrations.category.Google Dataflow": { + "message": "Google Dataflow", + "description": "The label for category Google Dataflow in sidebar integrations" + }, + "sidebar.integrations.category.Dataflow Templates": { + "message": "Dataflow Templates", + "description": "The label for category Dataflow Templates in sidebar integrations" + }, + "sidebar.integrations.category.Tools": { + "message": "Tools", + "description": "The label for category Tools in sidebar integrations" + }, + "sidebar.integrations.category.SQL Clients": { + "message": "SQL Clients", + "description": "The label for category SQL Clients in sidebar integrations" + }, + "sidebar.integrations.category.Data Integrations": { + "message": "Data Integrations", + "description": "The label for category Data Integrations in sidebar integrations" + }, + "sidebar.integrations.category.Misc": { + "message": "Misc", + "description": "The label for category Misc in sidebar integrations" + }, + "sidebar.integrations.doc.Overview": { + "message": "Overview", + "description": "The label for the doc item Overview in sidebar integrations, linking to the doc integrations/language-clients/java/index" + }, + "sidebar.integrations.doc.Third-party Libraries": { + "message": "Third-party Libraries", + "description": "The label for the doc item Third-party Libraries in sidebar integrations, linking to the doc interfaces/third-party/integrations" + }, + "sidebar.managingData.category.Core Concepts": { + "message": "Core Concepts", + "description": "The label for category Core Concepts in sidebar managingData" + }, + "sidebar.managingData.category.Updating Data": { + "message": "Updating Data", + "description": "The label for category Updating Data in sidebar managingData" + }, + "sidebar.managingData.category.Deleting Data": { + "message": "Deleting Data", + "description": "The label for category Deleting Data in sidebar managingData" + }, + "sidebar.managingData.category.Data Modeling": { + "message": "Data Modeling", + "description": "The label for category Data Modeling in sidebar managingData" + }, + "sidebar.managingData.category.Dictionary": { + "message": "Dictionary", + "description": "The label for category Dictionary in sidebar managingData" + }, + "sidebar.managingData.category.Materialized Views": { + "message": "Materialized Views", + "description": "The label for category Materialized Views in sidebar managingData" + }, + "sidebar.managingData.category.Data Compression": { + "message": "Data Compression", + "description": "The label for category Data Compression in sidebar managingData" + }, + "sidebar.managingData.category.Advanced Guides": { + "message": "Advanced Guides", + "description": "The label for category Advanced Guides in sidebar managingData" + }, + "sidebar.managingData.category.Performance and Optimizations": { + "message": "Performance and Optimizations", + "description": "The label for category Performance and Optimizations in sidebar managingData" + }, + "sidebar.managingData.doc.Lightweight Updates": { + "message": "Lightweight Updates", + "description": "The label for the doc item Lightweight Updates in sidebar managingData, linking to the doc guides/developer/lightweight-update" + }, + "sidebar.managingData.doc.ReplacingMergeTree": { + "message": "ReplacingMergeTree", + "description": "The label for the doc item ReplacingMergeTree in sidebar managingData, linking to the doc migrations/postgres/replacing-merge-tree" + }, + "sidebar.managingData.doc.Lightweight Deletes": { + "message": "Lightweight Deletes", + "description": "The label for the doc item Lightweight Deletes in sidebar managingData, linking to the doc guides/developer/lightweight-delete" + }, + "sidebar.aboutClickHouse.category.About ClickHouse": { + "message": "About ClickHouse", + "description": "The label for category About ClickHouse in sidebar aboutClickHouse" + }, + "sidebar.aboutClickHouse.category.Changelogs": { + "message": "Changelogs", + "description": "The label for category Changelogs in sidebar aboutClickHouse" + }, + "sidebar.aboutClickHouse.category.Changelog": { + "message": "Changelog", + "description": "The label for category Changelog in sidebar aboutClickHouse" + }, + "sidebar.aboutClickHouse.category.Changelog.link.generated-index.title": { + "message": "Changelog", + "description": "The generated-index page title for category Changelog in sidebar aboutClickHouse" + }, + "sidebar.aboutClickHouse.category.Development and Contributing": { + "message": "Development and Contributing", + "description": "The label for category Development and Contributing in sidebar aboutClickHouse" + }, + "sidebar.aboutClickHouse.category.Native Protocol": { + "message": "Native Protocol", + "description": "The label for category Native Protocol in sidebar aboutClickHouse" + }, + "sidebar.aboutClickHouse.category.FAQ": { + "message": "FAQ", + "description": "The label for category FAQ in sidebar aboutClickHouse" + }, + "sidebar.serverAdmin.category.Manage and Deploy": { + "message": "Manage and Deploy", + "description": "The label for category Manage and Deploy in sidebar serverAdmin" + }, + "sidebar.serverAdmin.category.Deployment and Scaling": { + "message": "Deployment and Scaling", + "description": "The label for category Deployment and Scaling in sidebar serverAdmin" + }, + "sidebar.serverAdmin.category.Settings": { + "message": "Settings", + "description": "The label for category Settings in sidebar serverAdmin" + }, + "sidebar.serverAdmin.category.System Tables": { + "message": "System Tables", + "description": "The label for category System Tables in sidebar serverAdmin" + }, + "sidebar.serverAdmin.category.Security and Authentication": { + "message": "Security and Authentication", + "description": "The label for category Security and Authentication in sidebar serverAdmin" + }, + "sidebar.serverAdmin.category.External Authenticators": { + "message": "External Authenticators", + "description": "The label for category External Authenticators in sidebar serverAdmin" + }, + "sidebar.serverAdmin.category.SSL": { + "message": "SSL", + "description": "The label for category SSL in sidebar serverAdmin" + }, + "sidebar.serverAdmin.category.LDAP": { + "message": "LDAP", + "description": "The label for category LDAP in sidebar serverAdmin" + }, + "sidebar.serverAdmin.category.Tools and Utilities": { + "message": "Tools and Utilities", + "description": "The label for category Tools and Utilities in sidebar serverAdmin" + }, + "sidebar.chdb.category.chDB": { + "message": "chDB", + "description": "The label for category chDB in sidebar chdb" + }, + "sidebar.chdb.category.Language Integrations": { + "message": "Language Integrations", + "description": "The label for category Language Integrations in sidebar chdb" + }, + "sidebar.chdb.category.Developer Guides": { + "message": "Developer Guides", + "description": "The label for category Developer Guides in sidebar chdb" + }, + "sidebar.chdb.category.Technical Reference": { + "message": "Technical Reference", + "description": "The label for category Technical Reference in sidebar chdb" + }, + "sidebar.chdb.category.Integrations": { + "message": "Integrations", + "description": "The label for category Integrations in sidebar chdb" + }, + "sidebar.chdb.category.About chDB": { + "message": "About chDB", + "description": "The label for category About chDB in sidebar chdb" + }, + "sidebar.chdb.link.JupySQL": { + "message": "JupySQL", + "description": "The label for link JupySQL in sidebar chdb, linking to https://jupysql.ploomber.io/en/latest/integrations/chdb.html" + }, + "sidebar.chdb.link.chdb-lambda": { + "message": "chdb-lambda", + "description": "The label for link chdb-lambda in sidebar chdb, linking to https://github.com/chdb-io/chdb-lambda" + }, + "sidebar.chdb.link.chdb-cli": { + "message": "chdb-cli", + "description": "The label for link chdb-cli in sidebar chdb, linking to https://github.com/chdb-io/chdb-go?tab=readme-ov-file#chdb-go-cli" + }, + "sidebar.chdb.link.Discord": { + "message": "Discord", + "description": "The label for link Discord in sidebar chdb, linking to https://discord.gg/Njw5YXSPPc" + }, + "sidebar.chdb.link.Birth of chDB": { + "message": "Birth of chDB", + "description": "The label for link Birth of chDB in sidebar chdb, linking to https://auxten.com/the-birth-of-chdb/" + }, + "sidebar.chdb.link.Joining ClickHouse, Inc.": { + "message": "Joining ClickHouse, Inc.", + "description": "The label for link Joining ClickHouse, Inc. in sidebar chdb, linking to https://clickhouse.com/blog/welcome-chdb-to-clickhouse" + }, + "sidebar.chdb.link.Team and Contributors": { + "message": "Team and Contributors", + "description": "The label for link Team and Contributors in sidebar chdb, linking to https://github.com/chdb-io/chdb#contributors" + }, + "sidebar.dropdownCategories.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category Getting Started in sidebar dropdownCategories" + }, + "sidebar.dropdownCategories.category.Cloud": { + "message": "Cloud", + "description": "The label for category Cloud in sidebar dropdownCategories" + }, + "sidebar.dropdownCategories.category.Manage Data": { + "message": "Gestión de datos", + "description": "The label for category Manage Data in sidebar dropdownCategories" + }, + "sidebar.dropdownCategories.category.Server Admin": { + "message": "Server Admin", + "description": "The label for category Server Admin in sidebar dropdownCategories" + }, + "sidebar.dropdownCategories.category.Reference": { + "message": "Reference", + "description": "The label for category Reference in sidebar dropdownCategories" + }, + "sidebar.dropdownCategories.category.Integrations": { + "message": "Integrations", + "description": "The label for category Integrations in sidebar dropdownCategories" + }, + "sidebar.dropdownCategories.category.chDB": { + "message": "chDB", + "description": "The label for category chDB in sidebar dropdownCategories" + }, + "sidebar.dropdownCategories.category.About": { + "message": "About", + "description": "The label for category About in sidebar dropdownCategories" + }, + "sidebar.dropdownCategories.link.Introduction": { + "message": "Introduction", + "description": "The label for link Introduction in sidebar dropdownCategories, linking to /sql-reference" + }, + "sidebar.dropdownCategories.link.Starter Guides": { + "message": "Guías de inicio", + "description": "The label for link Starter Guides in sidebar dropdownCategories, linking to /starter-guides" + }, + "sidebar.dropdownCategories.link.Concepts": { + "message": "Concepts", + "description": "The label for link Concepts in sidebar dropdownCategories, linking to /concepts" + }, + "sidebar.dropdownCategories.link.Migration Guides": { + "message": "Migration Guides", + "description": "The label for link Migration Guides in sidebar dropdownCategories, linking to /migrations/migrations" + }, + "sidebar.dropdownCategories.link.Use Case Guides": { + "message": "Use Case Guides", + "description": "The label for link Use Case Guides in sidebar dropdownCategories, linking to /use-cases" + }, + "sidebar.dropdownCategories.link.Example datasets": { + "message": "Example datasets", + "description": "The label for link Example datasets in sidebar dropdownCategories, linking to /getting-started/example-datasets" + }, + "sidebar.dropdownCategories.link.Get Started": { + "message": "Primeros pasos", + "description": "The label for link Get Started in sidebar dropdownCategories, linking to /cloud/get-started/" + }, + "sidebar.dropdownCategories.link.Managing Cloud": { + "message": "Managing Cloud", + "description": "The label for link Managing Cloud in sidebar dropdownCategories, linking to /cloud/bestpractices" + }, + "sidebar.dropdownCategories.link.Cloud API": { + "message": "Cloud API", + "description": "The label for link Cloud API in sidebar dropdownCategories, linking to /cloud/manage/cloud-api/" + }, + "sidebar.dropdownCategories.link.Cloud Reference": { + "message": "Cloud Reference", + "description": "The label for link Cloud Reference in sidebar dropdownCategories, linking to /cloud/reference/" + }, + "sidebar.dropdownCategories.link.Best Practices": { + "message": "Best Practices", + "description": "The label for link Best Practices in sidebar dropdownCategories, linking to /cloud/bestpractices/" + }, + "sidebar.dropdownCategories.link.Security": { + "message": "Security", + "description": "The label for link Security in sidebar dropdownCategories, linking to /cloud/security/" + }, + "sidebar.dropdownCategories.link.Migrating to Cloud": { + "message": "Migrating to Cloud", + "description": "The label for link Migrating to Cloud in sidebar dropdownCategories, linking to /integrations/migration" + }, + "sidebar.dropdownCategories.link.Core Data Concepts": { + "message": "Core Data Concepts", + "description": "The label for link Core Data Concepts in sidebar dropdownCategories, linking to /managing-data/core-concepts" + }, + "sidebar.dropdownCategories.link.Updating Data": { + "message": "Updating Data", + "description": "The label for link Updating Data in sidebar dropdownCategories, linking to /updating-data" + }, + "sidebar.dropdownCategories.link.Deleting data": { + "message": "Deleting data", + "description": "The label for link Deleting data in sidebar dropdownCategories, linking to /managing-data/deleting-data/overview" + }, + "sidebar.dropdownCategories.link.Data Modeling": { + "message": "Data Modeling", + "description": "The label for link Data Modeling in sidebar dropdownCategories, linking to /data-modeling/overview" + }, + "sidebar.dropdownCategories.link.Performance and Optimizations": { + "message": "Performance and Optimizations", + "description": "The label for link Performance and Optimizations in sidebar dropdownCategories, linking to /operations/overview" + }, + "sidebar.dropdownCategories.link.Deployments and Scaling": { + "message": "Deployments and Scaling", + "description": "The label for link Deployments and Scaling in sidebar dropdownCategories, linking to /deployment-guides/index" + }, + "sidebar.dropdownCategories.link.Security and Authentication": { + "message": "Security and Authentication", + "description": "The label for link Security and Authentication in sidebar dropdownCategories, linking to /security-and-authentication" + }, + "sidebar.dropdownCategories.link.Settings": { + "message": "Settings", + "description": "The label for link Settings in sidebar dropdownCategories, linking to /operations/settings" + }, + "sidebar.dropdownCategories.link.Tools and Utilities": { + "message": "Tools and Utilities", + "description": "The label for link Tools and Utilities in sidebar dropdownCategories, linking to /operations/utilities" + }, + "sidebar.dropdownCategories.link.System Tables": { + "message": "System Tables", + "description": "The label for link System Tables in sidebar dropdownCategories, linking to /operations/system-tables" + }, + "sidebar.dropdownCategories.link.Functions": { + "message": "Functions", + "description": "The label for link Functions in sidebar dropdownCategories, linking to /sql-reference/functions" + }, + "sidebar.dropdownCategories.link.Engines": { + "message": "Engines", + "description": "The label for link Engines in sidebar dropdownCategories, linking to /engines" + }, + "sidebar.dropdownCategories.link.Other Features": { + "message": "Other Features", + "description": "The label for link Other Features in sidebar dropdownCategories, linking to /sql-reference/operators" + }, + "sidebar.dropdownCategories.link.All Integrations": { + "message": "All Integrations", + "description": "The label for link All Integrations in sidebar dropdownCategories, linking to /integrations" + }, + "sidebar.dropdownCategories.link.Language Clients": { + "message": "Language Clients", + "description": "The label for link Language Clients in sidebar dropdownCategories, linking to /integrations/language-clients" + }, + "sidebar.dropdownCategories.link.ClickPipes": { + "message": "ClickPipes", + "description": "The label for link ClickPipes in sidebar dropdownCategories, linking to /integrations/clickpipes" + }, + "sidebar.dropdownCategories.link.Native Clients & Interfaces": { + "message": "Native Clients & Interfaces", + "description": "The label for link Native Clients & Interfaces in sidebar dropdownCategories, linking to /interfaces/" + }, + "sidebar.dropdownCategories.link.Data Sources": { + "message": "Data Sources", + "description": "The label for link Data Sources in sidebar dropdownCategories, linking to /integrations/index" + }, + "sidebar.dropdownCategories.link.Data Visualization": { + "message": "Data Visualization", + "description": "The label for link Data Visualization in sidebar dropdownCategories, linking to /integrations/data-visualization" + }, + "sidebar.dropdownCategories.link.Data Formats": { + "message": "Data Formats", + "description": "The label for link Data Formats in sidebar dropdownCategories, linking to /integrations/data-formats" + }, + "sidebar.dropdownCategories.link.Data Ingestion": { + "message": "Data Ingestion", + "description": "The label for link Data Ingestion in sidebar dropdownCategories, linking to /integrations/data-ingestion-overview" + }, + "sidebar.dropdownCategories.link.Learn chDB": { + "message": "Learn chDB", + "description": "The label for link Learn chDB in sidebar dropdownCategories, linking to /chdb" + }, + "sidebar.dropdownCategories.link.Language Integrations": { + "message": "Language Integrations", + "description": "The label for link Language Integrations in sidebar dropdownCategories, linking to /chdb/install" + }, + "sidebar.dropdownCategories.link.Guides": { + "message": "Guides", + "description": "The label for link Guides in sidebar dropdownCategories, linking to /chdb/guides" + }, + "sidebar.dropdownCategories.link.Adopters": { + "message": "Adopters", + "description": "The label for link Adopters in sidebar dropdownCategories, linking to /about-us/adopters" + }, + "sidebar.dropdownCategories.link.Changelogs": { + "message": "Changelogs", + "description": "The label for link Changelogs in sidebar dropdownCategories, linking to /whats-new/security-changelog" + }, + "sidebar.dropdownCategories.link.Support": { + "message": "Support", + "description": "The label for link Support in sidebar dropdownCategories, linking to /about-us/support" + }, + "sidebar.dropdownCategories.link.Development and Contributing": { + "message": "Development and Contributing", + "description": "The label for link Development and Contributing in sidebar dropdownCategories, linking to /development/developer-instruction" + } +} diff --git a/i18n/es/docusaurus-plugin-content-docs/current/about-us/intro.mdx b/i18n/es/docusaurus-plugin-content-docs/current/about-us/intro.mdx new file mode 100644 index 00000000000..ce7b95d3858 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/about-us/intro.mdx @@ -0,0 +1,10 @@ +--- +'slug': '/about-clickhouse' +'sidebar_label': '¿Qué es ClickHouse?' +'title': '¿Qué es ClickHouse?' +'description': 'ClickHouse® es un sistema de gestión de bases de datos (DBMS) orientado a columnas para el procesamiento analítico en línea (OLAP). Está disponible tanto como software de código abierto como en una oferta en la nube.' +--- + +import Content from '@site/i18n/es/docusaurus-plugin-content-docs/current/intro.md'; + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/deployment-modes.md b/i18n/es/docusaurus-plugin-content-docs/current/deployment-modes.md new file mode 100644 index 00000000000..1c4626fd905 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/deployment-modes.md @@ -0,0 +1,75 @@ +--- +slug: /deployment-modes +sidebar_label: 'Modos de despliegue' +description: 'ClickHouse ofrece cuatro opciones de despliegue que utilizan el mismo potente motor de base de datos, pero empaquetadas de manera diferente para adaptarse a tus necesidades específicas.' +title: 'Modos de despliegue' +keywords: ['Deployment Modes', 'chDB'] +show_related_blogs: true +--- + +import chServer from '@site/static/images/deployment-modes/ch-server.png'; +import chCloud from '@site/static/images/deployment-modes/ch-cloud.png'; +import chLocal from '@site/static/images/deployment-modes/ch-local.png'; +import chDB from '@site/static/images/deployment-modes/chdb.png'; +import Image from '@theme/IdealImage'; + +ClickHouse es un sistema de base de datos versátil que puede desplegarse de varias maneras según tus necesidades. En su núcleo, todas las opciones de despliegue **utilizan el mismo potente motor de base de datos ClickHouse**; lo que varía es cómo interactúas con él y dónde se ejecuta. + +Ya sea que estés realizando análisis a gran escala en producción, haciendo análisis de datos localmente o desarrollando aplicaciones, existe una opción de despliegue diseñada para tu caso de uso. La consistencia del motor subyacente garantiza el mismo alto rendimiento y compatibilidad con SQL en todos los modos de despliegue. + +Esta guía explora las cuatro principales formas de desplegar y usar ClickHouse: + +* **ClickHouse Server** para despliegues tradicionales cliente/servidor +* **ClickHouse Cloud** para operaciones de base de datos totalmente gestionadas +* **clickhouse-local** para procesamiento de datos desde la línea de comandos +* **chDB** para integrar ClickHouse directamente en aplicaciones + +Cada modo de despliegue tiene sus propias fortalezas y casos de uso ideales, que exploraremos en detalle a continuación. + + + +## ClickHouse Server {#clickhouse-server} + +ClickHouse Server representa la arquitectura tradicional cliente/servidor y es ideal para despliegues en producción. Este modo de despliegue ofrece todas las capacidades de una base de datos OLAP, con alto rendimiento y baja latencia en las consultas, características por las que ClickHouse es reconocido. + +ClickHouse Server + +ClickHouse Server se puede instalar en tu máquina local para desarrollo o pruebas, desplegarse en los principales proveedores de nube como AWS, GCP o Azure, o configurarse en tu propio hardware local. Para operaciones a gran escala, puede configurarse como un clúster distribuido para manejar mayor carga y garantizar alta disponibilidad. + +Este modo de despliegue es la opción recomendada para entornos de producción donde la fiabilidad, el rendimiento y el acceso completo a las funciones son fundamentales. + +## ClickHouse Cloud {#clickhouse-cloud} + +[ClickHouse Cloud](/cloud/overview) es una versión totalmente gestionada de ClickHouse que elimina la carga operativa de ejecutar tu propio despliegue. Aunque mantiene todas las capacidades del ClickHouse Server, añade funciones diseñadas para simplificar el desarrollo y la operación. + +ClickHouse Cloud + +Una de las principales ventajas de ClickHouse Cloud es su conjunto de herramientas integradas. [ClickPipes](/getting-started/quick-start/cloud/#clickpipes) proporciona un marco robusto de ingestión de datos, permitiendo conectar y transmitir datos desde diversas fuentes sin gestionar complejas canalizaciones ETL. La plataforma también ofrece una [API de consultas](/cloud/get-started/query-endpoints), facilitando la creación de aplicaciones. + +La consola SQL en ClickHouse Cloud incluye funciones de [panel de control](/cloud/manage/dashboards), permitiendo transformar tus consultas en visualizaciones interactivas. Puedes crear y compartir tableros basados en tus consultas guardadas, con elementos interactivos mediante parámetros de consulta y filtros globales. + +Para monitoreo y optimización, ClickHouse Cloud incluye gráficos incorporados y [análisis de consultas](/cloud/get-started/query-insights), ofreciendo visibilidad profunda sobre el rendimiento del clúster, patrones de consulta, uso de recursos y oportunidades de optimización. Esto resulta especialmente útil para equipos que necesitan mantener análisis de alto rendimiento sin dedicar recursos a la administración de infraestructura. + +El servicio gestionado maneja automáticamente actualizaciones, respaldos, escalado y parches de seguridad, siendo ideal para organizaciones que prefieren centrarse en sus datos y aplicaciones en lugar de en la administración de la base de datos. + +## clickhouse-local {#clickhouse-local} + +[clickhouse-local](/operations/utilities/clickhouse-local) es una herramienta de línea de comandos que ofrece toda la funcionalidad de ClickHouse en un ejecutable independiente. Es esencialmente la misma base de datos que ClickHouse Server, pero empaquetada para usar directamente desde la línea de comandos sin ejecutar un servidor. + +clickHouse-local + +Esta herramienta es ideal para análisis ad-hoc de datos, especialmente con archivos locales o datos almacenados en la nube. Permite consultar archivos en distintos formatos (CSV, JSON, Parquet, etc.) usando el dialecto SQL de ClickHouse, perfecta para exploraciones rápidas o análisis puntuales. + +clickhouse-local incluye todas las funciones de ClickHouse, permitiendo realizar transformaciones de datos, conversiones de formato o cualquier operación que normalmente harías con ClickHouse Server. También puede persistir datos usando los mismos motores de almacenamiento que ClickHouse Server. + +La combinación de funciones de tabla remotas y acceso al sistema de archivos local hace clickhouse-local especialmente útil para unir datos entre un ClickHouse Server y archivos locales, ideal para datos temporales o sensibles que no deseas subir a un servidor. + +## chDB {#chdb} + +[chDB](/chdb) es ClickHouse embebido como motor de base de datos en proceso, con Python como implementación principal, disponible también para Go, Rust, NodeJS y Bun. Esta opción permite aprovechar las capacidades OLAP de ClickHouse directamente en tu aplicación, sin necesidad de una instalación separada de la base de datos. + +chDB - Embedded ClickHouse + +chDB se integra de manera fluida con el ecosistema de tu aplicación. En Python, por ejemplo, funciona eficientemente con herramientas de ciencia de datos como Pandas y Arrow, minimizando la copia de datos mediante `memoryview`, lo que resulta muy útil para analistas que quieren aprovechar el rendimiento de ClickHouse en sus flujos de trabajo existentes. + +chDB también puede conectarse a bases de datos creadas con clickhouse-local, ofreciendo flexibilidad para trabajar con datos. Esto permite pasar sin problemas entre desarrollo local, exploración de datos en Python y soluciones de almacenamiento más permanentes sin cambiar los patrones de acceso a los datos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/_category_.yml b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/_category_.yml new file mode 100644 index 00000000000..a8d8a85caff --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/_category_.yml @@ -0,0 +1,8 @@ +position: 1 +label: 'Primeros pasos' +collapsible: true +collapsed: true +link: + type: generated-index + title: Primeros pasos + slug: /getting-started diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_deb_install.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_deb_install.md new file mode 100644 index 00000000000..b21907778c8 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_deb_install.md @@ -0,0 +1,130 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Instalar ClickHouse en Debian/Ubuntu {#install-from-deb-packages} + +> Se recomienda usar los paquetes `deb` precompilados oficiales para **Debian** o **Ubuntu**. + + + +## Configurar el repositorio de Debian {#setup-the-debian-repository} + +Para instalar ClickHouse, ejecuta los siguientes comandos: + +```bash +# Install prerequisite packages +sudo apt-get install -y apt-transport-https ca-certificates curl gnupg + +# Download the ClickHouse GPG key and store it in the keyring +curl -fsSL 'https://packages.clickhouse.com/rpm/lts/repodata/repomd.xml.key' | sudo gpg --dearmor -o /usr/share/keyrings/clickhouse-keyring.gpg + +# Get the system architecture +ARCH=$(dpkg --print-architecture) + +# Add the ClickHouse repository to apt sources +echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg arch=${ARCH}] https://packages.clickhouse.com/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list + +# Update apt package lists +sudo apt-get update +``` + +- Puedes reemplazar `stable` por `lts` para usar diferentes [tipos de versión](/knowledgebase/production) según tus necesidades. +- También puedes descargar e instalar los paquetes manualmente desde [packages.clickhouse.com](https://packages.clickhouse.com/deb/pool/main/c/). + +
+Método antiguo para instalar los paquetes deb + + +```bash +# Install prerequisite packages +sudo apt-get install apt-transport-https ca-certificates dirmngr + +# Add the ClickHouse GPG key to authenticate packages +sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754 + +# Add the ClickHouse repository to apt sources +echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \ + /etc/apt/sources.list.d/clickhouse.list + +# Update apt package lists +sudo apt-get update + +# Install ClickHouse server and client packages +sudo apt-get install -y clickhouse-server clickhouse-client + +# Start the ClickHouse server service +sudo service clickhouse-server start + +# Launch the ClickHouse command line client +clickhouse-client # or "clickhouse-client --password" if you set up a password. +``` + +
+ +## Instalar ClickHouse server y client {#install-clickhouse-server-and-client} + +```bash +sudo apt-get install -y clickhouse-server clickhouse-client +``` + +## Iniciar ClickHouse {#start-clickhouse-server} + +Para iniciar el servidor de ClickHouse, ejecuta: + +```bash +sudo service clickhouse-server start +``` + +Para iniciar el cliente de ClickHouse, ejecuta: + +```bash +clickhouse-client +``` + +Si configuraste una contraseña para tu servidor, entonces necesitarás ejecutar: + +```bash +clickhouse-client --password +``` + +## Instalar ClickHouse Keeper independiente {#install-standalone-clickhouse-keeper} + +:::tip +En entornos de producción, recomendamos encarecidamente ejecutar ClickHouse Keeper en nodos dedicados. +En entornos de prueba, si decides ejecutar ClickHouse Server y ClickHouse Keeper en el mismo servidor, +no necesitas instalar ClickHouse Keeper, ya que está incluido con el servidor ClickHouse. +::: + +Para instalar `clickhouse-keeper` en servidores independientes de ClickHouse Keeper, ejecuta: + +```bash +sudo apt-get install -y clickhouse-keeper +``` + +## Habilitar y arrancar ClickHouse Keeper {#enable-and-start-clickhouse-keeper} + +```bash +sudo systemctl enable clickhouse-keeper +sudo systemctl start clickhouse-keeper +sudo systemctl status clickhouse-keeper +``` + +
+ +## Paquetes {#packages} + +Los distintos paquetes `deb` disponibles se detallan a continuación: + +| Paquete | Descripción | +|--------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `clickhouse-common-static` | Instala los archivos binarios compilados de ClickHouse. | +| `clickhouse-server` | Crea un enlace simbólico para `clickhouse-server` e instala la configuración predeterminada del servidor. | +| `clickhouse-client` | Crea un enlace simbólico para `clickhouse-client` y otras herramientas relacionadas con el cliente, e instala los archivos de configuración del cliente. | +| `clickhouse-common-static-dbg` | Instala los archivos binarios compilados de ClickHouse con información de depuración. | +| `clickhouse-keeper` | Se utiliza para instalar ClickHouse Keeper en nodos dedicados. Si estás ejecutando ClickHouse Keeper en el mismo servidor que ClickHouse Server, no necesitas instalar este paquete. Instala ClickHouse Keeper y los archivos de configuración predeterminados. | + +
+:::info +Si necesitas instalar una versión específica de ClickHouse, debes instalar todos los paquetes con la misma versión: +`sudo apt-get install clickhouse-server=21.8.5.7 clickhouse-client=21.8.5.7 clickhouse-common-static=21.8.5.7` +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_docker.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_docker.md new file mode 100644 index 00000000000..105a5f9f0ea --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_docker.md @@ -0,0 +1,190 @@ +# Instalar ClickHouse usando Docker + +La guía en [Docker Hub](https://hub.docker.com/r/clickhouse/clickhouse-server/) se presenta a continuación para mayor comodidad. Las imágenes de Docker disponibles se basan en los paquetes `deb` oficiales de ClickHouse. + + +Comando para descargar la imagen de Docker: + +```bash +docker pull clickhouse/clickhouse-server +``` + +## Versiones {#versions} + +- La etiqueta `latest` apunta a la última versión de la rama estable más reciente. +- Las etiquetas de rama como `22.2` apuntan a la última versión de la rama correspondiente. +- Las etiquetas de versión completa como `22.2.3` y `22.2.3.5` apuntan a la versión correspondiente. +- La etiqueta `head` se construye a partir del último commit de la rama por defecto. +- Cada etiqueta puede tener un sufijo opcional `-alpine` para indicar que está basada en Alpine. + +### Compatibilidad {#compatibility} + +- La imagen amd64 requiere soporte para instrucciones [SSE3](https://en.wikipedia.org/wiki/SSE3). Prácticamente todos los CPUs x86 posteriores a 2005 soportan SSE3. +- La imagen arm64 requiere soporte para la [arquitectura ARMv8.2-A](https://en.wikipedia.org/wiki/AArch64#ARMv8.2-A) y adicionalmente el registro Load-Acquire RCpc. Este registro es opcional en ARMv8.2-A y obligatorio en [ARMv8.3-A](https://en.wikipedia.org/wiki/AArch64#ARMv8.3-A). Soportado en Graviton >=2, instancias de Azure y GCP. Ejemplos de dispositivos no soportados: Raspberry Pi 4 (ARMv8.0-A) y Jetson AGX Xavier/Orin (ARMv8.2-A). +- Desde ClickHouse 24.11 las imágenes de Ubuntu usan `ubuntu:22.04` como base. Requiere Docker versión >= `20.10.10` que incluya [este parche](https://github.com/moby/moby/commit/977283509f75303bc6612665a04abf76ff1d2468). Como solución temporal, se puede usar `docker run --security-opt seccomp=unconfined`, pero esto tiene implicaciones de seguridad. + +## Cómo usar esta imagen {#how-to-use-image} + +### Iniciar una instancia del servidor {#start-server-instance} + +```bash +docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server +``` + +Por defecto, ClickHouse será accesible únicamente a través de la red de Docker. Consulta la sección de redes más abajo. + +Al iniciar la instancia del servidor anterior, esta se ejecutará como el usuario `default` sin contraseña. + +### Conectarse desde un cliente nativo {#connect-to-it-from-native-client} + +```bash +docker run -it --rm --network=container:some-clickhouse-server --entrypoint clickhouse-client clickhouse/clickhouse-server +# OR +docker exec -it some-clickhouse-server clickhouse-client +``` + +Consulta [Cliente de ClickHouse](/interfaces/cli) para obtener más información sobre el cliente de ClickHouse. + +### Conexión mediante curl {#connect-to-it-using-curl} + +```bash +echo "SELECT 'Hello, ClickHouse!'" | docker run -i --rm --network=container:some-clickhouse-server buildpack-deps:curl curl 'http://localhost:8123/?query=' -s --data-binary @- +``` + +Consulta [Interfaz HTTP de ClickHouse](/interfaces/http) para obtener más información sobre la interfaz HTTP. + +### Detener / eliminar el contenedor {#stopping-removing-container} + +```bash +docker stop some-clickhouse-server +docker rm some-clickhouse-server +``` + +### Redes {#networking} + +:::note +El usuario predefinido `default` no tiene acceso a la red a menos que se haya configurado una contraseña. +Consulta las secciones "Cómo crear la base de datos y el usuario por defecto al iniciar" y "Administración del usuario `default`" más abajo. +::: + +Puedes exponer tu instancia de ClickHouse que se ejecuta en Docker [mapeando un puerto específico](https://docs.docker.com/config/containers/container-networking/) desde dentro del contenedor hacia los puertos del host: + + +```bash +docker run -d -p 18123:8123 -p19000:9000 -e CLICKHOUSE_PASSWORD=changeme --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server +echo 'SELECT version()' | curl 'http://localhost:18123/?password=changeme' --data-binary @- +``` + +O permitiendo que el contenedor use [directamente los puertos del host](https://docs.docker.com/network/host/) mediante `--network=host` +(esto también permite obtener un mejor rendimiento de red): + +```bash +docker run -d --network=host --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server +echo 'SELECT version()' | curl 'http://localhost:8123/' --data-binary @- +``` + +:::note +El usuario `default` en el ejemplo anterior está disponible únicamente para solicitudes desde `localhost`. +::: + +### Volúmenes {#volumes} + +Normalmente, querrás montar las siguientes carpetas dentro de tu contenedor para garantizar la persistencia: + +- `/var/lib/clickhouse/` - main folder where ClickHouse stores the data +- `/var/log/clickhouse-server/` - logs + +```bash +docker run -d \ + -v "$PWD/ch_data:/var/lib/clickhouse/" \ + -v "$PWD/ch_logs:/var/log/clickhouse-server/" \ + --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server +``` + +También podrías querer montar: + +- `/etc/clickhouse-server/config.d/*.xml` - files with server configuration adjustments +- `/etc/clickhouse-server/users.d/*.xml` - files with user settings adjustments +- `/docker-entrypoint-initdb.d/` - folder with database initialization scripts (see below). + +## Capacidades de Linux {#linear-capabilities} + +ClickHouse cuenta con algunas funcionalidades avanzadas que requieren habilitar varias [capacidades de Linux](https://man7.org/linux/man-pages/man7/capabilities.7.html). + +Son opcionales y se pueden habilitar usando los siguientes [argumentos de línea de comandos de Docker](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities): + +```bash +docker run -d \ + --cap-add=SYS_NICE --cap-add=NET_ADMIN --cap-add=IPC_LOCK \ + --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server +``` + +Para más información, consulta ["Configuración de las capacidades CAP_IPC_LOCK y CAP_SYS_NICE en Docker"](/knowledgebase/configure_cap_ipc_lock_and_cap_sys_nice_in_docker). + +## Configuración {#configuration} + +El contenedor expone el puerto 8123 para la [interfaz HTTP](https://clickhouse.com/docs/interfaces/http_interface/) y el puerto 9000 para el [cliente nativo](https://clickhouse.com/docs/interfaces/tcp/). + +La configuración de ClickHouse se representa mediante un archivo `config.xml` ([documentación](https://clickhouse.com/docs/operations/configuration_files/)). + +### Iniciar una instancia del servidor con configuración personalizada {#start-server-instance-with-custom-config} + +```bash +docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -v /path/to/your/config.xml:/etc/clickhouse-server/config.xml clickhouse/clickhouse-server +``` + +### Iniciar el servidor como un usuario personalizado {#start-server-custom-user} + +```bash +# $PWD/data/clickhouse should exist and be owned by current user +docker run --rm --user "${UID}:${GID}" --name some-clickhouse-server --ulimit nofile=262144:262144 -v "$PWD/logs/clickhouse:/var/log/clickhouse-server" -v "$PWD/data/clickhouse:/var/lib/clickhouse" clickhouse/clickhouse-server +``` + +Cuando uses la imagen con directorios locales montados, probablemente querrás especificar el usuario para mantener la propiedad correcta de los archivos. Utiliza el argumento `--user` y monta `/var/lib/clickhouse` y `/var/log/clickhouse-server` dentro del contenedor. De lo contrario, la imagen mostrará un error y no se iniciará. + +### Iniciar el servidor como root {#start-server-from-root} + +Iniciar el servidor como root es útil en casos donde el espacio de nombres de usuario está habilitado. +Para hacerlo, ejecuta: + +```bash +docker run --rm -e CLICKHOUSE_RUN_AS_ROOT=1 --name clickhouse-server-userns -v "$PWD/logs/clickhouse:/var/log/clickhouse-server" -v "$PWD/data/clickhouse:/var/lib/clickhouse" clickhouse/clickhouse-server +``` + +### Cómo crear la base de datos y el usuario por defecto al iniciar {#how-to-create-default-db-and-user} + +En algunas ocasiones, es posible que desees crear un usuario (el usuario llamado `default` se utiliza por defecto) y una base de datos al iniciar un contenedor. +Esto se puede hacer utilizando las variables de entorno `CLICKHOUSE_DB`, `CLICKHOUSE_USER`, `CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT` y `CLICKHOUSE_PASSWORD`: + +```bash +docker run --rm -e CLICKHOUSE_DB=my_database -e CLICKHOUSE_USER=username -e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 -e CLICKHOUSE_PASSWORD=password -p 9000:9000/tcp clickhouse/clickhouse-server +``` + +#### Administración del usuario `default` {#managing-default-user} + +El usuario `default` tiene deshabilitado el acceso a la red por defecto en caso de que no se hayan configurado `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD` o `CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT`. + +Es posible hacer que el usuario `default` esté disponible de manera insegura estableciendo la variable de entorno `CLICKHOUSE_SKIP_USER_SETUP` en 1: + +```bash +docker run --rm -e CLICKHOUSE_SKIP_USER_SETUP=1 -p 9000:9000/tcp clickhouse/clickhouse-server +``` + +## Cómo extender esta imagen {#how-to-extend-image} + +Para realizar inicializaciones adicionales en una imagen derivada de esta, agrega uno o más scripts `*.sql`, `*.sql.gz` o `*.sh` en `/docker-entrypoint-initdb.d`. +Después de que el entrypoint llame a `initdb`, se ejecutarán todos los archivos `*.sql`, se correrán los scripts ejecutables `*.sh` y se procesarán los scripts no ejecutables `*.sh` encontrados en ese directorio para realizar inicializaciones adicionales antes de iniciar el servicio. + +Además, puedes proporcionar las variables de entorno `CLICKHOUSE_USER` y `CLICKHOUSE_PASSWORD`, que se usarán con `clickhouse-client` durante la inicialización. + +Por ejemplo, para agregar otro usuario y base de datos, añade lo siguiente a `/docker-entrypoint-initdb.d/init-db.sh`: + +```bash +#!/bin/bash +set -e + +clickhouse client -n <<-EOSQL + CREATE DATABASE docker; + CREATE TABLE docker.docker (x Int32) ENGINE = Log; +EOSQL +``` \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_linux_tar_install.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_linux_tar_install.md new file mode 100644 index 00000000000..1e466bc40f1 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_linux_tar_install.md @@ -0,0 +1,94 @@ +# Install ClickHouse using tgz archives + +> Se recomienda usar los archivos `tgz` precompilados oficiales para todas las distribuciones Linux, cuando la instalación mediante paquetes `deb` o `rpm` no sea posible. + + + +## Descargar e instalar la última versión estable {#install-latest-stable} + +La versión requerida se puede descargar usando `curl` o `wget` desde el repositorio https://packages.clickhouse.com/tgz/. +Luego, los archivos descargados deben descomprimirse e instalarse usando los scripts de instalación. + +A continuación se muestra un ejemplo de cómo instalar la última versión estable. + +:::note +Para entornos de producción, se recomienda usar la versión más reciente marcada como `stable`. +Puedes encontrar el número de la versión en esta [página de GitHub](https://github.com/ClickHouse/ClickHouse/tags) con el sufijo `-stable`. +::: + +## Obtener la última versión de ClickHouse {#get-latest-version} + +Obtén la última versión de ClickHouse desde GitHub y almacénala en la variable `LATEST_VERSION`. + +```bash +LATEST_VERSION=$(curl -s https://raw.githubusercontent.com/ClickHouse/ClickHouse/master/utils/list-versions/version_date.tsv | \ + grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1) +export LATEST_VERSION +``` + +## Detectar la arquitectura del sistema {#detect-system-architecture} + +Detecta la arquitectura del sistema y asigna el valor correspondiente a la variable `ARCH`: + +```bash +case $(uname -m) in + x86_64) ARCH=amd64 ;; # For Intel/AMD 64-bit processors + aarch64) ARCH=arm64 ;; # For ARM 64-bit processors + *) echo "Unknown architecture $(uname -m)"; exit 1 ;; # Exit if architecture isn't supported +esac +``` + +## Descargar los archivos tar de cada componente de ClickHouse {#download-tarballs} + +Descarga los archivos tar de cada componente de ClickHouse. El bucle intenta primero con los paquetes específicos para tu arquitectura y, si no están disponibles, utiliza los genéricos. + +```bash +for PKG in clickhouse-common-static clickhouse-common-static-dbg clickhouse-server clickhouse-client clickhouse-keeper +do + curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION-${ARCH}.tgz" \ + || curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION.tgz" +done +``` + +## Extraer e instalar paquetes {#extract-and-install} + +Ejecuta los siguientes comandos para extraer e instalar los paquetes indicados: + +- `clickhouse-common-static` + +```bash +# Extract and install clickhouse-common-static package +tar -xzvf "clickhouse-common-static-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz" +sudo "clickhouse-common-static-$LATEST_VERSION/install/doinst.sh" +``` + +- `clickhouse-common-static-dbg` + +```bash +# Extract and install debug symbols package +tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz" +sudo "clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh" +``` + +- `clickhouse-server` + +```bash +# Extract and install server package with configuration +tar -xzvf "clickhouse-server-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz" +sudo "clickhouse-server-$LATEST_VERSION/install/doinst.sh" configure +sudo /etc/init.d/clickhouse-server start # Start the server +``` + +- `clickhouse-client` + +```bash +# Extract and install client package +tar -xzvf "clickhouse-client-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz" +sudo "clickhouse-client-$LATEST_VERSION/install/doinst.sh" +``` + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_macos.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_macos.md new file mode 100644 index 00000000000..67c7fbaf132 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_macos.md @@ -0,0 +1,103 @@ +import Image from "@theme/IdealImage"; +import dev_error from "@site/static/images/knowledgebase/fix-the-developer-verification-error-in-macos/dev-verification-error.png"; +import privacy_default from "@site/static/images/knowledgebase/fix-the-developer-verification-error-in-macos/privacy-and-security-default-view.png"; +import privacy_allow from "@site/static/images/knowledgebase/fix-the-developer-verification-error-in-macos/privacy-and-security-screen-allow-anyway.png"; + +# Instalar ClickHouse usando Homebrew + + + +## Instalar usando la fórmula comunitaria de Homebrew {#install-using-community-homebrew-formula} + +Para instalar ClickHouse en macOS usando [Homebrew](https://brew.sh/), puedes usar la fórmula comunitaria de ClickHouse para [Homebrew](https://formulae.brew.sh/cask/clickhouse). + + +```bash +brew install --cask clickhouse +``` + +## Solucionar el error de verificación del desarrollador en macOS {#fix-developer-verification-error-macos} + +Si instalas ClickHouse usando `brew`, es posible que encuentres un error en macOS. +Por defecto, macOS no ejecutará aplicaciones o herramientas creadas por un desarrollador que no pueda ser verificado. + +Al intentar ejecutar cualquier comando de `clickhouse`, podrías ver el siguiente error: + +MacOS developer verification error dialog + +Para evitar este error de verificación, debes eliminar la aplicación del estado de cuarentena de macOS. +Puedes hacerlo buscando la configuración correspondiente en la ventana de Configuración del Sistema, usando la terminal o reinstalando ClickHouse. + +### Proceso desde la Configuración del Sistema {#system-settings-process} + +La forma más sencilla de eliminar el ejecutable `clickhouse` del estado de cuarentena es: + +1. Abrir **Configuración del Sistema**. +2. Ir a **Privacidad y Seguridad**: + + + MacOS Privacy & Security settings default view + +3. Desplázate hasta la parte inferior de la ventana para encontrar un mensaje que diga _"clickhouse-macos-aarch64" fue bloqueado porque no proviene de un desarrollador identificado_. +4. Haz clic en **Permitir de todos modos**. + + MacOS Privacy & Security settings showing Allow Anyway button + +5. Ingresa la contraseña de tu usuario de MacOS. + +Ahora deberías poder ejecutar comandos `clickhouse` en tu terminal. + +### Proceso desde la terminal {#terminal-process} + +A veces, presionar el botón **Allow Anyway** no soluciona el problema, en ese caso también puedes realizar este proceso desde la línea de comandos. +O simplemente puedes preferir usar la terminal. + +Primero, averigua dónde Homebrew instaló el ejecutable `clickhouse`: + +```shell +which clickhouse +``` + +Esto debería mostrar una salida similar a: + +```shell +/opt/homebrew/bin/clickhouse +``` + +Elimina `clickhouse` de la cuarentena ejecutando `xattr -d com.apple.quarantine` seguido de la ruta obtenida en el comando anterior: + +```shell +xattr -d com.apple.quarantine /opt/homebrew/bin/clickhouse +``` + +Ahora deberías poder ejecutar el binario `clickhouse` sin problemas: + +```shell +clickhouse +``` + +Esto debería mostrar algo como lo siguiente: + +```bash +Use one of the following commands: +clickhouse local [args] +clickhouse client [args] +clickhouse benchmark [args] +... + +## Fix the issue by reinstalling ClickHouse {#fix-issue} + +Brew has a command-line option which avoids quarantining installed binaries in the first place. + +First, uninstall ClickHouse: + +```shell +brew uninstall clickhouse +``` + +Ahora reinstala ClickHouse con la opción `--no-quarantine`: + +```shell +brew install --no-quarantine clickhouse +``` + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_quick_install.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_quick_install.md new file mode 100644 index 00000000000..88fa2600dd1 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_quick_install.md @@ -0,0 +1,64 @@ +# Instalar ClickHouse mediante script usando curl + +Si no necesitas instalar ClickHouse para producción, la manera más rápida de configurarlo es ejecutar un script de instalación usando `curl`. El script determinará un binario adecuado para tu sistema operativo. + + + +## Instalar ClickHouse usando curl {#install-clickhouse-using-curl} + +Ejecuta el siguiente comando para descargar un único binario compatible con tu sistema operativo. + +```bash +curl https://clickhouse.com/ | sh +``` + +:::note +Para usuarios de Mac: Si recibes errores indicando que no se puede verificar al desarrollador del binario, consulta [aquí](/knowledgebase/fix-developer-verification-error-in-macos). +::: + +## Iniciar clickhouse-local {#start-clickhouse-local} + +`clickhouse-local` permite procesar archivos locales y remotos utilizando la poderosa sintaxis SQL de ClickHouse sin necesidad de configuración. Los datos de las tablas se almacenan en una ubicación temporal, lo que significa que después de reiniciar `clickhouse-local`, las tablas previamente creadas ya no estarán disponibles. + +Ejecute el siguiente comando para iniciar [clickhouse-local](/operations/utilities/clickhouse-local): + +```bash +./clickhouse +``` + +## Iniciar clickhouse-server {#start-clickhouse-server} + +Si deseas conservar los datos, deberás ejecutar `clickhouse-server`. Puedes iniciar el servidor de ClickHouse usando el siguiente comando: + +```bash +./clickhouse server +``` + +## Iniciar clickhouse-client {#start-clickhouse-client} + +Con el servidor en funcionamiento, abre una nueva ventana de terminal y ejecuta el siguiente comando para iniciar `clickhouse-client`: + +```bash +./clickhouse client +``` + +Verás algo como lo siguiente: + +```response +./clickhouse client +ClickHouse client version 24.5.1.117 (official build). +Connecting to localhost:9000 as user default. +Connected to ClickHouse server version 24.5.1. + +local-host :) +``` + +Los datos de las tablas se almacenan en el directorio actual y siguen estando disponibles después de reiniciar el servidor de ClickHouse. Si es necesario, puedes pasar `-C config.xml` como argumento adicional en la línea de comandos a `./clickhouse server` y proporcionar configuraciones adicionales en un archivo de configuración. Todas las configuraciones disponibles están documentadas [aquí](/operations/server-configuration-parameters/settings) y en el [archivo de configuración de ejemplo](https://github.com/ClickHouse/ClickHouse/blob/master/programs/server/config.xml). + +¡Ahora estás listo para empezar a enviar comandos SQL a ClickHouse! + +:::tip +El [inicio rápido](/get-started/quick-start) guía los pasos para crear tablas e insertar datos. +::: + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_rpm_install.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_rpm_install.md new file mode 100644 index 00000000000..cd150ca7577 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_rpm_install.md @@ -0,0 +1,83 @@ +# Instalar ClickHouse en distribuciones basadas en RPM + +> Se recomienda usar los paquetes `rpm` oficiales precompilados para **CentOS**, **RedHat** y todas las demás distribuciones Linux basadas en RPM. + + + +## Configurar el repositorio RPM + +Agrega el repositorio oficial ejecutando el siguiente comando: + +```bash +sudo yum install -y yum-utils +sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo +``` + +Para sistemas con el gestor de paquetes `zypper` (openSUSE, SLES), ejecuta: + +```bash +sudo zypper addrepo -r https://packages.clickhouse.com/rpm/clickhouse.repo -g +sudo zypper --gpg-auto-import-keys refresh clickhouse-stable +``` + +En los pasos siguientes, `yum install` puede reemplazarse por `zypper install`, dependiendo del gestor de paquetes que utilices. + +## Instalar el servidor y cliente de ClickHouse + +Para instalar ClickHouse, ejecuta los siguientes comandos: + +```bash +sudo yum install -y clickhouse-server clickhouse-client +``` + +- Puedes reemplazar `stable` por `lts` para usar diferentes tipos de release según tus necesidades. +- También puedes descargar e instalar los paquetes manualmente desde [packages.clickhouse.com/rpm](https://packages.clickhouse.com/rpm/stable). +- Para instalar una versión específica, agrega `-$version` al final del nombre del paquete. Por ejemplo: + +```bash +sudo yum install clickhouse-server-22.8.7.34 +``` + +## Iniciar el servidor ClickHouse + +Para iniciar el servidor ClickHouse, ejecuta: + +```bash +sudo systemctl enable clickhouse-server +sudo systemctl start clickhouse-server +sudo systemctl status clickhouse-server +``` + +Para iniciar el cliente ClickHouse, ejecuta: + +```bash +clickhouse-client +``` + +Si configuraste una contraseña para tu servidor, deberás ejecutar: + +```bash +clickhouse-client --password +``` + +## Instalar ClickHouse Keeper independiente + +:::tip +En entornos de producción, recomendamos fuertemente ejecutar ClickHouse Keeper en nodos dedicados. En entornos de prueba, si decides ejecutar ClickHouse Server y ClickHouse Keeper en el mismo servidor, no es necesario instalar ClickHouse Keeper, ya que está incluido con el servidor ClickHouse. +::: + +Para instalar `clickhouse-keeper` en servidores independientes, ejecuta: + +```bash +sudo yum install -y clickhouse-keeper +``` + +## Habilitar e iniciar ClickHouse Keeper + +```bash +sudo systemctl enable clickhouse-keeper +sudo systemctl start clickhouse-keeper +sudo systemctl status clickhouse-keeper +``` + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_windows_install.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_windows_install.md new file mode 100644 index 00000000000..4408ec9e4e4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_windows_install.md @@ -0,0 +1,84 @@ +# Instalar ClickHouse en Windows con WSL + +## Requisitos {#requirements} + +:::note +Para instalar ClickHouse en Windows necesitarás WSL (Windows Subsystem for Linux). +::: + + + +## Instalar WSL {#install-wsl} + +Abre Windows PowerShell como administrador y ejecuta el siguiente comando: + +```bash +wsl --install +``` + +Se te pedirá que ingreses un nuevo nombre de usuario y contraseña de UNIX. +Después de ingresar el nombre de usuario y la contraseña deseados, deberías ver un mensaje similar a: + +```bash +Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 5.15.133.1-microsoft-WSL2 x86_64) +``` + +## Install ClickHouse via script using curl {#install-clickhouse-via-script-using-curl} + +Ejecuta el siguiente comando para instalar ClickHouse mediante un script usando `curl`: + +```bash +curl https://clickhouse.com/ | sh +``` + +Si el script se ejecutó correctamente, verás el siguiente mensaje: + +```bash +Successfully downloaded the ClickHouse binary, you can run it as: + ./clickhouse +``` + +## Start clickhouse-local {#start-clickhouse-local} + +`clickhouse-local` te permite procesar archivos locales y remotos usando la potente sintaxis SQL de ClickHouse, sin necesidad de configuración. Los datos de las tablas se almacenan en una ubicación temporal, lo que significa que después de reiniciar `clickhouse-local`, las tablas creadas previamente ya no estarán disponibles. + +Ejecuta el siguiente comando para iniciar [clickhouse-local](/operations/utilities/clickhouse-local): + +```bash +./clickhouse +``` + +## Iniciar clickhouse-server {#start-clickhouse-server} + +Si deseas persistir los datos, debes ejecutar `clickhouse-server`. +Puedes iniciar el servidor de ClickHouse usando el siguiente comando: + +```bash +./clickhouse server +``` + +## Iniciar clickhouse-client {#start-clickhouse-client} + +Con el servidor en funcionamiento, abre una nueva ventana de terminal y ejecuta el siguiente comando +para iniciar `clickhouse-client`: + +```bash +./clickhouse client +``` + +Verás algo similar a lo siguiente: + +```response +./clickhouse client +ClickHouse client version 24.5.1.117 (official build). +Connecting to localhost:9000 as user default. +Connected to ClickHouse server version 24.5.1. + +local-host :) +``` + +Los datos de las tablas se almacenan en el directorio actual y siguen disponibles después de reiniciar el servidor ClickHouse. Si es necesario, puedes pasar `-C config.xml` como argumento adicional al ejecutar `./clickhouse server` y proporcionar más configuración en un archivo de configuración. Todas las configuraciones disponibles están documentadas [aquí](/operations/server-configuration-parameters/settings) y en el [archivo de configuración de ejemplo](https://github.com/ClickHouse/ClickHouse/blob/master/programs/server/config.xml). + +¡Ahora estás listo para comenzar a enviar comandos SQL a ClickHouse! + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/advanced.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/advanced.md new file mode 100644 index 00000000000..d5eaf203797 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/advanced.md @@ -0,0 +1,45 @@ +--- +description: 'Instrucciones para compilar ClickHouse desde el código fuente o instalar un binario generado por CI' +keywords: ['ClickHouse', 'install', 'advanced', 'compile from source', 'CI generated binary'] +sidebar_label: 'Instalación avanzada' +slug: /install/advanced +title: 'Métodos de instalación avanzada' +hide_title: false +--- + +## Compilar desde el código fuente {#compile-from-source} + +Para compilar ClickHouse manualmente, sigue las instrucciones para [Linux](/development/build.md) o [macOS](/development/build-osx.md). + +Puedes compilar los paquetes e instalarlos o usar los programas sin instalar los paquetes. + +```xml +Client: /programs/clickhouse-client +Server: /programs/clickhouse-server +``` + +Deberás crear manualmente las carpetas de datos y metadatos, y asignarles la propiedad (`chown`) al usuario deseado. Sus rutas pueden modificarse en la configuración del servidor (`src/programs/server/config.xml`); por defecto son: + +```bash +/var/lib/clickhouse/data/default/ +/var/lib/clickhouse/metadata/default/ +``` + +En Gentoo, simplemente puedes usar `emerge clickhouse` para instalar ClickHouse desde el código fuente. + +## Instalar un binario generado por CI {#install-a-ci-generated-binary} + +La infraestructura de integración continua (CI) de ClickHouse produce compilaciones especializadas para cada commit en el [repositorio de ClickHouse](https://github.com/clickhouse/clickhouse/), por ejemplo, compilaciones [sanitizadas](https://github.com/google/sanitizers), compilaciones no optimizadas (Debug), compilaciones cross-compiladas, etc. Aunque estas compilaciones normalmente son útiles solo durante el desarrollo, en ciertas situaciones también pueden interesar a los usuarios. + +:::note +Dado que la CI de ClickHouse evoluciona con el tiempo, los pasos exactos para descargar compilaciones generadas por CI pueden variar. Además, la CI puede eliminar artefactos de compilaciones demasiado antiguos, haciéndolos inaccesibles para descarga. +::: + +Por ejemplo, para descargar un binario aarch64 de ClickHouse v23.4, sigue estos pasos: + +- Encuentra la solicitud de extracción de GitHub para la versión v23.4: [Solicitud de extracción para la rama 23.4](https://github.com/ClickHouse/ClickHouse/pull/49238) +- Haz clic en "Commits", luego selecciona un commit similar a "Update autogenerated version to 23.4.2.1 and contributors" para la versión que deseas instalar. +- Haz clic en el check verde / punto amarillo / cruz roja para abrir la lista de verificaciones CI. +- Haz clic en "Details" junto a "Builds" en la lista; se abrirá una página similar a [esta página](https://s3.amazonaws.com/clickhouse-test-reports/46793/b460eb70bf29b19eadd19a1f959b15d186705394/clickhouse_build_check/report.html) +- Busca las filas con `compiler = "clang-*-aarch64"` - hay múltiples filas. +- Descarga los artefactos para estas compilaciones. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/debian_ubuntu.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/debian_ubuntu.md new file mode 100644 index 00000000000..b82a2629021 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/debian_ubuntu.md @@ -0,0 +1,12 @@ +--- +description: 'Instalar ClickHouse en Linux Debian/Ubuntu' +keywords: ['ClickHouse', 'install', 'Debian', 'Ubuntu', 'deb'] +sidebar_label: 'Debian/Ubuntu' +slug: /install/debian_ubuntu +title: 'Instalar ClickHouse en Debian/Ubuntu' +hide_title: true +--- + +import DebianProd from './_snippets/_deb_install.md' + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/docker.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/docker.md new file mode 100644 index 00000000000..82271dac7bb --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/docker.md @@ -0,0 +1,12 @@ +--- +description: 'Instalar ClickHouse usando Docker' +keywords: ['ClickHouse', 'install', 'Docker'] +sidebar_label: 'Docker' +slug: /install/docker +title: 'Instalar ClickHouse usando Docker' +hide_title: true +--- + +import Docker from './_snippets/_docker.md' + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/install.mdx b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/install.mdx new file mode 100644 index 00000000000..77657f215cf --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/install.mdx @@ -0,0 +1,47 @@ +--- +description: 'Instalar ClickHouse' +keywords: ['clickhouse', 'install', 'getting started', 'quick start'] +sidebar_label: 'Instalación' +slug: /install +title: 'Instalar ClickHouse' +--- + +import InstallSelector from '@site/src/components/Install/Install' +import Windows from './_snippets/_windows_install.md' +import TarProd from './_snippets/_linux_tar_install.md' +import QuickInstall from './_snippets/_quick_install.md' +import DebianProd from './_snippets/_deb_install.md' +import RPMProd from './_snippets/_rpm_install.md' +import MacOSProd from './_snippets/_macos.md' +import Docker from './_snippets/_docker.md' +import {CardPrimary} from '@clickhouse/click-ui/bundled'; +import {galaxyOnClick} from '@site/src/lib/galaxy/galaxy' + +# Instrucciones de instalación + + +
+ +Como alternativa, elige tu plataforma, distribución y método de instalación a continuación para ver las instrucciones de instalación de ClickHouse Open Source: + +} + quickinstall={} + debian_prod={} + rpm_prod={} + tar_prod={} + macos_prod={} + docker={} +/> + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/macos.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/macos.md new file mode 100644 index 00000000000..3fc93fd2d0b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/macos.md @@ -0,0 +1,12 @@ +--- +description: 'Instalar ClickHouse en MacOS' +keywords: ['ClickHouse', 'install', 'MacOS'] +sidebar_label: 'MacOS' +slug: /install/macOS +title: 'Instalar ClickHouse usando Homebrew' +hide_title: true +--- + +import MacOSProd from './_snippets/_macos.md' + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/other_linux.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/other_linux.md new file mode 100644 index 00000000000..0e0ed510ba0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/other_linux.md @@ -0,0 +1,12 @@ +--- +description: '# Instalar ClickHouse usando archivos tgz' +keywords: ['ClickHouse', 'install', 'Linux', 'tar', 'tgz'] +sidebar_label: 'Other Linux' +slug: /install/linux_other +title: '# Instalar ClickHouse usando archivos tgz' +hide_title: true +--- + +import Tar from './_snippets/_linux_tar_install.md' + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/quick-install-curl.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/quick-install-curl.md new file mode 100644 index 00000000000..eab874c6058 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/quick-install-curl.md @@ -0,0 +1,12 @@ +--- +description: 'InsInstalartall ClickHouse en cualquier plataforma usando curl' +keywords: ['ClickHouse', 'install', 'quick', 'curl'] +sidebar_label: 'Instalación rápida' +slug: /install/quick-install-curl +title: 'Instalar ClickHouse via script usando curl' +hide_title: true +--- + +import QuickInstall from './_snippets/_quick_install.md' + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/redhat.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/redhat.md new file mode 100644 index 00000000000..2591481c621 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/redhat.md @@ -0,0 +1,12 @@ +--- +description: 'Instalar ClickHouse en Redhat/CentOS Linux' +keywords: ['ClickHouse', 'install', 'Redhat', 'CentOS', 'rpm'] +sidebar_label: 'Redhat/CentOS' +slug: /install/redhat +title: 'Instalar ClickHouse en distribuciones Linux basadas en rpm' +hide_title: true +--- + +import RPM from './_snippets/_rpm_install.md' + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/windows.md b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/windows.md new file mode 100644 index 00000000000..43fab123a21 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/install/windows.md @@ -0,0 +1,12 @@ +--- +description: 'Instalar ClickHouse en Windows con WSL' +keywords: ['ClickHouse', 'install', 'Redhat', 'rpm'] +sidebar_label: 'Windows' +slug: /install/windows +title: 'Instalar ClickHouse en Windows with WSL' +hide_title: true +--- + +import Windows from './_snippets/_windows_install.md' + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/cloud.mdx b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/cloud.mdx new file mode 100644 index 00000000000..f2610df9792 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/cloud.mdx @@ -0,0 +1,330 @@ +--- +sidebar_position: 1 +slug: /getting-started/quick-start/cloud +sidebar_label: 'ClickHouse Cloud' +keywords: ['clickhouse', 'install', 'getting started', 'quick start'] +title: 'Primeros pasos con ClickHouse Cloud' +description: 'Primeros pasos con ClickHouse Cloud' +--- + +import Image from '@theme/IdealImage'; +import signup_page from '@site/static/images/_snippets/signup_page.png'; +import select_plan from '@site/static/images/_snippets/select_plan.png'; +import createservice1 from '@site/static/images/_snippets/createservice1.png'; +import scaling_limits from '@site/static/images/_snippets/scaling_limits.png'; +import createservice8 from '@site/static/images/_snippets/createservice8.png'; +import show_databases from '@site/static/images/_snippets/show_databases.png'; +import service_connect from '@site/static/images/_snippets/service_connect.png'; +import data_sources from '@site/static/images/_snippets/data_sources.png'; +import select_data_source from '@site/static/images/_snippets/select_data_source.png'; +import client_details from '@site/static/images/_snippets/client_details.png'; +import new_rows_from_csv from '@site/static/images/_snippets/new_rows_from_csv.png'; +import SQLConsoleDetail from '@site/docs/_snippets/_launch_sql_console.md'; + +# Primeros pasos con ClickHouse Cloud + +> La forma más rápida y sencilla de empezar con ClickHouse es crear un nuevo servicio en [ClickHouse Cloud](https://console.clickhouse.cloud). +En esta guía de inicio rápido, te mostraremos cómo configurarlo en tres sencillos pasos. + + + +## Crear un nuevo servicio en ClickHouse {#1-create-a-clickhouse-service} + +Para crear un servicio gratuito de ClickHouse en [ClickHouse Cloud](https://console.clickhouse.cloud), solo necesitas registrarte siguiendo estos pasos: + +- Crea una cuenta en la [página de registro](https://console.clickhouse.cloud/signUp). +- Puedes registrarte usando tu correo electrónico o a través de SSO de Google, SSO de Microsoft, AWS Marketplace, Google Cloud o Microsoft Azure. +- Si te registras con correo electrónico y contraseña, recuerda verificar tu dirección de correo dentro de las siguientes 24 horas mediante el enlace que recibirás en tu email. +- Inicia sesión con el nombre de usuario y la contraseña que acabas de crear. + +Select Plan +
+ +Una vez que hayas iniciado sesión, ClickHouse Cloud abrirá el asistente de configuración, que te guiará paso a paso para crear un nuevo servicio de ClickHouse. +Al inicio, se te pedirá que [selecciones un plan](/cloud/manage/cloud-tiers): + +Select Plan +
+ +:::tip +We recommend the Scale tier for most workloads. +Further details on tiers can be found [here](/cloud/manage/cloud-tiers) +::: + +Al seleccionar un plan, deberás elegir la región en la que deseas desplegar tu primer servicio. Las opciones disponibles dependerán del nivel de plan escogido. En el siguiente paso, asumimos que el usuario ha optado por el nivel recomendado **Scale**. + +Selecciona la región donde deseas desplegar el servicio y asigna un nombre a tu nuevo servicio: + +New ClickHouse Service +
+ +Por defecto, el nivel **Scale** creará 3 **réplicas**, cada una con 4 VCPU y 16 GiB de RAM. El [escalado vertical automático](/manage/scaling#vertical-auto-scaling) estará habilitado por defecto en este nivel. + +Si es necesario, los usuarios pueden personalizar los recursos del servicio, especificando un tamaño mínimo y máximo para que las réplicas escalen dentro de ese rango. Cuando estés listo, selecciona `Crear servicio`. + +Scaling Limits +
+ +¡Felicidades! Tu servicio de ClickHouse Cloud está activo y listo para usarse, y el proceso de configuración inicial ha finalizado. +Sigue leyendo para obtener detalles sobre cómo empezar a ingresar y consultar tus datos. + +## Conéctate a ClickHouse {#2-connect-to-clickhouse} + +Existen dos formas de conectarse a ClickHouse: +- Conéctate usando nuestra consola SQL basada en la web. +- Conéctate con tu propia aplicación. + +
+ +### Conéctate usando la consola SQL {#connect-using-sql-console} + +Para comenzar rápidamente, ClickHouse ofrece una consola SQL basada en la web a la que serás redirigido al completar la configuración inicial. + +SQL Console + +Crea una pestaña de consulta e ingresa una consulta sencilla para verificar que la conexión funciona correctamente: + +```sql +SHOW databases +``` + +Deberías ver 4 bases de datos en la lista, además de cualquier otra que hayas agregado. + +SQL Console +
+ +¡Eso es todo! Ya estás listo para comenzar a usar tu nuevo servicio de ClickHouse. + +### Conéctate con tu aplicación {#connect-with-your-app} + +Presiona el botón de conexión en el menú de navegación. Se abrirá un modal que mostrará las credenciales de tu servicio y te proporcionará instrucciones sobre cómo conectarte usando tu interfaz o los clientes de tu lenguaje de programación. + +Service Connect +
+ +Si no encuentras el cliente para tu lenguaje, puedes consultar nuestra lista de [Integraciones](/integrations). + +## Agregar datos {#3-add-data} + +¡ClickHouse funciona mejor con datos! Existen múltiples formas de añadir datos, la mayoría disponibles en la página de **Fuentes de datos**, accesible desde el menú de navegación. + +Data sources +
+ +Puedes cargar datos usando los siguientes métodos: +- Configurar un **ClickPipe** para comenzar a ingerir datos desde fuentes como S3, Postgres, Kafka o GCS. +- Usar la **consola SQL**. +- Usar el **cliente de ClickHouse**. +- Subir un archivo - los formatos aceptados incluyen JSON, CSV y TSV. +- Subir datos desde una URL de archivo. + +### ClickPipes {#clickpipes} + +[ClickPipes](http://clickhouse.com/docs/integrations/clickpipes) es una plataforma de integración gestionada que facilita la ingesta de datos desde una amplia variedad de fuentes con solo unos clics. Diseñada para cargas de trabajo exigentes, su arquitectura robusta y escalable garantiza un rendimiento y confiabilidad constantes. ClickPipes se puede usar tanto para necesidades de streaming a largo plazo como para cargas de datos puntuales. +Select data source +
+ +### Agregar datos usando la consola SQL {#add-data-using-the-sql-console} + +Al igual que la mayoría de los sistemas de gestión de bases de datos, ClickHouse agrupa lógicamente las tablas en **bases de datos**. +Utiliza el comando [`CREATE DATABASE`](../../sql-reference/statements/create/database.md) para crear una nueva base de datos en ClickHouse: + +```sql +CREATE DATABASE IF NOT EXISTS helloworld +``` + +Ejecuta el siguiente comando para crear una tabla llamada `my_first_table` en la base de datos `helloworld`: + +```sql +CREATE TABLE helloworld.my_first_table +( + user_id UInt32, + message String, + timestamp DateTime, + metric Float32 +) +ENGINE = MergeTree() +PRIMARY KEY (user_id, timestamp) +``` + +En el ejemplo anterior, `my_first_table` es una tabla [`MergeTree`](../../engines/table-engines/mergetree-family/mergetree.md) con cuatro columnas: + +- `user_id`: un entero sin signo de 32 bits ([UInt32](../../sql-reference/data-types/int-uint.md)) +- `message`: un tipo de dato [String](../../sql-reference/data-types/string.md), que reemplaza a tipos como `VARCHAR`, `BLOB`, `CLOB` y otros de otros sistemas de bases de datos +- `timestamp`: un valor de tipo [DateTime](../../sql-reference/data-types/datetime.md), que representa un instante en el tiempo +- `metric`: un número de punto flotante de 32 bits ([Float32](../../sql-reference/data-types/float.md)) + +:::note Motores de tabla (Table Engines) +Los motores de tabla determinan: +- Cómo y dónde se almacenan los datos +- Qué consultas son compatibles +- Si los datos se replican o no + +Existen muchos motores de tabla para elegir, pero para una tabla simple en un servidor ClickHouse de un solo nodo, [`MergeTree`](/engines/table-engines/mergetree-family/mergetree.md) suele ser la opción más adecuada. +::: + +#### Breve introducción a las claves primarias {#a-brief-intro-to-primary-keys} + +Antes de continuar, es importante entender cómo funcionan las claves primarias en ClickHouse (¡su implementación puede resultar inesperada!): + +- Las claves primarias en ClickHouse **_no son únicas_** para cada fila de una tabla + +La **clave primaria** de una tabla ClickHouse determina cómo se ordenan los datos al escribirse en disco. Cada 8,192 filas o 10 MB de datos (denominado **granularidad del índice**) crea una entrada en el archivo de índice de la **clave primaria**. Este concepto de granularidad genera un **índice disperso** (**sparse index**) que cabe fácilmente en memoria, y los granulos representan la mínima porción de datos de columna que se procesa durante las consultas `SELECT`. + +La **clave primaria** se define mediante el parámetro `PRIMARY KEY`. Si defines una tabla sin especificar `PRIMARY KEY`, la clave se toma del conjunto definido en la cláusula `ORDER BY`. Si se especifican ambos, `PRIMARY KEY` y `ORDER BY`, la **clave primaria** debe ser un subconjunto del `ORDER BY`. + +La **clave primaria** también funciona como **clave de ordenación**, que en este ejemplo es la tupla `(user_id, timestamp)`. Por lo tanto, los datos almacenados en cada archivo de columna estarán ordenados primero por `user_id` y luego por `timestamp`. + +Para profundizar en los conceptos centrales de ClickHouse, consulta ["Conceptos fundamentales"](../../managing-data/core-concepts/index.md). + +#### Insertar datos en tu tabla {#insert-data-into-your-table} + +Puedes usar el tradicional comando [`INSERT INTO TABLE`](../../sql-reference/statements/insert-into.md) en ClickHouse, pero es importante entender que cada inserción en una tabla [`MergeTree`](/engines/table-engines/mergetree-family/mergetree.md) genera una **parte** en el almacenamiento. + +:::tip Buenas prácticas en ClickHouse +Inserta un gran número de filas por lote: decenas de miles o incluso millones de filas a la vez. +No te preocupes: ClickHouse puede manejar este volumen fácilmente y además te [ahorrará dinero](/best-practices/selecting-an-insert-strategy#batch-inserts-if-synchronous) al enviar menos solicitudes de escritura a tu servicio. +::: + +
+ +Incluso para un ejemplo simple, vamos a insertar más de una fila a la vez: + +```sql +INSERT INTO helloworld.my_first_table (user_id, message, timestamp, metric) VALUES + (101, 'Hello, ClickHouse!', now(), -1.0 ), + (102, 'Insert a lot of rows per batch', yesterday(), 1.41421 ), + (102, 'Sort your data based on your commonly-used queries', today(), 2.718 ), + (101, 'Granules are the smallest chunks of data read', now() + 5, 3.14159 ) +``` + +:::note +Observa que la columna `timestamp` se llena usando diversas funciones de [**Date**](../../sql-reference/data-types/date.md) y [**DateTime**](../../sql-reference/data-types/datetime.md). ClickHouse cuenta con cientos de funciones útiles que puedes [consultar en la sección **Funciones**](/sql-reference/functions/). +::: + +Verifiquemos que haya funcionado: + +```sql +SELECT * FROM helloworld.my_first_table +``` +### Agregar datos usando el cliente de ClickHouse {#add-data-using-the-clickhouse-client} + +También puedes conectarte a tu servicio de ClickHouse Cloud usando una herramienta de línea de comandos llamada [**clickhouse client**](/interfaces/cli). +Haz clic en `Conectar` en el menú izquierdo para acceder a estos detalles. En el diálogo, selecciona `Native` en el menú desplegable: + +clickhouse client connection details +
+ +1. Instala [ClickHouse](/interfaces/cli). + +2. Ejecuta el comando, reemplazando tu hostname, usuario y contraseña: + +```bash +./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \ +--secure --port 9440 \ +--user default \ +--password +``` + +Si ves el indicador con la carita sonriente, ¡ya estás listo para ejecutar consultas! + +```response +:) +``` + +3. Pruébalo ejecutando la siguiente consulta: + +
+ +```sql +SELECT * +FROM helloworld.my_first_table +ORDER BY timestamp +``` + +Observa que la respuesta se muestra en un formato de tabla ordenado: + +```response +┌─user_id─┬─message────────────────────────────────────────────┬───────────timestamp─┬──metric─┐ +│ 102 │ Insert a lot of rows per batch │ 2022-03-21 00:00:00 │ 1.41421 │ +│ 102 │ Sort your data based on your commonly-used queries │ 2022-03-22 00:00:00 │ 2.718 │ +│ 101 │ Hello, ClickHouse! │ 2022-03-22 14:04:09 │ -1 │ +│ 101 │ Granules are the smallest chunks of data read │ 2022-03-22 14:04:14 │ 3.14159 │ +└─────────┴────────────────────────────────────────────────────┴─────────────────────┴─────────┘ + +4 rows in set. Elapsed: 0.008 sec. +``` + +4. Agrega una cláusula [`FORMAT`](../../sql-reference/statements/select/format.md) para especificar uno de los [muchos formatos de salida compatibles con ClickHouse](/interfaces/formats/): + +
+ +```sql +SELECT * +FROM helloworld.my_first_table +ORDER BY timestamp +FORMAT TabSeparated +``` + +En la consulta anterior, la salida se devuelve como valores separados por tabulaciones: + +```response +Query id: 3604df1c-acfd-4117-9c56-f86c69721121 + +102 Insert a lot of rows per batch 2022-03-21 00:00:00 1.41421 +102 Sort your data based on your commonly-used queries 2022-03-22 00:00:00 2.718 +101 Hello, ClickHouse! 2022-03-22 14:04:09 -1 +101 Granules are the smallest chunks of data read 2022-03-22 14:04:14 3.14159 + +4 rows in set. Elapsed: 0.005 sec. +``` + +5. Para salir del `clickhouse client`, ingresa el comando **exit**: + +
+ +```bash +exit +``` + +### Subir un archivo {#upload-a-file} + +Una tarea común al comenzar a trabajar con una base de datos es insertar datos que ya tienes en archivos. Disponemos de algunos datos de ejemplo en línea que puedes insertar, que representan datos de clickstream; incluyen un ID de usuario, una URL visitada y la marca de tiempo del evento. + +Supongamos que tenemos el siguiente texto en un archivo CSV llamado `data.csv`: + +```bash title="data.csv" +102,This is data in a file,2022-02-22 10:43:28,123.45 +101,It is comma-separated,2022-02-23 00:00:00,456.78 +103,Use FORMAT to specify the format,2022-02-21 10:43:30,678.90 +``` + +1. El siguiente comando inserta los datos en `my_first_table`: + +
+ +```bash +./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \ +--secure --port 9440 \ +--user default \ +--password \ +--query='INSERT INTO helloworld.my_first_table FORMAT CSV' < data.csv +``` + +2. Observa que las nuevas filas ahora aparecen en la tabla al consultarla desde la consola SQL: + +
+ +New rows from CSV file +
+ +
+ +## ¿Qué sigue? {#whats-next} + +- Este [Tutorial](/tutorial.md) te guía para insertar 2 millones de filas en una tabla y escribir algunas consultas analíticas. +- Contamos con una lista de [fuentes de datos de ejemplo](/getting-started/index.md) con instrucciones sobre cómo insertarlos. +- Mira nuestro video de 25 minutos sobre [Primeros pasos con ClickHouse](https://clickhouse.com/company/events/getting-started-with-clickhouse/). +- Si tus datos provienen de una fuente externa, consulta nuestra [colección de guías de integración](/integrations/index.mdx) para conectarte a colas de mensajes, bases de datos, pipelines y más. +- Si utilizas una herramienta de visualización UI/BI, revisa las [guías de usuario para conectar una UI a ClickHouse](/integrations/data-visualization). +- La guía de usuario sobre [claves primarias](/guides/best-practices/sparse-primary-indexes.md) incluye todo lo que necesitas saber sobre claves primarias y cómo definirlas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/index.mdx b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/index.mdx new file mode 100644 index 00000000000..be6137ff472 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/index.mdx @@ -0,0 +1,104 @@ +--- +description: 'Empieza a trabajar con ClickHouse en minutos, explora datos de ejemplo y desarrolla tu solución.' +keywords: ['clickhouse', 'quick start'] +sidebar_label: 'Primeros pasos' +sidebar_position: 0 +slug: /get-started/quick-start +title: 'Primeros pasos' +--- + +import {CardSecondary, CardPromotion} from '@clickhouse/click-ui/bundled'; +import Link from '@docusaurus/Link'; + +
+
+
+ + + +
+
+ + + +
+
+
+ + + +
+
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/oss.mdx b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/oss.mdx new file mode 100644 index 00000000000..755de73a497 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/getting-started/quick-start/oss.mdx @@ -0,0 +1,344 @@ +--- +slug: /getting-started/quick-start/oss +sidebar_label: 'ClickHouse OSS' +sidebar_position: 2 +keywords: ['getting started', 'quick start', 'beginner-friendly'] +title: 'Primeros pasos con ClickHouse OSS' +description: 'Primeros pasos con ClickHouse OSS' +show_related_blogs: true +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import {VerticalStepper} from '@clickhouse/click-ui/bundled'; + +# Inicio rápido con ClickHouse OSS (Open Source Software) + +> En este tutorial de inicio rápido, te guiaremos para configurar ClickHouse OSS (Open Source Software) en 8 sencillos pasos. +Descargarás el binario adecuado para tu sistema operativo, aprenderás a ejecutar el servidor de ClickHouse y a usar el cliente de ClickHouse para crear una tabla, insertar datos y ejecutar una consulta para seleccionarlos. + + + +## Descargar ClickHouse {#download-the-binary} + +ClickHouse se ejecuta de forma nativa en Linux, FreeBSD y macOS, y puede funcionar en Windows a través de [WSL](https://learn.microsoft.com/en-us/windows/wsl/about). +La forma más sencilla de descargar ClickHouse localmente es ejecutando el siguiente comando `curl`. Este comando verifica si tu sistema operativo es compatible y descarga el binario adecuado de ClickHouse. + +:::note +Recomendamos ejecutar el comando desde un subdirectorio nuevo y vacío, ya que algunos archivos de configuración se crearán en el directorio donde se encuentre el binario la primera vez que se ejecute el servidor de ClickHouse. +::: + +```bash +curl https://clickhouse.com/ | sh +``` + +Deberías ver: + +``` +Successfully downloaded the ClickHouse binary, you can run it as: + ./clickhouse + +You can also install it: +sudo ./clickhouse install +``` + +En esta etapa, puedes ignorar el aviso para ejecutar el comando `install`. + +:::note +Para usuarios de Mac: Si recibes errores indicando que no se puede verificar al desarrollador del binario, consulta ["Solucionar el error de verificación del desarrollador en macOS"](https://clickhouse.com/docs/knowledgebase/fix-developer-verification-error-in-macos). +::: + + +## Iniciar el servidor + +Ejecuta el siguiente comando para iniciar el servidor de ClickHouse: + +```bash +./clickhouse server +``` + +Deberías ver que la terminal se llena de registros; esto es normal. En ClickHouse, el [nivel de registro predeterminado](https://clickhouse.com/docs/knowledgebase/why_default_logging_verbose) está configurado en `trace` en lugar de `warning`. + +## Iniciar el cliente + +Usa `clickhouse-client` para conectarte a tu servicio de ClickHouse. Abre una nueva terminal, cambia al directorio donde se encuentra el binario `clickhouse` y ejecuta el siguiente comando: + +```bash +./clickhouse client +``` + +Deberías ver una carita sonriente cuando se conecte a tu servicio que se ejecuta en localhost: + +```response +my-host :) +``` + +## Crear una tabla + +Usa `CREATE TABLE` para definir una nueva tabla. Los comandos típicos de DDL en SQL funcionan en ClickHouse con una particularidad: las tablas requieren la cláusula `ENGINE`. +Usa [`MergeTree`](/engines/table-engines/mergetree-family/mergetree) para aprovechar los beneficios de rendimiento de ClickHouse: + + +```sql +CREATE TABLE my_first_table +( + user_id UInt32, + message String, + timestamp DateTime, + metric Float32 +) +ENGINE = MergeTree +PRIMARY KEY (user_id, timestamp) +``` + +## Insertar datos + +Puedes usar el tradicional comando `INSERT INTO TABLE` en ClickHouse, pero es importante entender que cada inserción en una tabla `MergeTree` genera lo que ClickHouse llama una **parte** (**part**) en el almacenamiento. Estas **partes** se combinan en segundo plano automáticamente por ClickHouse. + +En ClickHouse, se recomienda insertar grandes volúmenes de filas a la vez (decenas de miles o incluso millones) para minimizar el número de [**partes**](/parts) que deben fusionarse en el proceso en segundo plano. + +En esta guía, no nos preocuparemos por eso todavía. Ejecuta el siguiente comando para insertar algunas filas de datos en tu tabla: + +```sql +INSERT INTO my_first_table (user_id, message, timestamp, metric) VALUES + (101, 'Hello, ClickHouse!', now(), -1.0 ), + (102, 'Insert a lot of rows per batch', yesterday(), 1.41421 ), + (102, 'Sort your data based on your commonly-used queries', today(), 2.718 ), + (101, 'Granules are the smallest chunks of data read', now() + 5, 3.14159 ) +``` + +## Consulta tu nueva tabla + +Puedes escribir una consulta `SELECT` tal como lo harías en cualquier base de datos SQL: + +```sql +SELECT * +FROM my_first_table +ORDER BY timestamp +``` + +Observa que la respuesta se muestra en un formato de tabla claro y ordenado: + +```text +┌─user_id─┬─message────────────────────────────────────────────┬───────────timestamp─┬──metric─┐ +│ 102 │ Insert a lot of rows per batch │ 2022-03-21 00:00:00 │ 1.41421 │ +│ 102 │ Sort your data based on your commonly-used queries │ 2022-03-22 00:00:00 │ 2.718 │ +│ 101 │ Hello, ClickHouse! │ 2022-03-22 14:04:09 │ -1 │ +│ 101 │ Granules are the smallest chunks of data read │ 2022-03-22 14:04:14 │ 3.14159 │ +└─────────┴────────────────────────────────────────────────────┴─────────────────────┴─────────┘ + +4 rows in set. Elapsed: 0.008 sec. +``` + +## Inserta tus propios datos + +El siguiente paso es cargar tus propios datos en ClickHouse. Contamos con muchas [funciones de tabla](/sql-reference/table-functions/index.md) e [integraciones](/integrations) para la ingesta de datos. +Tenemos algunos ejemplos en las pestañas a continuación, o puedes consultar nuestra página de [Integraciones](/integrations) para ver una lista amplia de tecnologías que se integran con ClickHouse. + + + + + + Usa la [función de tabla `s3`](/sql-reference/table-functions/s3.md) para leer archivos desde S3. + Es una función de tabla, lo que significa que el resultado es una tabla que puede: + + 1. Usarse como fuente de una consulta `SELECT` (permitiéndote ejecutar consultas ad-hoc y dejar los datos en S3). + 2. Insertar la tabla resultante en una tabla `MergeTree` (cuando estés listo para mover tus datos a ClickHouse). + + Una consulta ad-hoc se vería así: + + + ```sql + SELECT + passenger_count, + avg(toFloat32(total_amount)) + FROM s3( + 'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/trips_0.gz', + 'TabSeparatedWithNames' + ) + GROUP BY passenger_count + ORDER BY passenger_count; + ``` + + Mover los datos a una tabla de ClickHouse se realiza de la siguiente manera, donde `nyc_taxi` es una tabla `MergeTree`: + + ```sql + INSERT INTO nyc_taxi + SELECT * FROM s3( + 'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/trips_0.gz', + 'TabSeparatedWithNames' + ) + SETTINGS input_format_allow_errors_num=25000; + ``` + + Consulta nuestra [colección de páginas de documentación de AWS S3](/integrations/data-ingestion/s3/index.md) para obtener más detalles y ejemplos sobre cómo usar S3 con ClickHouse. + +
+
+ + + La [función de tabla `s3`](/sql-reference/table-functions/s3.md) utilizada para leer datos en AWS S3 también funciona con archivos en Google Cloud Storage. + + Por ejemplo: + + ```sql + SELECT + * + FROM s3( + 'https://storage.googleapis.com/my-bucket/trips.parquet', + 'MY_GCS_HMAC_KEY', + 'MY_GCS_HMAC_SECRET_KEY', + 'Parquet' + ) + LIMIT 1000 + ``` + + Encuentra más detalles en la [página de la función de tabla `s3`](/sql-reference/table-functions/s3.md). +
+
+ + + La [función de tabla `url`](/sql-reference/table-functions/url) permite leer archivos accesibles desde la web: + + ```sql + --By default, ClickHouse prevents redirects to protect from SSRF attacks. + --The URL below requires a redirect, so we must set max_http_get_redirects > 0. + SET max_http_get_redirects=10; + + SELECT * + FROM url( + 'http://prod2.publicdata.landregistry.gov.uk.s3-website-eu-west-1.amazonaws.com/pp-complete.csv', + 'CSV' + ); + ``` + + Encuentra más detalles en la [página de la función de tabla `url`](/sql-reference/table-functions/url). +
+
+ + + Usa el [motor de tabla `file`](/sql-reference/table-functions/file) para leer un archivo local. + Para mayor simplicidad, copia el archivo al directorio `user_files` (que se encuentra en el mismo directorio donde descargaste el binario de ClickHouse). + + ```sql + DESCRIBE TABLE file('comments.tsv') + + Query id: 8ca9b2f9-65a2-4982-954a-890de710a336 + + ┌─name──────┬─type────────────────────┐ + │ id │ Nullable(Int64) │ + │ type │ Nullable(String) │ + │ author │ Nullable(String) │ + │ timestamp │ Nullable(DateTime64(9)) │ + │ comment │ Nullable(String) │ + │ children │ Array(Nullable(Int64)) │ + └───────────┴─────────────────────────┘ + ``` + + Observa que ClickHouse infiere los nombres y tipos de datos de tus columnas analizando un gran conjunto de filas. + Si ClickHouse no puede determinar el formato del archivo a partir del nombre, puedes especificarlo como segundo argumento: + + + ```sql + SELECT count() + FROM file( + 'comments.tsv', + 'TabSeparatedWithNames' + ) + ``` + + Consulta la [página de documentación de la función de tabla `file`](/sql-reference/table-functions/file) para obtener más detalles. +
+
+ + + Usa la [función de tabla `postgresql`](/sql-reference/table-functions/postgresql) para leer datos de una tabla en PostgreSQL: + + ```sql + SELECT * + FROM + postgresql( + 'localhost:5432', + 'my_database', + 'my_table', + 'postgresql_user', + 'password') + ; + ``` + + Consulta la [página de documentación de la función de tabla `postgresql`](/sql-reference/table-functions/postgresql) para obtener más detalles. +
+
+ + + Usa la [función de tabla `mysql`](/sql-reference/table-functions/mysql) para leer datos de una tabla en MySQL: + + ```sql + SELECT * + FROM + mysql( + 'localhost:3306', + 'my_database', + 'my_table', + 'mysql_user', + 'password') + ; + ``` + + Consulta la [página de documentación de la función de tabla `mysql`](/sql-reference/table-functions/mysql) para obtener más detalles. +
+
+ + + ClickHouse puede leer datos desde cualquier fuente de datos ODBC o JDBC: + + ```sql + SELECT * + FROM + odbc( + 'DSN=mysqlconn', + 'my_database', + 'my_table' + ); + ``` + + Consulta las páginas de documentación de la [función de tabla `odbc`](/sql-reference/table-functions/odbc) y de la [función de tabla `jdbc`](/sql-reference/table-functions/jdbc) para obtener más detalles. +
+
+ + + Las colas de mensajes pueden transmitir datos a ClickHouse utilizando el motor de tabla correspondiente, incluyendo: + + - **Kafka**: integración con Kafka usando el [motor de tabla `Kafka`](/engines/table-engines/integrations/kafka) + - **Amazon MSK**: integración con [Amazon Managed Streaming for Apache Kafka (MSK)](/integrations/kafka/cloud/amazon-msk/) + - **RabbitMQ**: integración con RabbitMQ usando el [motor de tabla `RabbitMQ`](/engines/table-engines/integrations/rabbitmq) +
+
+ + + ClickHouse cuenta con funciones de tabla para leer datos de las siguientes fuentes: + + - **Hadoop**: integración con Apache Hadoop usando la [función de tabla `hdfs`](/sql-reference/table-functions/hdfs) + - **Hudi**: leer tablas existentes de Apache Hudi en S3 usando la [función de tabla `hudi`](/sql-reference/table-functions/hudi) + - **Iceberg**: leer tablas existentes de Apache Iceberg en S3 usando la [función de tabla `iceberg`](/sql-reference/table-functions/iceberg) + - **DeltaLake**: leer tablas existentes de Delta Lake en S3 usando la [función de tabla `deltaLake`](/sql-reference/table-functions/deltalake) +
+
+ + Consulta nuestra [amplia lista de integraciones de ClickHouse](/integrations) para descubrir cómo conectar tus frameworks y fuentes de datos existentes a ClickHouse. +
+
+
+ +## Explora + +- Consulta nuestra sección de [Conceptos Clave](/managing-data/core-concepts) para aprender los fundamentos de cómo funciona ClickHouse internamente. +- Revisa el [Tutorial Avanzado](tutorial.md), que profundiza en los conceptos y capacidades clave de ClickHouse. +- Continúa tu aprendizaje con nuestros cursos gratuitos bajo demanda en la [ClickHouse Academy](https://learn.clickhouse.com/visitor_class_catalog). +- Tenemos una lista de [fuentes de datos de ejemplo](/getting-started/example-datasets/) con instrucciones sobre cómo insertarlos. +- Si tus datos provienen de una fuente externa, consulta nuestra [colección de guías de integración](/integrations/) para conectarte a colas de mensajes, bases de datos, pipelines y más. +- Si estás utilizando una herramienta de visualización UI/BI, revisa las [guías de usuario para conectar una UI a ClickHouse](/integrations/data-visualization/). +- La guía de usuario sobre [claves primarias](/guides/best-practices/sparse-primary-indexes.md) contiene todo lo que necesitas saber sobre las claves primarias y cómo definirlas. + +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/intro.md b/i18n/es/docusaurus-plugin-content-docs/current/intro.md new file mode 100644 index 00000000000..4fd68d9dc03 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/intro.md @@ -0,0 +1,90 @@ +--- +slug: /intro +sidebar_label: '¿Qué es ClickHouse?' +description: 'ClickHouse® es un sistema de gestión de bases de datos (DBMS) orientado a columnas para el procesamiento analítico en línea (OLAP). Está disponible tanto como software de código abierto como en una oferta en la nube.' +title: '¿Qué es ClickHouse?' +--- + +import column_example from '@site/static/images/column-oriented-example-query.png'; +import row_orientated from '@site/static/images/row-oriented.gif'; +import column_orientated from '@site/static/images/column-oriented.gif'; +import Image from '@theme/IdealImage'; + +ClickHouse® es un sistema de gestión de bases de datos (DBMS) orientado a columnas para el procesamiento analítico en línea (OLAP). Está disponible tanto como [software de código abierto](https://github.com/ClickHouse/ClickHouse) como en una [oferta en la nube](https://clickhouse.com/cloud). + +## ¿Qué es la analítica? {#what-are-analytics} + +La analítica, también conocida como OLAP (Online Analytical Processing), se refiere a consultas SQL con cálculos complejos (por ejemplo, agregaciones, procesamiento de cadenas, operaciones aritméticas) sobre conjuntos de datos masivos. + +A diferencia de las consultas transaccionales (o OLTP, Online Transaction Processing), que leen y escriben solo unas pocas filas por consulta y, por lo tanto, se completan en milisegundos, las consultas analíticas procesan rutinariamente miles de millones o billones de filas. + +En muchos casos de uso, [las consultas analíticas deben ser “en tiempo real”](https://clickhouse.com/engineering-resources/what-is-real-time-analytics), es decir, devolver un resultado en menos de un segundo. + +## Almacenamiento orientado a filas vs. orientado a columnas {#row-oriented-vs-column-oriented-storage} + +Un nivel de rendimiento como este solo puede alcanzarse con la orientación de datos adecuada. + +Las bases de datos almacenan la información ya sea de forma [orientada a filas o a columnas](https://clickhouse.com/engineering-resources/what-is-columnar-database). + +En una base de datos orientada a filas, las filas consecutivas de una tabla se almacenan secuencialmente una tras otra. Este formato permite recuperar filas rápidamente, ya que los valores de las columnas de cada fila se guardan juntos. + +ClickHouse es una base de datos orientada a columnas. En este tipo de sistemas, las tablas se almacenan como una colección de columnas, es decir, los valores de cada columna se guardan secuencialmente uno tras otro. Este formato hace que sea más difícil reconstruir filas individuales (ya que ahora existen “saltos” entre los valores de las filas), pero las operaciones por columna, como filtros o agregaciones, se vuelven mucho más rápidas que en una base de datos orientada a filas. + +La diferencia se entiende mejor con un ejemplo de consulta ejecutada sobre 100 millones de filas de [datos reales y anonimizados de analítica web](/getting-started/example-datasets/metrica): + +```sql +SELECT MobilePhoneModel, COUNT() AS c +FROM metrica.hits +WHERE + RegionID = 229 + AND EventDate >= '2013-07-01' + AND EventDate <= '2013-07-31' + AND MobilePhone != 0 + AND MobilePhoneModel not in ['', 'iPad'] +GROUP BY MobilePhoneModel +ORDER BY c DESC +LIMIT 8; +``` + +Puedes ejecutar esta consulta en el [ClickHouse SQL Playground](https://sql.clickhouse.com?query=U0VMRUNUIE1vYmlsZVBob25lTW9kZWwsIENPVU5UKCkgQVMgYyAKRlJPTSBtZXRyaWNhLmhpdHMgCldIRVJFIAogICAgICBSZWdpb25JRCA9IDIyOSAKICBBTkQgRXZlbnREYXRlID49ICcyMDEzLTA3LTAxJyAKICBBTkQgRXZlbnREYXRlIDw9ICcyMDEzLTA3LTMxJyAKICBBTkQgTW9iaWxlUGhvbmUgIT0gMCAKICBBTkQgTW9iaWxlUGhvbmVNb2RlbCBub3QgaW4gWycnLCAnaVBhZCddIApHUk9VUCBCWSBNb2JpbGVQaG9uZU1vZGVsCk9SREVSIEJZIGMgREVTQyAKTElNSVQgODs&chart=eyJ0eXBlIjoicGllIiwiY29uZmlnIjp7InhheGlzIjoiTW9iaWxlUGhvbmVNb2RlbCIsInlheGlzIjoiYyJ9fQ&run_query=true), que selecciona y filtra [solo unas pocas de entre más de 100](https://sql.clickhouse.com/?query=U0VMRUNUIG5hbWUKRlJPTSBzeXN0ZW0uY29sdW1ucwpXSEVSRSBkYXRhYmFzZSA9ICdtZXRyaWNhJyBBTkQgdGFibGUgPSAnaGl0cyc7&tab=results&run_query=true) columnas existentes, devolviendo el resultado en milisegundos: + +Example query in a column-oriented database + +Como puedes ver en la sección de estadísticas del diagrama anterior, la consulta procesó 100 millones de filas en 92 milisegundos, con un rendimiento de aproximadamente más de 1.000 millones de filas por segundo o algo menos de 7 GB de datos transferidos por segundo. + +**SGBD (DBMS) orientado a filas** + +En una base de datos orientada a filas, aunque la consulta solo necesite unas pocas columnas, el sistema debe cargar también las demás, ya que los datos se almacenan en fragmentos de tamaño fijo llamados [bloques](https://en.wikipedia.org/wiki/Block_(data_storage)) (por ejemplo, 4 KB u 8 KB). Los bloques son la unidad mínima que se lee del disco a la memoria. Así, incluso si solo se requiere una parte de un bloque, este se carga completo, tanto por la forma en que funciona el disco como por las reglas del sistema de archivos. + +Row-oriented database structure + +**SGBD (DBMS) orientado a columnas** + +Dado que los valores de cada columna se almacenan de forma secuencial en el disco, la consulta anterior no carga datos innecesarios. El almacenamiento y la transferencia por bloques, alineados con el patrón de acceso de las consultas analíticas, permiten leer únicamente las columnas requeridas, evitando E/S innecesaria sobre datos no utilizados. Esto resulta mucho más rápido que el almacenamiento por filas, donde se leen filas completas que incluyen columnas irrelevantes: + +Column-oriented database structure + +## Replicación e integridad de los datos {#data-replication-and-integrity} + +ClickHouse emplea un esquema de replicación asíncrona multi-maestro para asegurar el almacenamiento redundante de los datos en varios nodos. Una vez que la información se escribe en cualquier réplica disponible, las demás la reciben en segundo plano. El sistema garantiza que todas las réplicas conserven datos idénticos y permite la recuperación automática tras la mayoría de fallos, o semiautomática en escenarios más complejos. + +## Control de acceso basado en roles {#role-based-access-control} + +ClickHouse implementa la gestión de cuentas de usuario mediante consultas SQL y permite configurar el control de acceso basado en roles, similar a lo que se encuentra en el estándar ANSI SQL y en los sistemas populares de gestión de bases de datos relacionales. + +## Compatibilidad con SQL {#sql-support} + +ClickHouse admite un [lenguaje de consultas declarativo basado en SQL](/sql-reference) que, en muchos casos, es idéntico al estándar ANSI SQL. Las cláusulas de consulta admitidas incluyen [GROUP BY](/sql-reference/statements/select/group-by), [ORDER BY](/sql-reference/statements/select/order-by), subconsultas en [FROM](/sql-reference/statements/select/from), cláusula [JOIN](/sql-reference/statements/select/join), operador [IN](/sql-reference/operators/in), [funciones de ventana](/sql-reference/window-functions) y subconsultas escalares. + + +## Cálculo aproximado {#approximate-calculation} + +ClickHouse permite sacrificar un poco de precisión a cambio de un mayor rendimiento. Por ejemplo, algunas funciones de agregación calculan de manera aproximada el conteo de valores distintos, la mediana y los cuantiles. También es posible ejecutar consultas sobre una muestra de los datos para obtener resultados aproximados en menos tiempo. Además, las agregaciones pueden limitarse a un número reducido de claves en lugar de procesarlas todas. Según el grado de sesgo en la distribución de las claves, este enfoque puede ofrecer resultados suficientemente precisos utilizando muchos menos recursos que un cálculo exacto. + +## Algoritmos adaptativos de join {#adaptive-join-algorithms} + +ClickHouse elige el algoritmo de *join* de forma adaptativa: comienza con *hash joins* rápidos y recurre a *merge joins* si hay más de una tabla grande. + +## Rendimiento superior en consultas {#superior-query-performance} + +ClickHouse es bien conocido por ofrecer un rendimiento de consultas extremadamente rápido. Para conocer por qué ClickHouse es tan rápido, consulta la guía [¿Por qué ClickHouse es rápido?](/concepts/why-clickhouse-is-so-fast.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/introduction-index.md b/i18n/es/docusaurus-plugin-content-docs/current/introduction-index.md new file mode 100644 index 00000000000..f333a568783 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/introduction-index.md @@ -0,0 +1,18 @@ +--- +slug: '/introduction-clickhouse' +title: 'Introducción' +description: 'Página de inicio de la introducción' +pagination_next: null +--- + + + +¡Bienvenido a ClickHouse! Consulta las páginas a continuación para aprender cómo empezar a trabajar con ClickHouse, el almacén de datos en tiempo real y base de datos de código abierto más rápido y eficiente en el uso de recursos. + +| Página | Descripción | +|-----------------------------------------------------|--------------------------------------------------------------------------------| +| [¿Qué es ClickHouse?](about-us/intro.mdx) | Conoce más sobre qué es ClickHouse. | +| [Inicio rápido](getting-started/quick-start/index.mdx) | Guía de inicio rápido para que puedas empezar a trabajar en muy poco tiempo. | +| [Tutorial avanzado](tutorial.md) | ¿Ya dominas lo básico? Hagamos algo más interesante. | +| [Instalación](getting-started/install/install.mdx) | Aprende las distintas formas en que puedes instalar ClickHouse. | +| [Modos de despliegue](deployment-modes.md) | Esta guía explora las cuatro formas principales de desplegar y usar ClickHouse.| diff --git a/i18n/es/docusaurus-plugin-content-docs/current/tutorial.md b/i18n/es/docusaurus-plugin-content-docs/current/tutorial.md new file mode 100644 index 00000000000..5775a711a85 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/tutorial.md @@ -0,0 +1,538 @@ +--- +slug: /tutorial +sidebar_label: 'Tutorial avanzado' +title: 'Tutorial avanzado' +description: 'Aprende a ingestar y consultar datos en ClickHouse usando una fuente de datos de ejemplo de taxis de la ciudad de Nueva York..' +sidebar_position: 0.5 +keywords: ['clickhouse', 'install', 'tutorial', 'dictionary', 'dictionaries', 'example', 'advanced', 'taxi', 'new york', 'nyc'] +show_related_blogs: true +--- + +# Tutorial avanzado + +## Descripción general {#overview} + +Aprende a ingestar y consultar datos en ClickHouse utilizando la fuente de datos de ejemplo de taxis de la ciudad de Nueva York. + +### Requisitos {#prerequisites} + +Necesitas tener acceso a un servicio ClickHouse en funcionamiento para completar este tutorial. Para obtener instrucciones, consulta la guía de [Inicio rápido](/get-started/quick-start). + + + +## Crear una nueva tabla {#create-a-new-table} + +La fuente de datos de taxis de la ciudad de Nueva York contiene información sobre millones de viajes, incluyendo columnas como monto de la propina, peajes, tipo de pago y más. Crea una tabla para almacenar estos datos. + +1. Conéctate a la consola SQL: + - En ClickHouse Cloud, selecciona un servicio del menú desplegable y luego selecciona **SQL Console** en el menú de navegación izquierdo. + - En ClickHouse autogestionado, conéctate a la consola SQL en `https://_hostname_:8443/play`. Consulta con tu administrador de ClickHouse para obtener los detalles. + +2. Crea la siguiente tabla `trips` en la base de datos `default`: + ```sql + CREATE TABLE trips + ( + `trip_id` UInt32, + `vendor_id` Enum8('1' = 1, '2' = 2, '3' = 3, '4' = 4, 'CMT' = 5, 'VTS' = 6, 'DDS' = 7, 'B02512' = 10, 'B02598' = 11, 'B02617' = 12, 'B02682' = 13, 'B02764' = 14, '' = 15), + `pickup_date` Date, + `pickup_datetime` DateTime, + `dropoff_date` Date, + `dropoff_datetime` DateTime, + `store_and_fwd_flag` UInt8, + `rate_code_id` UInt8, + `pickup_longitude` Float64, + `pickup_latitude` Float64, + `dropoff_longitude` Float64, + `dropoff_latitude` Float64, + `passenger_count` UInt8, + `trip_distance` Float64, + `fare_amount` Float32, + `extra` Float32, + `mta_tax` Float32, + `tip_amount` Float32, + `tolls_amount` Float32, + `ehail_fee` Float32, + `improvement_surcharge` Float32, + `total_amount` Float32, + `payment_type` Enum8('UNK' = 0, 'CSH' = 1, 'CRE' = 2, 'NOC' = 3, 'DIS' = 4), + `trip_type` UInt8, + `pickup` FixedString(25), + `dropoff` FixedString(25), + `cab_type` Enum8('yellow' = 1, 'green' = 2, 'uber' = 3), + `pickup_nyct2010_gid` Int8, + `pickup_ctlabel` Float32, + `pickup_borocode` Int8, + `pickup_ct2010` String, + `pickup_boroct2010` String, + `pickup_cdeligibil` String, + `pickup_ntacode` FixedString(4), + `pickup_ntaname` String, + `pickup_puma` UInt16, + `dropoff_nyct2010_gid` UInt8, + `dropoff_ctlabel` Float32, + `dropoff_borocode` UInt8, + `dropoff_ct2010` String, + `dropoff_boroct2010` String, + `dropoff_cdeligibil` String, + `dropoff_ntacode` FixedString(4), + `dropoff_ntaname` String, + `dropoff_puma` UInt16 + ) + ENGINE = MergeTree + PARTITION BY toYYYYMM(pickup_date) + ORDER BY pickup_datetime; + ``` + +## Agregar la fuente de datos {#add-the-dataset} + +Ahora que has creado la tabla, agrega los datos de taxis de la ciudad de Nueva York desde archivos CSV en S3. + +1. El siguiente comando inserta aproximadamente 2,000,000 de filas en tu tabla `trips` desde dos archivos diferentes en S3: + +`trips_1.tsv.gz` and `trips_2.tsv.gz`: + + ```sql + INSERT INTO trips + SELECT * FROM s3( + 'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/trips_{1..2}.gz', + 'TabSeparatedWithNames', " + `trip_id` UInt32, + `vendor_id` Enum8('1' = 1, '2' = 2, '3' = 3, '4' = 4, 'CMT' = 5, 'VTS' = 6, 'DDS' = 7, 'B02512' = 10, 'B02598' = 11, 'B02617' = 12, 'B02682' = 13, 'B02764' = 14, '' = 15), + `pickup_date` Date, + `pickup_datetime` DateTime, + `dropoff_date` Date, + `dropoff_datetime` DateTime, + `store_and_fwd_flag` UInt8, + `rate_code_id` UInt8, + `pickup_longitude` Float64, + `pickup_latitude` Float64, + `dropoff_longitude` Float64, + `dropoff_latitude` Float64, + `passenger_count` UInt8, + `trip_distance` Float64, + `fare_amount` Float32, + `extra` Float32, + `mta_tax` Float32, + `tip_amount` Float32, + `tolls_amount` Float32, + `ehail_fee` Float32, + `improvement_surcharge` Float32, + `total_amount` Float32, + `payment_type` Enum8('UNK' = 0, 'CSH' = 1, 'CRE' = 2, 'NOC' = 3, 'DIS' = 4), + `trip_type` UInt8, + `pickup` FixedString(25), + `dropoff` FixedString(25), + `cab_type` Enum8('yellow' = 1, 'green' = 2, 'uber' = 3), + `pickup_nyct2010_gid` Int8, + `pickup_ctlabel` Float32, + `pickup_borocode` Int8, + `pickup_ct2010` String, + `pickup_boroct2010` String, + `pickup_cdeligibil` String, + `pickup_ntacode` FixedString(4), + `pickup_ntaname` String, + `pickup_puma` UInt16, + `dropoff_nyct2010_gid` UInt8, + `dropoff_ctlabel` Float32, + `dropoff_borocode` UInt8, + `dropoff_ct2010` String, + `dropoff_boroct2010` String, + `dropoff_cdeligibil` String, + `dropoff_ntacode` FixedString(4), + `dropoff_ntaname` String, + `dropoff_puma` UInt16 + ") SETTINGS input_format_try_infer_datetimes = 0 + ``` +2. Espera a que el `INSERT` termine. Puede tardar un momento, ya que se deben descargar aproximadamente 150 MB de datos. + +3. Cuando la inserción haya finalizado, verifica que se realizó correctamente: + ```sql + SELECT count() FROM trips + ``` + + Esta consulta debería devolver 1,999,657 filas. + +## Analizar los datos {#analyze-the-data} + +Ejecuta algunas consultas para analizar los datos. Explora los siguientes ejemplos o prueba tu propia consulta SQL. + +- Calcula el monto promedio de propina: + ```sql + SELECT round(avg(tip_amount), 2) FROM trips + ``` +
+ Expected output +

+ + ```response + ┌─round(avg(tip_amount), 2)─┐ + │ 1.68 │ + └───────────────────────────┘ + ``` + +

+
+ +- Calcula el costo promedio según el número de pasajeros: + + ```sql + SELECT + passenger_count, + ceil(avg(total_amount),2) AS average_total_amount + FROM trips + GROUP BY passenger_count + ``` + +
+ Expected output +

+ + The `passenger_count` ranges from 0 to 9: + + ```response + ┌─passenger_count─┬─average_total_amount─┐ + │ 0 │ 22.69 │ + │ 1 │ 15.97 │ + │ 2 │ 17.15 │ + │ 3 │ 16.76 │ + │ 4 │ 17.33 │ + │ 5 │ 16.35 │ + │ 6 │ 16.04 │ + │ 7 │ 59.8 │ + │ 8 │ 36.41 │ + │ 9 │ 9.81 │ + └─────────────────┴──────────────────────┘ + ``` + +

+
+ +- Calcula el número diario de recogidas por vecindario: + + ```sql + SELECT + pickup_date, + pickup_ntaname, + SUM(1) AS number_of_trips + FROM trips + GROUP BY pickup_date, pickup_ntaname + ORDER BY pickup_date ASC + ``` + +
+ Expected output +

+ + ```response + ┌─pickup_date─┬─pickup_ntaname───────────────────────────────────────────┬─number_of_trips─┐ + │ 2015-07-01 │ Brooklyn Heights-Cobble Hill │ 13 │ + │ 2015-07-01 │ Old Astoria │ 5 │ + │ 2015-07-01 │ Flushing │ 1 │ + │ 2015-07-01 │ Yorkville │ 378 │ + │ 2015-07-01 │ Gramercy │ 344 │ + │ 2015-07-01 │ Fordham South │ 2 │ + │ 2015-07-01 │ SoHo-TriBeCa-Civic Center-Little Italy │ 621 │ + │ 2015-07-01 │ Park Slope-Gowanus │ 29 │ + │ 2015-07-01 │ Bushwick South │ 5 │ + ``` + +

+
+ +- Calcula la duración de cada viaje en minutos y luego agrupa los resultados por duración del viaje: + + ```sql + SELECT + avg(tip_amount) AS avg_tip, + avg(fare_amount) AS avg_fare, + avg(passenger_count) AS avg_passenger, + count() AS count, + truncate(date_diff('second', pickup_datetime, dropoff_datetime)/60) as trip_minutes + FROM trips + WHERE trip_minutes > 0 + GROUP BY trip_minutes + ORDER BY trip_minutes DESC + ``` +
+ Expected output +

+ + ```response + ┌──────────────avg_tip─┬───────────avg_fare─┬──────avg_passenger─┬──count─┬─trip_minutes─┐ + │ 1.9600000381469727 │ 8 │ 1 │ 1 │ 27511 │ + │ 0 │ 12 │ 2 │ 1 │ 27500 │ + │ 0.542166673981895 │ 19.716666666666665 │ 1.9166666666666667 │ 60 │ 1439 │ + │ 0.902499997522682 │ 11.270625001192093 │ 1.95625 │ 160 │ 1438 │ + │ 0.9715789457909146 │ 13.646616541353383 │ 2.0526315789473686 │ 133 │ 1437 │ + │ 0.9682692398245518 │ 14.134615384615385 │ 2.076923076923077 │ 104 │ 1436 │ + │ 1.1022105210705808 │ 13.778947368421052 │ 2.042105263157895 │ 95 │ 1435 │ + ``` +

+
+ +- Muestra el número de recogidas en cada barrio desglosado por hora del día: + + ```sql + SELECT + pickup_ntaname, + toHour(pickup_datetime) as pickup_hour, + SUM(1) AS pickups + FROM trips + WHERE pickup_ntaname != '' + GROUP BY pickup_ntaname, pickup_hour + ORDER BY pickup_ntaname, pickup_hour + ``` +
+ Expected output +

+ + ```response + ┌─pickup_ntaname───────────────────────────────────────────┬─pickup_hour─┬─pickups─┐ + │ Airport │ 0 │ 3509 │ + │ Airport │ 1 │ 1184 │ + │ Airport │ 2 │ 401 │ + │ Airport │ 3 │ 152 │ + │ Airport │ 4 │ 213 │ + │ Airport │ 5 │ 955 │ + │ Airport │ 6 │ 2161 │ + │ Airport │ 7 │ 3013 │ + │ Airport │ 8 │ 3601 │ + │ Airport │ 9 │ 3792 │ + │ Airport │ 10 │ 4546 │ + │ Airport │ 11 │ 4659 │ + │ Airport │ 12 │ 4621 │ + │ Airport │ 13 │ 5348 │ + │ Airport │ 14 │ 5889 │ + │ Airport │ 15 │ 6505 │ + │ Airport │ 16 │ 6119 │ + │ Airport │ 17 │ 6341 │ + │ Airport │ 18 │ 6173 │ + │ Airport │ 19 │ 6329 │ + │ Airport │ 20 │ 6271 │ + │ Airport │ 21 │ 6649 │ + │ Airport │ 22 │ 6356 │ + │ Airport │ 23 │ 6016 │ + │ Allerton-Pelham Gardens │ 4 │ 1 │ + │ Allerton-Pelham Gardens │ 6 │ 1 │ + │ Allerton-Pelham Gardens │ 7 │ 1 │ + │ Allerton-Pelham Gardens │ 9 │ 5 │ + │ Allerton-Pelham Gardens │ 10 │ 3 │ + │ Allerton-Pelham Gardens │ 15 │ 1 │ + │ Allerton-Pelham Gardens │ 20 │ 2 │ + │ Allerton-Pelham Gardens │ 23 │ 1 │ + │ Annadale-Huguenot-Prince's Bay-Eltingville │ 23 │ 1 │ + │ Arden Heights │ 11 │ 1 │ + ``` + +

+
+ +7. Recupera los viajes hacia los aeropuertos LaGuardia o JFK: + + ```sql + SELECT + pickup_datetime, + dropoff_datetime, + total_amount, + pickup_nyct2010_gid, + dropoff_nyct2010_gid, + CASE + WHEN dropoff_nyct2010_gid = 138 THEN 'LGA' + WHEN dropoff_nyct2010_gid = 132 THEN 'JFK' + END AS airport_code, + EXTRACT(YEAR FROM pickup_datetime) AS year, + EXTRACT(DAY FROM pickup_datetime) AS day, + EXTRACT(HOUR FROM pickup_datetime) AS hour + FROM trips + WHERE dropoff_nyct2010_gid IN (132, 138) + ORDER BY pickup_datetime + ``` + +
+ Expected output +

+ + ```response + ┌─────pickup_datetime─┬────dropoff_datetime─┬─total_amount─┬─pickup_nyct2010_gid─┬─dropoff_nyct2010_gid─┬─airport_code─┬─year─┬─day─┬─hour─┐ + │ 2015-07-01 00:04:14 │ 2015-07-01 00:15:29 │ 13.3 │ -34 │ 132 │ JFK │ 2015 │ 1 │ 0 │ + │ 2015-07-01 00:09:42 │ 2015-07-01 00:12:55 │ 6.8 │ 50 │ 138 │ LGA │ 2015 │ 1 │ 0 │ + │ 2015-07-01 00:23:04 │ 2015-07-01 00:24:39 │ 4.8 │ -125 │ 132 │ JFK │ 2015 │ 1 │ 0 │ + │ 2015-07-01 00:27:51 │ 2015-07-01 00:39:02 │ 14.72 │ -101 │ 138 │ LGA │ 2015 │ 1 │ 0 │ + │ 2015-07-01 00:32:03 │ 2015-07-01 00:55:39 │ 39.34 │ 48 │ 138 │ LGA │ 2015 │ 1 │ 0 │ + │ 2015-07-01 00:34:12 │ 2015-07-01 00:40:48 │ 9.95 │ -93 │ 132 │ JFK │ 2015 │ 1 │ 0 │ + │ 2015-07-01 00:38:26 │ 2015-07-01 00:49:00 │ 13.3 │ -11 │ 138 │ LGA │ 2015 │ 1 │ 0 │ + │ 2015-07-01 00:41:48 │ 2015-07-01 00:44:45 │ 6.3 │ -94 │ 132 │ JFK │ 2015 │ 1 │ 0 │ + │ 2015-07-01 01:06:18 │ 2015-07-01 01:14:43 │ 11.76 │ 37 │ 132 │ JFK │ 2015 │ 1 │ 1 │ + ``` + +

+
+ +## Crear un diccionario {#create-a-dictionary} + +Un diccionario es un mapeo de pares clave-valor almacenado en memoria. Para más detalles, consulta [Dictionaries](/sql-reference/dictionaries/index.md). + +Crea un diccionario asociado a una tabla en tu servicio ClickHouse. + +La tabla y el diccionario se basan en un archivo CSV que contiene una fila por cada vecindario de Nueva York. + +Los vecindarios se asignan a los nombres de los cinco distritos de Nueva York (Bronx, Brooklyn, Manhattan, Queens y Staten Island), así como al Aeropuerto de Newark (EWR). + +Aquí tienes un extracto del archivo CSV que estás usando, en formato de tabla. La columna `LocationID` en el archivo se mapea a las columnas `pickup_nyct2010_gid` y `dropoff_nyct2010_gid` en tu tabla `trips`: + + + | LocationID | Borough | Zone | service_zone | + | ----------- | ----------- | ----------- | ----------- | + | 1 | EWR | Newark Airport | EWR | + | 2 | Queens | Jamaica Bay | Boro Zone | + | 3 | Bronx | Allerton/Pelham Gardens | Boro Zone | + | 4 | Manhattan | Alphabet City | Yellow Zone | + | 5 | Staten Island | Arden Heights | Boro Zone | + +1. Ejecuta el siguiente comando SQL, que crea un diccionario llamado `taxi_zone_dictionary` y lo llena a partir del archivo CSV en S3. +La URL del archivo es `https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/taxi_zone_lookup.csv`: + + ```sql + CREATE DICTIONARY taxi_zone_dictionary + ( + `LocationID` UInt16 DEFAULT 0, + `Borough` String, + `Zone` String, + `service_zone` String + ) + PRIMARY KEY LocationID + SOURCE(HTTP(URL 'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/taxi_zone_lookup.csv' FORMAT 'CSVWithNames')) + LIFETIME(MIN 0 MAX 0) + LAYOUT(HASHED_ARRAY()) + ``` + +:::note +Configurar `LIFETIME` en 0 desactiva las actualizaciones automáticas para evitar tráfico innecesario hacia nuestro bucket de S3. En otros casos, podrías configurarlo de manera diferente. Para más detalles, consulta [Actualizar los datos de un diccionario usando LIFETIME](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime). +::: + + +3. Verifica que haya funcionado. La siguiente consulta debería devolver 265 filas, es decir, una fila por cada barrio: + + ```sql + SELECT * FROM taxi_zone_dictionary + ``` + +4. Usa la función `dictGet` ([o sus variaciones](./sql-reference/functions/ext-dict-functions.md)) para obtener un valor de un diccionario. Debes pasar el nombre del diccionario, el valor que deseas recuperar y la clave (en nuestro ejemplo, la columna `LocationID` del diccionario `taxi_zone_dictionary`). + + Por ejemplo, la siguiente consulta devuelve el `Borough` cuyo `LocationID` es 132, que corresponde al aeropuerto JFK: + + ```sql + SELECT dictGet('taxi_zone_dictionary', 'Borough', 132) + ``` + + JFK se encuentra en Queens. Observa que el tiempo para recuperar el valor es prácticamente 0: + + ```response + ┌─dictGet('taxi_zone_dictionary', 'Borough', 132)─┐ + │ Queens │ + └─────────────────────────────────────────────────┘ + + 1 rows in set. Elapsed: 0.004 sec. + ``` + +5. Usa la función `dictHas` para verificar si una clave está presente en el diccionario. Por ejemplo, la siguiente consulta devuelve `1` (que representa "true" en ClickHouse): + + ```sql + SELECT dictHas('taxi_zone_dictionary', 132) + ``` + +6. La siguiente consulta devuelve `0` porque 4567 no es un valor de `LocationID` en el diccionario: + + ```sql + SELECT dictHas('taxi_zone_dictionary', 4567) + ``` + +7. Usa la función `dictGet` para recuperar el nombre de un `borough` en una consulta. Por ejemplo: + + ```sql + SELECT + count(1) AS total, + dictGetOrDefault('taxi_zone_dictionary','Borough', toUInt64(pickup_nyct2010_gid), 'Unknown') AS borough_name + FROM trips + WHERE dropoff_nyct2010_gid = 132 OR dropoff_nyct2010_gid = 138 + GROUP BY borough_name + ORDER BY total DESC + ``` + + Esta consulta suma el número de viajes de taxi por `borough` que terminan en los aeropuertos LaGuardia o JFK. El resultado se verá así, y notarás que hay varios viajes donde el barrio de origen es desconocido: + + ```response + ┌─total─┬─borough_name──┐ + │ 23683 │ Unknown │ + │ 7053 │ Manhattan │ + │ 6828 │ Brooklyn │ + │ 4458 │ Queens │ + │ 2670 │ Bronx │ + │ 554 │ Staten Island │ + │ 53 │ EWR │ + └───────┴───────────────┘ + + 7 rows in set. Elapsed: 0.019 sec. Processed 2.00 million rows, 4.00 MB (105.70 million rows/s., 211.40 MB/s.) + ``` + +## Realizar un JOIN {#perform-a-join} + +Escribe algunas consultas que unan la `taxi_zone_dictionary` con tu tabla `trips`. + +1. Comienza con un `JOIN` simple que funcione de manera similar a la consulta de aeropuertos anterior: + ```sql + SELECT + count(1) AS total, + Borough + FROM trips + JOIN taxi_zone_dictionary ON toUInt64(trips.pickup_nyct2010_gid) = taxi_zone_dictionary.LocationID + WHERE dropoff_nyct2010_gid = 132 OR dropoff_nyct2010_gid = 138 + GROUP BY Borough + ORDER BY total DESC + ``` + + La respuesta es idéntica a la consulta `dictGet`: + + ```response + ┌─total─┬─Borough───────┐ + │ 7053 │ Manhattan │ + │ 6828 │ Brooklyn │ + │ 4458 │ Queens │ + │ 2670 │ Bronx │ + │ 554 │ Staten Island │ + │ 53 │ EWR │ + └───────┴───────────────┘ + + 6 rows in set. Elapsed: 0.034 sec. Processed 2.00 million rows, 4.00 MB (59.14 million rows/s., 118.29 MB/s.) + ``` + + :::note + Observa que el resultado de la consulta `JOIN` anterior es el mismo que el de la consulta anterior que utilizaba `dictGetOrDefault` (excepto que los valores `Unknown` no están incluidos). Detrás de escena, ClickHouse en realidad está llamando a la función `dictGet` para el diccionario `taxi_zone_dictionary`, pero la sintaxis `JOIN` resulta más familiar para los desarrolladores de SQL. + ::: + +2. Esta consulta devuelve las filas correspondientes a los 1000 viajes con mayor propina, y luego realiza un **inner join** de cada fila con el diccionario: + + ```sql + SELECT * + FROM trips + JOIN taxi_zone_dictionary + ON trips.dropoff_nyct2010_gid = taxi_zone_dictionary.LocationID + WHERE tip_amount > 0 + ORDER BY tip_amount DESC + LIMIT 1000 + ``` + :::note + Generalmente, se evita usar `SELECT *` con frecuencia en ClickHouse. Solo se deben recuperar las columnas que realmente necesitas. Sin embargo, esta consulta es más lenta para fines del ejemplo. + ::: + + +
+ +## Próximos pasos {#next-steps} + +Aprende más sobre ClickHouse con la siguiente documentación: + +- [Introducción a los índices primarios en ClickHouse](./guides/best-practices/sparse-primary-indexes.md): Aprende cómo ClickHouse utiliza índices primarios dispersos para localizar eficientemente los datos relevantes durante las consultas. +- [Integrar una fuente de datos externa](/integrations/index.mdx): Revisa las opciones de integración de fuentes de datos, incluyendo archivos, Kafka, PostgreSQL, pipelines de datos y muchas más. +- [Visualizar datos en ClickHouse](./integrations/data-visualization/index.md): Conecta tu herramienta UI/BI favorita a ClickHouse. +- [Referencia SQL](./sql-reference/index.md): Explora las funciones SQL disponibles en ClickHouse para transformar, procesar y analizar datos. diff --git a/i18n/es/docusaurus-theme-classic/footer.json b/i18n/es/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000000..af6629d8700 --- /dev/null +++ b/i18n/es/docusaurus-theme-classic/footer.json @@ -0,0 +1,22 @@ +{ + "link.item.label.Trademark": { + "message": "Trademark", + "description": "The label of footer link with label=Trademark linking to https://clickhouse.com/legal/trademark-policy" + }, + "link.item.label.Privacy": { + "message": "Privacy", + "description": "The label of footer link with label=Privacy linking to https://clickhouse.com/legal/privacy-policy" + }, + "link.item.label.Security": { + "message": "Security", + "description": "The label of footer link with label=Security linking to https://trust.clickhouse.com/" + }, + "link.item.label.Terms of Service": { + "message": "Terms of Service", + "description": "The label of footer link with label=Terms of Service linking to https://clickhouse.com/legal/agreements/terms-of-service" + }, + "copyright": { + "message": "© 2016–2025 ClickHouse, Inc.", + "description": "The footer copyright" + } +} diff --git a/i18n/es/docusaurus-theme-classic/navbar.json b/i18n/es/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000000..b7d9fea27ae --- /dev/null +++ b/i18n/es/docusaurus-theme-classic/navbar.json @@ -0,0 +1,6 @@ +{ + "logo.alt": { + "message": "ClickHouse", + "description": "The alt text of navbar logo" + } +} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/use_materialized_views.md b/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/use_materialized_views.md index 83f0955cb2d..0b1663b58cf 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/use_materialized_views.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/use_materialized_views.md @@ -30,7 +30,7 @@ ClickHouse 支持两种类型的物化视图:[**增量**](/materialized-view/i ## 何时使用增量物化视图 {#when-to-use-incremental-materialized-views} -增量物化视图通常是首选,因为它们在源表接收新数据时会自动实时更新。它们支持所有聚合函数,特别适用于对单个表的聚合。通过在插入时增量计算结果,查询运行在显著较小的数据子集上,使这些视图能够轻松扩展到宠物字节级别的数据。在大多数情况下,它们对整体集群性能不会产生显著影响。 +增量物化视图通常是首选,因为它们在源表接收新数据时会自动实时更新。它们支持所有聚合函数,特别适用于对单个表的聚合。通过在插入时增量计算结果,查询运行在显著较小的数据子集上,使这些视图能够轻松扩展到PB级别级别的数据。在大多数情况下,它们对整体集群性能不会产生显著影响。 使用增量物化视图的情况: