{"id":36634,"date":"2019-10-31T22:12:47","date_gmt":"2019-10-31T19:12:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1\/"},"modified":"2019-10-31T22:12:47","modified_gmt":"2019-10-31T19:12:47","slug":"globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","title":{"rendered":"Globales: herramientas potentes para el almacenamiento de datos. \u00c1rboles. Parte 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/263791\/\"><img decoding=\"async\" alt=\"Globales: herramientas potentes para el almacenamiento de datos. \u00c1rboles. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/83b8e36bff66516e2c331d75d8434e13.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex> Las verdaderas espadas de la base de datos, los globales, son bien conocidos, pero a\u00fan muy pocos saben c\u00f3mo usarlos de manera efectiva o siquiera dominan esta superarma.<\/p>\n<p>Si se utilizan los globales para resolver tareas en las que realmente son buenos, se pueden lograr resultados excepcionales. Ya sea en rendimiento o en la simplificaci\u00f3n de la soluci\u00f3n de tareas (<noindex><a rel=\"nofollow\" href=\"http:\/\/www.intersystems.ru\/press\/2013\/gaia-mission-1yr-later.html\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/intersystems.ru\/cache\/technology\/techguide\/cache_tech-guide_01.html\">2<\/a><\/noindex>).<\/p>\n<p>Los globales son una forma especial de almacenar y procesar datos, muy diferente de las tablas en SQL. Aparecieron en 1966 en el lenguaje <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/MUMPS\">M(UMPS)<\/a><\/noindex> (una evoluci\u00f3n de \u2014 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.intersystems.com\/our-products\/cache\/tech-guide\/chapter-3\/#cache-objectscript\">Cach\u00e9 ObjectScript<\/a><\/noindex>, luego COS) en bases de datos m\u00e9dicas y todav\u00eda se utilizan all\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/VistA\">activamente<\/a><\/noindex>, as\u00ed como en algunas otras \u00e1reas donde se requiere fiabilidad y alto rendimiento: finanzas, trading, etc.<\/p>\n<p>Los globales en los sistemas de gesti\u00f3n de bases de datos modernos soportan transacciones, registro, replicaci\u00f3n, particionamiento. Es decir, sobre ellos se pueden construir sistemas modernos, fiables, distribuidos y r\u00e1pidos.<\/p>\n<p>Los globales no te limitan a los confines del modelo relacional. Te dan libertad para desarrollar estructuras de datos optimizadas para tareas espec\u00edficas. Para muchas aplicaciones, el uso razonable de los globales puede ser una aut\u00e9ntica arma secreta, proporcionando un rendimiento con el que los desarrolladores de aplicaciones relacionales solo pueden so\u00f1ar.<\/p>\n<p>Los globales como forma de almacenamiento de datos se pueden utilizar en muchos lenguajes de programaci\u00f3n modernos, tanto de alto como de bajo nivel. Por lo tanto, en este art\u00edculo me centrar\u00e9 espec\u00edficamente en los globales, y no en el lenguaje del que alguna vez surgieron.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>2. C\u00f3mo funcionan los globales<\/h2>\n<p>\nPrimero, pongamos en claro c\u00f3mo funcionan los globales y cu\u00e1les son sus puntos fuertes. Se puede mirar a los globales desde diferentes puntos de vista. En esta parte del art\u00edculo, los veremos como \u00e1rboles. O como almacenes de datos jer\u00e1rquicos.<\/p>\n<p>Simplificando, un global es un array persistente. Un array que se guarda autom\u00e1ticamente en el disco.<br \/>\nEs dif\u00edcil imaginar algo m\u00e1s simple para almacenar datos. En c\u00f3digo (en lenguajes COS\/M) solo se diferencia de un array asociativo com\u00fan por el s\u00edmbolo <b>^<\/b> antes del nombre.<\/p>\n<p>Para almacenar datos en un global no es necesario aprender el lenguaje de consultas SQL, sus comandos son muy simples. Se pueden aprender en una hora. <\/p>\n<p>Comencemos con el ejemplo m\u00e1s simple. Un \u00e1rbol de un solo nivel con 2 ramas. Los ejemplos est\u00e1n escritos en COS.<\/p>\n<p><img decoding=\"async\" alt=\"Globales: herramientas potentes para el almacenamiento de datos. \u00c1rboles. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/5e1503716eac1eaadf49fcf3651e7fbf.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<pre><code class=\"bash\">Establecer ^a(\"+7926X\") = \"John Sidorov\"\nEstablecer ^a(\"+7916Y\") = \"Sergey Smith\"<\/code><\/pre>\n<p><br clear=\"left\"\/><br \/>\nAl insertar informaci\u00f3n en global (comando Set), ocurren autom\u00e1ticamente 3 cosas:<\/p>\n<ol>\n<li><b>Guardado de datos en el disco.<\/b>\n<\/li>\n<li><b>Indexaci\u00f3n.<\/b> Lo que est\u00e1 entre par\u00e9ntesis act\u00faa como clave (en la literatura angl\u00f3fona, se llama \u00absubscript\u00bb), y a la derecha del igual est\u00e1 el valor (\u00abnode value\u00bb).\n<\/li>\n<li><b>Ordenaci\u00f3n.<\/b> Los datos se ordenan por clave. En adelante, al recorrer el array, el primer elemento ser\u00e1 \u00abSergey Smith\u00bb y el segundo \u00abJohn Sidorov\u00bb. Al obtener la lista de usuarios del global, la base no pierde tiempo ordenando. Adem\u00e1s, se puede solicitar la salida de una lista ordenada comenzando desde cualquier clave, incluso inexistente (la salida comenzar\u00e1 desde la primera clave real que siga a la inexistente).\n<\/li>\n<\/ol>\n<p>\nTodas estas operaciones ocurren incre\u00edblemente r\u00e1pido. En mi computadora personal, obten\u00eda valores de hasta 750,000 inserciones\/segundo en un solo proceso. En procesadores multin\u00facleo, los valores pueden alcanzar <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/257501\/\">decenas de millones<\/a><\/noindex> inserciones\/segundo.<\/p>\n<p>Por supuesto, la velocidad de inserci\u00f3n por s\u00ed sola dice poco. Por ejemplo, se puede escribir informaci\u00f3n muy r\u00e1pidamente en archivos de texto, as\u00ed es como <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/post\/176345\/#comment_6220633\">seg\u00fan rumores,<\/a><\/noindex> funciona el procesamiento de Visa. Pero en el caso de los globals, obtenemos un almacenamiento indexado estructurado, con el que se puede trabajar de forma r\u00e1pida y sencilla m\u00e1s adelante.<\/p>\n<p><img decoding=\"async\" alt=\"Globales: herramientas potentes para el almacenamiento de datos. \u00c1rboles. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/ce447c81cf3a7d570518711c7103dbf0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<ul>\n<li><b>La mayor fortaleza de los globals es la velocidad de inserci\u00f3n de nuevos nodos.<\/b>\n<\/li>\n<li><b>Los datos en el global siempre est\u00e1n indexados. Su recorrido, tanto a un nivel como hacia abajo en el \u00e1rbol, siempre es r\u00e1pido.<\/b><\/li>\n<\/ul>\n<p>\nAgreguemos al global unas cuantas ramas de segundo y tercer nivel.<\/p>\n<pre><code class=\"bash\">Establecer ^a(\"+7926X\", \"ciudad\") = \"Mosc\u00fa\"\nEstablecer ^a(\"+7926X\", \"ciudad\", \"calle\") = \"Plaza Req\"\nEstablecer ^a(\"+7926X\", \"edad\") = 25\nEstablecer ^a(\"+7916Y\", \"ciudad\") = \"Londres\"\nEstablecer ^a(\"+7916Y\", \"ciudad\", \"calle\") = \"Calle Baker\"\nEstablecer ^a(\"+7916Y\", \"edad\") = 36<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Globales: herramientas potentes para el almacenamiento de datos. \u00c1rboles. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/47244a6d96b589ada53ba9f53b2b3a2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs obvio que sobre la base de los globals se pueden construir \u00e1rboles multidimensionales. Adem\u00e1s, el acceso a cualquier nodo es pr\u00e1cticamente instant\u00e1neo gracias al autoindexado al insertar. Y en cualquier nivel del \u00e1rbol, todas las ramas est\u00e1n ordenadas por clave.<\/p>\n<p>Como se puede ver, la informaci\u00f3n se puede almacenar tanto en clave como en valor. La longitud total de la clave (la suma de las longitudes de todos los \u00edndices) puede alcanzar <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/ens20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=GGBL_structure#GGBL_structure_maxsubscrlen\">511 bytes<\/a><\/noindex>, mientras que los valores <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=GORIENT_appx_limits_long_string\">3.6 MB<\/a><\/noindex> para Cach\u00e9. El n\u00famero de niveles en el \u00e1rbol (el n\u00famero de dimensiones) es 31.<\/p>\n<p>Otro aspecto interesante. Se puede construir un \u00e1rbol sin definir los valores de los nodos de los niveles superiores.<\/p>\n<p><img decoding=\"async\" alt=\"Globales: herramientas potentes para el almacenamiento de datos. \u00c1rboles. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/f37f81a87a13adb13bbd3583dda06928.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<pre><code class=\"bash\">Establecer ^b(\"a\", \"b\", \"c\", \"d\") = 1\nEstablecer ^b(\"a\", \"b\", \"c\", \"e\") = 2\nEstablecer ^b(\"a\", \"b\", \"f\", \"g\") = 3<\/code><\/pre>\n<p>\nLos nodos vac\u00edos son aquellos a los que no se les ha asignado un valor.<br clear=\"left\"\/><br \/>\nPara comprender mejor los globales, comparemoslos con otros \u00e1rboles: con \u00e1rboles frutales y con \u00e1rboles de sistemas de archivos.<\/p>\n<p>Compararemos los \u00e1rboles en los globales con las estructuras jer\u00e1rquicas que nos son m\u00e1s familiares: con los \u00e1rboles comunes que crecen en jardines y campos, as\u00ed como con los sistemas de archivos.<\/p>\n<p><img decoding=\"async\" alt=\"Globales: herramientas potentes para el almacenamiento de datos. \u00c1rboles. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/c6b00c70867c3eb2e2d8233e0fc6b6c6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nComo podemos ver en los \u00e1rboles frutales, las hojas y los frutos se encuentran solo en las puntas de las ramas.<br \/>\nEn los sistemas de archivos, la informaci\u00f3n se almacena \u00fanicamente en las puntas de las ramas, que son los nombres completos de los archivos.<\/p>\n<p>Aqu\u00ed est\u00e1 la estructura de datos de un global.<\/p>\n<p><img decoding=\"async\" alt=\"Globales: herramientas potentes para el almacenamiento de datos. \u00c1rboles. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/288a5d964b4bf859944c0a0ecd000bc7.jpg\" style=\"display:block;margin: 0 auto;\" \/>Diferencias:<\/p>\n<ol>\n<li><b>Nodos internos:<\/b> la informaci\u00f3n en un global puede almacenarse en cada nodo, y no solo en las puntas de las ramas.<\/li>\n<li><b>Nodos externos:<\/b> en un global, se deben definir obligatoriamente valores en las puntas de las ramas, mientras que en los \u00e1rboles de sistemas de archivos y frutales, no es necesario.<\/li>\n<\/ol>\n<p><br clear=\"left\"\/><br \/>\nEn algunos nodos internos, se puede decir que la estructura de un global es un superconjunto de la estructura de los \u00e1rboles de nombres en los sistemas de archivos y los \u00e1rboles frutales. Es decir, es m\u00e1s flexible.<\/p>\n<p>En general, un global representa <b>un \u00e1rbol ordenado con la capacidad de almacenar datos en cada nodo.<\/b>.<\/p>\n<p>Para comprender mejor el funcionamiento de los globales, imaginemos qu\u00e9 pasar\u00eda si los creadores de sistemas de archivos usaran un enfoque similar al de los globales para almacenar informaci\u00f3n.<\/p>\n<ol>\n<li>Al eliminar un solo archivo en un directorio, se eliminar\u00eda autom\u00e1ticamente el directorio, as\u00ed como todos los directorios superiores que contengan \u00fanicamente el directorio reci\u00e9n eliminado.\n<\/li>\n<li>La necesidad de directorios desaparecer\u00eda. Simplemente existir\u00edan archivos con subarchivos y archivos sin subarchivos. Si se compara con un \u00e1rbol normal, cada rama se convertir\u00eda en un fruto.\n<p><img decoding=\"async\" alt=\"Globales: herramientas potentes para el almacenamiento de datos. \u00c1rboles. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/8e5e5681c191869da23c32da6e6d8d7b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\n<\/li>\n<li>Cosas como los archivos README.txt probablemente habr\u00edan desaparecido. Todo lo que se necesita decir sobre el contenido de un directorio podr\u00eda estar escrito en el propio archivo del directorio. En el espacio de rutas, el nombre de un archivo es indistinguible del nombre de un directorio, por lo que se podr\u00edan usar solo archivos.\n<\/li>\n<li>La velocidad de eliminaci\u00f3n de directorios con subdirectorios y archivos aumentar\u00eda dr\u00e1sticamente. Muchas veces en Habr, han aparecido art\u00edculos sobre lo lento y dif\u00edcil que es eliminar millones de archivos peque\u00f1os.<noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/post\/152193\/\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/post\/157613\/\">2<\/a><\/noindex>). Sin embargo, si se crea un sistema de pseudoarchivos a nivel global, eso tomar\u00e1 segundos o fracciones de segundo. Mientras probaba la eliminaci\u00f3n de sub\u00e1rboles en mi computadora de casa, elimin\u00e9 de 96 a 341 millones de nodos de un \u00e1rbol de dos niveles en un HDD (no SSD) en 1 segundo. Cabe mencionar que se trata de eliminar una parte del \u00e1rbol, no simplemente de un archivo completo con globales.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Globales: herramientas potentes para el almacenamiento de datos. \u00c1rboles. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/7f700eeafb3e552923139024f38c6661.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>La eliminaci\u00f3n de sub\u00e1rboles es otra gran ventaja de los globales. No se necesita recursi\u00f3n para esto.<\/b> Esto ocurre incre\u00edblemente r\u00e1pido.<\/p>\n<p>En nuestro \u00e1rbol, esto podr\u00eda hacerse con el comando <b>Eliminar<\/b>.<\/p>\n<pre><code class=\"bash\">Eliminar ^a(\"+7926X\")<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Globales: herramientas potentes para el almacenamiento de datos. \u00c1rboles. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/89d5b69c6e80832c6865824782d9754d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPara entender mejor qu\u00e9 acciones tenemos disponibles sobre los globales, proporcionar\u00e9 una breve tabla.<\/p>\n<p>Comandos y funciones principales para trabajar con globales en COS<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_cset\">Establecer<\/a><\/noindex><br \/>\nEstablecer ramas hasta el nodo (si a\u00fan no est\u00e1n definidas) y el valor del nodo<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_cmerge\">Fusionar<\/a><\/noindex><br \/>\nCopia de sub\u00e1rbol<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_ckill\">Eliminar<\/a><\/noindex><br \/>\nEliminaci\u00f3n de sub\u00e1rbol<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_czkill\">ZKill<\/a><\/noindex><br \/>\nEliminaci\u00f3n del valor de un nodo espec\u00edfico. El sub\u00e1rbol que sale del nodo no se toca<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fquery\">$Query<\/a><\/noindex><br \/>\nRecorrido completo del \u00e1rbol con descenso profundo<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_forder\">$Order<\/a><\/noindex><br \/>\nRecorrido de ramas de un nodo espec\u00edfico<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fdata\">$Data<\/a><\/noindex><br \/>\nVerificaci\u00f3n de si el nodo est\u00e1 definido<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fincrement\">$Increment<\/a><\/noindex><br \/>\nIncremento at\u00f3mico del valor del nodo. Para evitar lecturas y escrituras, para ACID. Recientemente se recomienda cambiar a <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/263793\/\">$Sequence<\/a><\/noindex><\/p>\n<p>Gracias por su atenci\u00f3n, estamos listos para responder a sus preguntas.<\/p>\n<p><b>Descargo de responsabilidad<\/b>: <i>Este art\u00edculo y mis comentarios al respecto son mi opini\u00f3n personal y no representan la posici\u00f3n oficial de la corporaci\u00f3n InterSystems.<\/i><\/p>\n<p><i><b>Continuaci\u00f3n<\/b> <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/264173\/\">Globales: herramientas potentes para el almacenamiento de datos. \u00c1rbol\u044b. Parte 2<\/a><\/noindex>. Aprender\u00e1 qu\u00e9 tipos de datos se pueden mostrar en los globales y en qu\u00e9 tareas brindan la mayor ventaja.<\/i><br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/intersystems\/blog\/263791\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u043d\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0435 \u0443\u043c\u0435\u044e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u0432\u043b\u0430\u0434\u0435\u044e\u0442 \u044d\u0442\u0438\u043c \u0441\u0443\u043f\u0435\u0440\u043e\u0440\u0443\u0436\u0438\u0435\u043c. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0442\u0435\u0445 \u0437\u0430\u0434\u0430\u0447, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0432\u044b\u0434\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u041b\u0438\u0431\u043e \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043b\u0438\u0431\u043e \u0432 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 (1, 2). \u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27434,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36634","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0435\u0440\u0435\u0432\u044c\u044f. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:12:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:12:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Globales: espadas m\u00e1gicas para almacenar datos. \u00c1rboles. Parte 1 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0435\u0440\u0435\u0432\u044c\u044f. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:12:47+00:00","article:modified_time":"2019-10-31T19:12:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36634","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:13:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:41:52","updated":"2026-01-22 04:13:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/36634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=36634"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/36634\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/27434"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=36634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=36634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=36634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}