{"id":87609,"date":"2020-07-09T01:42:11","date_gmt":"2020-07-08T23:42:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum"},"modified":"2020-07-09T01:42:11","modified_gmt":"2020-07-08T23:42:11","slug":"kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","title":{"rendered":"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hace un tiempo, nos enfrentamos a la cuesti\u00f3n de elegir una herramienta ETL para trabajar con BigData. La soluci\u00f3n previamente utilizada, Informatica BDM, no cumpl\u00eda con nuestras expectativas debido a su funcionalidad limitada. Su uso se redujo a un marco para ejecutar comandos spark-submit. En el mercado no hab\u00eda muchos an\u00e1logos capaces de manejar el volumen de datos con el que lidiamos a diario. Finalmente, elegimos Ab Initio. Durante las demostraciones piloto, el producto mostr\u00f3 una velocidad de procesamiento de datos muy alta. Casi no hay informaci\u00f3n sobre Ab Initio en ruso, por lo que decidimos compartir nuestra experiencia en Habr.<\/p>\n<p>Ab Initio cuenta con numerosas transformaciones cl\u00e1sicas y peculiares, cuyo c\u00f3digo puede ser ampliado mediante su propio lenguaje PDL. Para peque\u00f1as empresas, esta poderosa herramienta probablemente ser\u00e1 excesiva, y la mayor\u00eda de sus capacidades pueden resultar costosas y poco utilizadas. Pero si tus escalas se asemejan a las de Sberbank, Ab Initio puede ser de inter\u00e9s para ti. <\/p>\n<p>Ayuda al negocio a acumular conocimientos a nivel global y a desarrollar un ecosistema, al mismo tiempo que permite al desarrollador mejorar sus habilidades en ETL, adquirir conocimientos en shell, proporciona la oportunidad de aprender el lenguaje PDL, ofrece una representaci\u00f3n visual de los procesos de carga y simplifica el desarrollo gracias a la abundancia de componentes funcionales.<\/p>\n<p>En esta publicaci\u00f3n, hablar\u00e9 sobre las capacidades de Ab Initio y proporcionar\u00e9 caracter\u00edsticas comparativas de su funcionamiento con Hive y GreenPlum.<\/p>\n<ul>\n<li>Descripci\u00f3n del marco MDW y el trabajo para su ajuste bajo GreenPlum.<\/li>\n<li>Caracter\u00edsticas comparativas del rendimiento de Ab Initio en su trabajo con Hive y GreenPlum.<\/li>\n<li>Funcionamiento de Ab Initio con GreenPlum en modo Near Real Time.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nLa funcionalidad de este producto es muy amplia y requiere tiempo para su estudio. Sin embargo, con las habilidades adecuadas y la correcta configuraci\u00f3n del rendimiento, los resultados del procesamiento de datos son realmente impresionantes. El uso de Ab Initio puede ofrecer al desarrollador una experiencia interesante. Es una nueva visi\u00f3n del desarrollo ETL, un h\u00edbrido entre un entorno visual y el desarrollo de cargas en un lenguaje parecido a scripts.<\/p>\n<p>Las empresas desarrollan sus ecosistemas y esta herramienta resulta m\u00e1s oportuna que nunca para ellos. Con Ab Initio, se puede acumular conocimiento sobre el negocio actual y utilizar ese conocimiento para expandir los negocios existentes y abrir nuevos. Las alternativas a Ab Initio incluyen entornos de desarrollo visual como Informatica BDM y entornos no visuales como Apache Spark.<\/p>\n<h3>Descripci\u00f3n de Ab Initio<\/h3>\n<p>\nAb Initio, al igual que otras herramientas ETL, es un conjunto de productos.<\/p>\n<p><img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/c467fe1e8455805075856967b577f8b7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAb Initio GDE (Graphical Development Environment) es el entorno para el desarrollador donde configura las transformaciones de datos y las conecta mediante flujos de datos representados por flechas. Un conjunto de esas transformaciones se llama grafo:<\/p>\n<p><img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/7b0c19a82ae8b461a9bd85117555e106.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLas conexiones de entrada y salida de los componentes funcionales son puertos y contienen campos calculados dentro de las transformaciones. Varios grafos conectados por flujos en forma de flechas en el orden en que se ejecutan se llaman plan.<\/p>\n<p>Existen varios cientos de componentes funcionales, lo que es muy significativo. Muchos de ellos son de especializaci\u00f3n estrecha. Las capacidades de las transformaciones cl\u00e1sicas en Ab Initio son m\u00e1s amplias que en otras herramientas ETL. Por ejemplo, Join tiene varias salidas. Adem\u00e1s del resultado de la fusi\u00f3n de conjuntos de datos, se pueden obtener entradas de los conjuntos de datos de entrada que no han podido fusionarse. Tambi\u00e9n se pueden obtener rechazos, errores y un registro del funcionamiento de la transformaci\u00f3n que se puede leer en este mismo grafo como un archivo de texto y procesar con otras transformaciones:<\/p>\n<p><img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/c7d70879daad364a3d4aa41a0a1b738d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nO, por ejemplo, se puede materializar el receptor de datos en forma de tabla y en este mismo grafo leer datos desde ella.<\/p>\n<p>Existen transformaciones originales. Por ejemplo, la transformaci\u00f3n Scan tiene funcionalidad similar a la de funciones anal\u00edticas. Hay transformaciones con nombres significativos: Create Data, Read Excel, Normalize, Sort within Groups, Run Program, Run SQL, Join with DB, entre otras. Los grafos pueden utilizar par\u00e1metros de tiempo de ejecuci\u00f3n, lo que incluye la posibilidad de pasar par\u00e1metros del sistema operativo o a \u00e9l. Los archivos con un conjunto listo de par\u00e1metros a pasar al grafo se llaman parameter sets (psets).<\/p>\n<p>Como corresponde, Ab Initio GDE tiene su propio repositorio, denominado EME (Enterprise Meta Environment). Los desarrolladores tienen la posibilidad de trabajar con versiones locales del c\u00f3digo y realizar check-in de sus desarrollos en el repositorio central.<\/p>\n<p>Es posible hacer clic en cualquier conexi\u00f3n de transformaci\u00f3n del gr\u00e1fico durante o despu\u00e9s de la ejecuci\u00f3n y ver los datos que pasaron entre estas transformaciones:<\/p>\n<p><img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/a674507b2cd25b980cb862bda2e10cbe.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTambi\u00e9n hay la opci\u00f3n de hacer clic en cualquier flujo y ver los detalles de seguimiento: cu\u00e1ntas paralelas estaban trabajando en la transformaci\u00f3n, cu\u00e1ntas filas y bytes se cargaron en cada una de las paralelas:<\/p>\n<p><img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/6188d17bebe756ee59e6956f9a40ec43.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs posible dividir la ejecuci\u00f3n del gr\u00e1fico en fases y marcar qu\u00e9 transformaciones deben ejecutarse primero (en la fase cero), las siguientes en la primera fase, las siguientes en la segunda fase, etc.<\/p>\n<p>Para cada transformaci\u00f3n se puede elegir un llamado layout (donde se ejecutar\u00e1): sin paralelas o en flujos paralelos, cuya cantidad se puede especificar. Al mismo tiempo, los archivos temporales que crea Ab Initio al trabajar con las transformaciones se pueden almacenar tanto en el sistema de archivos <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/es\/server\/dts-los-angeles\/\"   title=\"servidores\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3635\">servidores<\/a>, como en HDFS.<\/p>\n<p>En cada transformaci\u00f3n basada en la plantilla por defecto se puede crear un script propio en el lenguaje PDL, que se asemeja un poco a shell. <\/p>\n<p>A trav\u00e9s del lenguaje PDL se pueden ampliar las funcionalidades de las transformaciones y, en particular, se pueden generar din\u00e1micamente (durante la ejecuci\u00f3n) fragmentos de c\u00f3digo arbitrarios en funci\u00f3n de los par\u00e1metros de tiempo de ejecuci\u00f3n.<\/p>\n<p>Adem\u00e1s, Ab Initio tiene una buena integraci\u00f3n con el sistema operativo a trav\u00e9s de shell. En particular, en Sberbank se utiliza linux ksh. Se pueden intercambiar variables con shell y usarlas como par\u00e1metros de los gr\u00e1ficos. Se puede invocar la ejecuci\u00f3n de gr\u00e1ficos de Ab Initio desde shell y administrar Ab Initio.<\/p>\n<p>Adem\u00e1s de Ab Initio GDE, se incluyen muchos otros productos en la entrega. Existe un sistema propio llamado Co&gt;Operation System que pretende ser un sistema operativo. Hay Control&gt;Center, donde se pueden programar y monitorear los flujos de carga. Existen productos para realizar desarrollo en un nivel m\u00e1s primitivo que lo que permite Ab Initio GDE.<\/p>\n<h3>Descripci\u00f3n del marco MDW y el trabajo para su ajuste bajo GreenPlum.<\/h3>\n<p>\nJunto con sus productos, el proveedor entrega el producto MDW (Metadata Driven Warehouse), que es un configurador de gr\u00e1ficos dise\u00f1ado para ayudar en tareas t\u00edpicas de llenado de almacenes de datos o data vaults.<\/p>\n<p>Contiene analizadores de metadatos personalizados (espec\u00edficos del proyecto) y generadores de c\u00f3digo listos para usar 'out of the box'.<\/p>\n<p><img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/0842ecb9550f369875103ccb23cdf121.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMDW recibe un modelo de datos, un archivo de configuraci\u00f3n para la conexi\u00f3n a la base de datos (Oracle, Teradata o Hive) y algunas otras configuraciones. La parte espec\u00edfica del proyecto, por ejemplo, despliega el modelo en la base de datos. La parte est\u00e1ndar del producto genera gr\u00e1ficos y archivos de configuraci\u00f3n para ellos al cargar datos en las tablas del modelo. Se crean gr\u00e1ficos (y psets) para varios modos de trabajo inicial e incremental para la actualizaci\u00f3n de entidades.<\/p>\n<p>En los casos de Hive y RDBMS se generan gr\u00e1ficos diferentes para la actualizaci\u00f3n de datos inicial e incremental.<\/p>\n<p>En el caso de Hive, los datos delta recibidos se combinan mediante Ab Initio Join con los datos que estaban en la tabla antes de la actualizaci\u00f3n. Los cargadores de datos en MDW (tanto en Hive como en RDBMS) no solo insertan nuevos datos de la delta, sino que tambi\u00e9n cierran los per\u00edodos de validez de los datos, bas\u00e1ndose en las claves primarias de las cuales se recibi\u00f3 la delta. Adem\u00e1s, es necesario reescribir de nuevo la parte de los datos que no ha cambiado. Pero esto es necesario, ya que Hive no tiene operaciones de eliminaci\u00f3n o actualizaci\u00f3n.<\/p>\n<p><img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/36b6dd7c4d45727ad7d7aa1183fdd5fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn el caso de RDBMS, los gr\u00e1ficos para la actualizaci\u00f3n incremental de datos son m\u00e1s \u00f3ptimos, porque los RDBMS tienen capacidades reales de actualizaci\u00f3n.<\/p>\n<p><img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/b62ac222bed575a60b632b13e012f603.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa delta recibida se carga en una tabla intermedia en la base de datos. Despu\u00e9s, se conecta la delta con los datos que estaban en la tabla antes de la actualizaci\u00f3n. Esto se hace a trav\u00e9s de SQL mediante una consulta SQL generada. A continuaci\u00f3n, usando los comandos SQL de eliminar e insertar en la tabla objetivo, se inserta nueva informaci\u00f3n desde la delta y se cierran los per\u00edodos de validez de los datos, bas\u00e1ndose en las claves primarias de las que se recibi\u00f3 la delta. <br \/>\nNo es necesario reescribir los datos que no han cambiado.<\/p>\n<p>As\u00ed, llegamos a la conclusi\u00f3n de que en el caso de Hive, MDW debe optar por reescribir toda la tabla, porque Hive no tiene una funci\u00f3n de actualizaci\u00f3n. No se ha encontrado una mejor soluci\u00f3n que la reescritura total de los datos al actualizar. En el caso de RDBMS, por el contrario, los creadores del producto decidieron confiar la conexi\u00f3n y actualizaci\u00f3n de las tablas al uso de SQL.<\/p>\n<p>Para el proyecto en Sberbank, creamos una nueva implementaci\u00f3n reutilizable del cargador de bases de datos para GreenPlum. Esto se bas\u00f3 en la versi\u00f3n generada por MDW para Teradata. Teradata, y no Oracle, result\u00f3 ser la opci\u00f3n m\u00e1s adecuada, ya que tambi\u00e9n es un sistema MPP. Los m\u00e9todos de trabajo, as\u00ed como la sintaxis de Teradata y GreenPlum resultaron ser similares.<\/p>\n<p>Ejemplos de diferencias cr\u00edticas para MDW entre diferentes RDBMS son los siguientes. En GreenPlum, a diferencia de Teradata, al crear tablas es necesario escribir la cl\u00e1usula<\/p>\n<pre><code class=\"sql\">distributed by<\/code><\/pre>\n<p>\nEn Teradata se escribe<\/p>\n<pre><code class=\"sql\">delete &lt;table&gt; todo<\/code><\/pre>\n<p>\n, mientras que en GreenPlum se escribe<\/p>\n<pre><code class=\"sql\">eliminar de &lt;table&gt;<\/code><\/pre>\n<p>\nEn Oracle, para optimizaci\u00f3n se escribe<\/p>\n<pre><code class=\"sql\">delete from t where rowid in ()<\/code><\/pre>\n<p>\n, mientras que en Teradata y GreenPlum se escribe<\/p>\n<pre><code class=\"sql\">delete from t where exists (select * from delta where delta.pk=t.pk)<\/code><\/pre>\n<p>\nAdem\u00e1s, cabe se\u00f1alar que para el funcionamiento de Ab Initio con GreenPlum fue necesario instalar el cliente de GreenPlum en todos los nodos del cl\u00faster de Ab Initio. Esto se debe a que nos conectamos a GreenPlum simult\u00e1neamente desde todos los nodos de nuestro cl\u00faster. Para que la lectura desde GreenPlum fuera paralela y cada hilo paralelo de Ab Initio leyera su porci\u00f3n de datos desde GreenPlum, tuvimos que incluir en la secci\u00f3n \u00abwhere\u00bb de las consultas SQL una construcci\u00f3n que Ab Initio entiende<\/p>\n<pre><code class=\"sql\">where ABLOCAL()<\/code><\/pre>\n<p>\ny definir el valor de esta construcci\u00f3n, especificando al transformador que lee de la base de datos el par\u00e1metro<\/p>\n<pre><code class=\"sql\">ablocal_expr=\u00abstring_concat(&quot;mod(t.&quot;, string_filter_out(&quot;{$TABLE_KEY}&quot;,&quot;{}&quot;), &quot;,&quot;, (decimal(3))(number_of_partitions()),&quot;)=&quot;, (decimal(3))(this_partition()))\u00bb<\/code><\/pre>\n<p>\n, que se compila en algo como<\/p>\n<pre><code class=\"sql\">mod(sk,10)=3<\/code><\/pre>\n<p>\n, por lo que se tiene que indicar a GreenPlum un filtro expl\u00edcito para cada partici\u00f3n. Para otras bases de datos (Teradata, Oracle), Ab Initio puede realizar esta paralelizaci\u00f3n autom\u00e1ticamente.<\/p>\n<h3>Caracter\u00edsticas comparativas del rendimiento de Ab Initio en su trabajo con Hive y GreenPlum.<\/h3>\n<p>\nEn Sberbank se realiz\u00f3 un experimento para comparar el rendimiento de los gr\u00e1ficos generados por MDW en relaci\u00f3n con Hive y GreenPlum. En el marco del experimento, en el caso de Hive hab\u00eda 5 nodos en el mismo cl\u00faster que Ab Initio, mientras que en el caso de GreenPlum hab\u00eda 4 nodos en un cl\u00faster separado. Es decir, Hive ten\u00eda cierta ventaja sobre GreenPlum en t\u00e9rminos de hardware.<\/p>\n<p>Se consideraron dos pares de gr\u00e1ficos que realizan la misma tarea de actualizaci\u00f3n de datos en Hive y en GreenPlum. Se ejecutaron gr\u00e1ficos generados por el configurador de MDW:<\/p>\n<ul>\n<li>carga inicial + carga incremental de datos generados aleatoriamente en la tabla de Hive<\/li>\n<li>carga inicial + carga incremental de datos generados aleatoriamente en una tabla equivalente de GreenPlum<\/li>\n<\/ul>\n<p>\nEn ambos casos (Hive y GreenPlum), se ejecutaron cargas en 10 flujos paralelos en el mismo cl\u00faster de Ab Initio. Los datos intermedios para los c\u00e1lculos de Ab Initio se almacenaron en HDFS (en t\u00e9rminos de Ab Initio se utiliz\u00f3 el dise\u00f1o MFS usando HDFS). Una l\u00ednea de datos generados aleatoriamente ocupaba en ambos casos 200 bytes.<\/p>\n<p>El resultado fue el siguiente:<\/p>\n<p><b>Hive:<\/b><\/p>\n<p><b>Carga inicial en Hive<\/b><\/p>\n<p>Filas insertadas<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Duraci\u00f3n de la carga inicial<br \/>\nen segundos<br \/>\n41<br \/>\n203<br \/>\n1 601<\/p>\n<p><b>Carga incremental en Hive<\/b><\/p>\n<p>Cantidad de filas que hab\u00eda en la<br \/>\ntabla de destino al inicio del experimento<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>N\u00famero de filas delta aplicadas a<br \/>\nla tabla de destino durante el experimento<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Duraci\u00f3n de la carga incremental<br \/>\nen segundos<br \/>\n88<br \/>\n299<br \/>\n<b>2 541<\/b><\/p>\n<p>\n<b>GreenPlum:<\/b><\/p>\n<p><b>Carga inicial en GreenPlum<\/b><\/p>\n<p>Filas insertadas<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Duraci\u00f3n de la carga inicial<br \/>\nen segundos<br \/>\n72<br \/>\n360<br \/>\n3 631<\/p>\n<p><b>Carga incremental en GreenPlum<\/b><\/p>\n<p>Cantidad de filas que hab\u00eda en la<br \/>\ntabla de destino al inicio del experimento<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>N\u00famero de filas delta aplicadas a<br \/>\nla tabla de destino durante el experimento<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Duraci\u00f3n de la carga incremental<br \/>\nen segundos<br \/>\n159<br \/>\n199<br \/>\n<b>321<\/b><\/p>\n<p>\nObservamos que la velocidad de la carga inicial, tanto en Hive como en GreenPlum, depende linealmente del volumen de datos y, debido a un mejor hardware, es un poco m\u00e1s r\u00e1pida en Hive que en GreenPlum.<\/p>\n<p>La carga incremental en Hive tambi\u00e9n depende linealmente del volumen de los datos previamente cargados en la tabla de destino y se lleva a cabo de manera bastante lenta a medida que crece el volumen. Esto se debe a la necesidad de reescribir completamente la tabla de destino. Esto significa que aplicar peque\u00f1os cambios a tablas enormes no es una buena opci\u00f3n de uso para Hive.<\/p>\n<p>En cambio, la carga incremental en GreenPlum tiene una baja dependencia del volumen de los datos previamente cargados en la tabla de destino y se lleva a cabo bastante r\u00e1pido. Esto se logr\u00f3 gracias a los SQL Joins y a la arquitectura de GreenPlum, que permite la operaci\u00f3n de eliminaci\u00f3n.<\/p>\n<p>As\u00ed que, GreenPlum inserta el delta mediante delete+insert, mientras que en Hive no hay operaciones de delete o update, por lo que todo el conjunto de datos durante la actualizaci\u00f3n incremental tuvo que reescribirse completamente. Lo m\u00e1s notable es la comparaci\u00f3n de las celdas en negrita, ya que corresponde al uso m\u00e1s frecuente de cargas intensivas en recursos. Vemos que GreenPlum gan\u00f3 a Hive en esta prueba por un factor de 8.<\/p>\n<h3>Funcionamiento de Ab Initio con GreenPlum en modo Near Real Time.<\/h3>\n<p>\nEn este experimento, verificaremos la capacidad de Ab Initio para actualizar la tabla de GreenPlum con porciones de datos generadas aleatoriamente en un modo cercano al tiempo real. Consideraremos la tabla GreenPlum dev42_1_db_usl.TESTING_SUBJ_org_finval, con la que se trabajar\u00e1.<\/p>\n<p>Usaremos tres gr\u00e1ficos de Ab Initio para trabajar con ella:<\/p>\n<p>1) Gr\u00e1fico Create_test_data.mp - crea 10 flujos paralelos de archivos con datos en HDFS con 6,000,000 filas. Los datos son aleatorios, su estructura est\u00e1 organizada para insertarse en nuestra tabla.<\/p>\n<p><img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/8cac605c1c5931313bd016a48fb6384e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/b86988bf1722329bde60013ba025d600.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n2) Gr\u00e1fico mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset - gr\u00e1fico MDW generado para la inserci\u00f3n inicial de datos en nuestra tabla en 10 flujos paralelos (se utilizan datos de prueba generados por el gr\u00e1fico (1)).<\/p>\n<p><img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/b4228a13c088c6b96abba35e9e58fe8e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n3) Gr\u00e1fico mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset - gr\u00e1fico MDW generado para la actualizaci\u00f3n incremental de nuestra tabla en 10 flujos paralelos utilizando un lote de datos reci\u00e9n recibidos (deltas), generados por el gr\u00e1fico (1).<\/p>\n<p><img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/714a901616cf84e5a1fd7a764373e30f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEjecutaremos el siguiente escenario en modo NRT:<\/p>\n<ul>\n<li>generar 6,000,000 filas de prueba.<\/li>\n<li>realizar la carga inicial e insertar 6,000,000 filas de prueba en una tabla vac\u00eda.<\/li>\n<li>repetir 5 veces la carga incremental.\n<ul>\n<li>generar 6,000,000 filas de prueba.<\/li>\n<li>realizar la inserci\u00f3n incremental de 6,000,000 filas de prueba en la tabla (los datos antiguos se les asigna un tiempo de expiraci\u00f3n valid_to_ts y se insertan datos m\u00e1s recientes con la misma clave primaria).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\nEste escenario emula el modo de operaci\u00f3n real de un sistema empresarial: en tiempo real, se presenta un volumen significativo de nuevos datos y se inyecta inmediatamente en GreenPlum.<\/p>\n<p>Ahora veamos el registro de ejecuci\u00f3n del escenario:<\/p>\n<p><i>Iniciar Create_test_data.input.pset a las 2020-06-04 11:49:11.<br \/>\nFinalizar Create_test_data.input.pset a las 2020-06-04 11:49:37.<br \/>\nIniciar mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset a las 2020-06-04 11:49:37.<br \/>\nFinalizar mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset a las 2020-06-04 11:50:42.<br \/>\nIniciar Create_test_data.input.pset a las 2020-06-04 11:50:42.<br \/>\nFinalizar Create_test_data.input.pset a las 2020-06-04 11:51:06.<br \/>\nIniciar mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset a las 2020-06-04 11:51:06.<br \/>\nFinalizar mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset a las 2020-06-04 11:53:41.<br \/>\nIniciar Create_test_data.input.pset a las 2020-06-04 11:53:41.<br \/>\nFinalizar Create_test_data.input.pset a las 2020-06-04 11:54:04.<br \/>\nIniciar mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset a las 2020-06-04 11:54:04.<br \/>\nFinalizar mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset a las 2020-06-04 11:56:51.<br \/>\nIniciar Create_test_data.input.pset a las 2020-06-04 11:56:51.<br \/>\nFinalizar Create_test_data.input.pset a las 2020-06-04 11:57:14.<br \/>\nIniciar mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset a las 2020-06-04 11:57:14.<br \/>\nFinalizar mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset a las 2020-06-04 11:59:55.<br \/>\nIniciar Create_test_data.input.pset a las 2020-06-04 11:59:55.<br \/>\nFinalizar Create_test_data.input.pset a las 2020-06-04 12:00:23.<br \/>\nIniciar mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset a las 2020-06-04 12:00:23.<br \/>\nFinalizar mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset a las 2020-06-04 12:03:23.<br \/>\nIniciar Create_test_data.input.pset a las 2020-06-04 12:03:23.<br \/>\nFinalizar Create_test_data.input.pset a las 2020-06-04 12:03:49.<br \/>\nIniciar mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset el 2020-06-04 12:03:49<br \/>\nTerminar mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset el 2020-06-04 12:06:46<\/i><\/p>\n<p>Se observa la siguiente imagen:<\/p>\n<p>Gr\u00e1fico<br \/>\nStart time<br \/>\nHora de finalizaci\u00f3n<br \/>\nLongitud<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:49:11<br \/>\n04.06.2020 11:49:37<br \/>\n00:00:26<\/p>\n<p>mdw_load.day_one.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:49:37<br \/>\n04.06.2020 11:50:42<br \/>\n00:01:05<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:50:42<br \/>\n04.06.2020 11:51:06<br \/>\n00:00:24<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:51:06<br \/>\n04.06.2020 11:53:41<br \/>\n00:02:35<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:53:41<br \/>\n04.06.2020 11:54:04<br \/>\n00:00:23<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:54:04<br \/>\n04.06.2020 11:56:51<br \/>\n00:02:47<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:56:51<br \/>\n04.06.2020 11:57:14<br \/>\n00:00:23<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:57:14<br \/>\n04.06.2020 11:59:55<br \/>\n00:02:41<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:59:55<br \/>\n04.06.2020 12:00:23<br \/>\n00:00:28<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 12:00:23<br \/>\n04.06.2020 12:03:23<br \/>\n00:03:00<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 12:03:23<br \/>\n04.06.2020 12:03:49<br \/>\n00:00:26<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 12:03:49<br \/>\n04.06.2020 12:06:46<br \/>\n00:02:57<\/p>\n<p>\nVemos que 6,000,000 filas del incremento se procesan en 3 minutos, lo cual es bastante r\u00e1pido.<br \/>\nLos datos en la tabla de destino se distribuyeron de la siguiente manera:<\/p>\n<pre><code class=\"sql\">select valid_from_ts, valid_to_ts, count(1), min(sk), max(sk) from dev42_1_db_usl.TESTING_SUBJ_org_finval group by valid_from_ts, valid_to_ts order by 1,2;<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Cuando tienes escalas de Sberbank. Uso de Ab Initio al trabajar con Hive y GreenPlum.\" src=\"\/wp-content\/uploads\/2020\/07\/baefcfd8142f4ad6275333e3dcfccf94.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nSe puede ver la correspondencia entre los datos insertados y los momentos de inicio de los gr\u00e1ficos.<br \/>\nEsto significa que se puede iniciar un proceso incremental de carga de datos en GreenPlum con frecuencia muy alta en Ab Initio y observar la r\u00e1pida inserci\u00f3n de esos datos en GreenPlum. Por supuesto, no ser\u00e1 posible ejecutarlo cada segundo, ya que Ab Initio, como cualquier herramienta ETL, requiere tiempo para 'arrancarse'.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>\nActualmente, Ab Initio se utiliza en Sberbank para construir la Capa Sem\u00e1ntica de Datos Unificada (CSDU). Este proyecto implica la creaci\u00f3n de una versi\u00f3n \u00fanica del estado de diversas entidades comerciales del banco. La informaci\u00f3n proviene de diferentes fuentes, cuyas r\u00e9plicas se preparan en Hadoop. Seg\u00fan las necesidades del negocio, se elabora un modelo de datos y se describen las transformaciones de datos. Ab Initio carga la informaci\u00f3n en la CSDU y los datos cargados no solo son de inter\u00e9s para el negocio en s\u00ed, sino que tambi\u00e9n sirven como fuente para construir vistas de datos. Adem\u00e1s, la funcionalidad del producto permite usar diferentes sistemas como receptores (Hive, Greenplum, Teradata, Oracle), lo que permite preparar datos para el negocio en varios formatos que necesita.<\/p>\n<p>Las capacidades de Ab Initio son amplias, por ejemplo, el marco MDW que se adjunta permite construir la trazabilidad t\u00e9cnica y empresarial de los datos 'fuera de la caja'. Para los desarrolladores, Ab Initio ofrece la posibilidad de 'no reinventar la rueda', sino de utilizar numerosos componentes funcionales existentes, que son esencialmente bibliotecas necesarias para trabajar con datos.<\/p>\n<blockquote><p>Autor: experto de la comunidad profesional de Sberbank SberProfi DWH\/BIG Data. La comunidad profesional SberProfi DWH\/BIG Data es responsable del desarrollo de competencias en \u00e1reas como el ecosistema Hadoop, Teradata, Oracle DB, GreenPlum, as\u00ed como en herramientas BI como Qlik, SAP BO, Tableau, entre otras.<\/p><\/blockquote>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sberbank\/blog\/509936\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0415\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u0435\u043b\u043e\u0441\u044c \u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443 \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u043c\u0430\u043d\u0434 spark-submit. \u041d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0438\u043c\u0435\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0435\u043c \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87610,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87609","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=\"description\" content=\"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438.\" \/>\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\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum\" \/>\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\u041a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0430\u0441 \u0441\u0431\u0435\u0440\u043e\u0432\u0441\u043a\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u044b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Ab Initio \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Hive \u0438 GreenPlum | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum\" \/>\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=\"2020-07-08T23:42:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-08T23:42:11+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\udd47Cuando tienes escalas de Sber. Uso de Ab Initio al trabajar con Hive y GreenPlum | ProHoster","description":"Hace alg\u00fan tiempo, nos encontramos con la cuesti\u00f3n de elegir una herramienta ETL para trabajar con Big Data. La soluci\u00f3n que hab\u00edamos utilizado anteriormente, Informatica BDM, no cumpl\u00eda con nuestras expectativas debido a su funcionalidad limitada.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","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\u041a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0430\u0441 \u0441\u0431\u0435\u0440\u043e\u0432\u0441\u043a\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u044b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Ab Initio \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Hive \u0438 GreenPlum | ProHoster","og:description":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","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":"2020-07-08T23:42:11+00:00","article:modified_time":"2020-07-08T23:42:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87609","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:47:29","updated":"2026-02-22 15:29:30","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\/87609","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=87609"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/87609\/revisions"}],"predecessor-version":[{"id":162163,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/87609\/revisions\/162163"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/87610"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=87609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=87609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=87609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}