sábado, 30 de abril de 2022

¿Por qué Big Data es diferente?

Vamos a ver las diferencias entre Big data y paradigmas de datos tradicionales. Big data no son solo datos. Si lo fueran, se llamaría datos y no Big data. Y la distinción no radica solo en su tamaño. Contiene múltiples activos sobre prácticamente cualquier pieza de información imaginable que pueda resultarnos útil. Es el tipo de datos a los que no teníamos acceso en el pasado. El término Big data existe desde la década de 1990 aunque en esa época el almacenamiento de datos resultaba complicado y costoso.

Todo eso cambió en la década de 2000  cuando pudimos recopilar conjuntos de datos de extrema complejidad y alcance. Pero los macrodatos no son independientes, es decir, no basta con tener los datos. También tenemos que tener el poder de procesamiento y una forma de analizarlos para que sean significativos. Eso también ha cambiado con un procesamiento más barato y rápido, y las herramientas necesarias para obtener significado de los datos. Ahora podemos recopilar grandes cantidades de información,  almacenarla y analizarla. Big data significa más grande, más rápido y mejor. Pero no sólo la tecnología en sí, sino la forma en que vemos y analizamos los datos.

¿Por qué Big Data es diferente?

Podemos aplicar análisis estadístico sobre innumerables atributos, compararlos y extraer significado de ellos. Otra tecnología que se ha beneficiado de una potencia de procesamiento y almacenamiento exponencialmente mayores ha sido la inteligencia artificial y el aprendizaje automático. Ahora podemos incorporar la automatización en el análisis de datos, utilizando IA. Y esto crea nuevas oportunidades para comprender el comportamiento humano de formas que nunca imaginamos posibles. Ahora estamos en un mundo 24 horas al día, 7 días a la semana, 365 días al año, donde la información es accesible todo el tiempo. 

Esto es importante para las actividades de análisis de datos que están en curso y están sujetas a cambios constantes. Con Big Data, estamos encontrando nuevos conocimientos que simplemente no estaban disponibles antes. Podemos utilizar la información que recopilamos para comprender mejor el comportamiento de la gente respecto al mercado o a los productos de nuestra empresa.

IoT, el Internet de las cosas, es un gran ejemplo de información a la que nadie podría haber imaginado tener acceso. Ahora, podemos entender cómo las personas navegan por internet o  cómo utilizan el refrigerador, etc. Tenemos una capacidad asombrosa no solo para recopilar y almacenar los datos, sino para comprender realmente lo que significan, y eso es poder. 

Datos identificativos

Para crear un plan de gobierno de datos, primero debemos identificar el dominio de datos que nos interesa. Hay que mirar la visión corporativa de nuestra empresa y preguntarnos por qué necesitamos estos datos. Y estar preparados para cambiar de rumbo si la experiencia o los datos nos llevan en otra dirección. Los macrodatos por definición son complejos, y también las herramientas y la metodología de análisis de datos que adoptemos.  Hay que planificar un aumento gradual, comenzando con pequeños datos manejables . También tenemos que presupuestar una progresión en aumento de manejo de más datos a lo largo del tiempo. Esto consiste en identificar la tecnología y las herramientas que necesitaremos para cumplir nuestros objetivos, incluso aunque falten 12 o 24 meses para nuestro objetivo. Y eso requiere que comprendamos las herramientas.  Debemos tener las herramientas adecuadas para alinear la tecnología a nuestras  necesidades y no al revés. 

Un concepto erróneo común sobre el Big data es que podemos analizar todo y mirarlo desde un sinfín de ángulos diferentes para encontrar la solución a todos nuestros problemas. El Big data es complejo y, por lo tanto, puede serlo el análisis de esos datos. Tan malo como no tener el conocimiento que necesitamos puede ser no poder obtener conocimiento de nuestros datos porque no sabemos dónde buscar. No hay que hacerlo al azar.

La gobernanza requiere una política escrita y un plan de recopilación de datos. Finalmente, necesitamos identificar a los jugadores que entienden. Nuestro equipo de gobierno de datos, será una combinación de personas técnicas y no técnicas. Algunos comprenderán la tecnología y otros comprenderán la información. Los requisitos y necesidades comerciales. Algunos pueden entender ambos. Necesitamos una buena representación de lo que quiere nuestra empresa en términos de valor de la información. 


sábado, 23 de abril de 2022

Requisitos para la gobernanza de Big Data

Existen  cinco requisitos principales para el gobierno de datos. Aunque esto no es exacto, en general, podemos aplicar cinco necesidades clave. 

Proteger los datos

Hay varias buenas razones para proteger los datos de los usuarios, Las filtraciones de datos son caras y pueden poner en peligro incluso a las empresas más fuertes. Y existen leyes que rodean la recopilación y gestión de datos, y eso también puede resultar costoso si se infringen esas leyes. 

Identificación e indexación de datos

Cualquier operación de Big data necesita comprender qué tienen los datos y cómo conservarlos. Big Data es grande. No es útil recopilar grandes cantidades de datos que nunca se utilizarán. Y no es una buena práctica catalogar o identificar incorrectamente la información que se recopila. Las diferentes unidades organizativas probablemente usarán los datos de manera diferente, y eso hace que catalogar los datos sea aún más importante. 

Requisitos para la gobernanza de Big Data


Confiabilidad y disponibilidad

Cualquiera que conozca la creación de redes comprenderá la importancia de estos dos principios. El Big Data suele ser tan gigantesco que debe tratarse de manera un poco diferente. Ya sea que se encuentre en un servidor en el edificio de al lado o en un edificio al otro lado del mundo. Los datos deben ser accesible las 24 horas del día, los 7 días de la semana, los 365 días del año, especialmente cuando se aprovechan para la toma de decisiones cruciales. Y tienen que estar protegidos, no en el sentido de protegerlos de violaciones de datos, eso es absolutamente crítico, pero también necesitan ser inmunizados contra desastres. Tiene que haber políticas y procedimientos de recuperación ante desastres para garantizar que los datos seguirán estando disponibles en caso de circunstancias inesperadas. 

Evitar la basura

Si entra basura, sale basura, esto significa que tenemos que entender no solo qué datos recopilamos, sino que datos son correctos. ¿Qué recopilamos que dará sentido a nuestras actividades de análisis de datos? Con Big Data, estamos recopilando casi literalmente todos los datos imaginables que se pueden recopilar. Y comprender el significado de estos datos puede ser una tarea abrumadora.

Validación de datos

 Para nuestros propósitos, la validación es un poco diferente a simplemente verificar si los datos son correctos. Significa asegurarse de que estamos recopilando los datos correctos, los datos que necesitamos y los requisitos para eso pueden cambiar con el tiempo. También significa asegurarse de que nuestros procedimientos existentes estén en sintonía con los datos que se recopilan. Que estamos utilizando las herramientas adecuadas para recopilar, almacenar y analizar los datos, y que estamos interpretando correctamente los datos. Ahora que tenemos los requisitos para la gobernanza de los datos, pasemos a los requisitos para implementar la gobernanza.

Primero, debemos tener un órgano de gobierno de datos, un grupo dentro de nuestra empresa que actúe como propietario y guía para las actividades de Big Data. Este grupo debe ser bastante diverso, pero debe estar bien capacitado e informado sobre el plan de datos, las políticas que rodean la recopilación de datos y los procedimientos para usar los datos. Debe haber profesionales de cumplimiento involucrados, personas que comprendan las reglas y regulaciones y cómo deben aplicarse a nuestra estructura corporativa. Luego, por supuesto, hay otras políticas,  cómo interactúa la empresa con los datos, los maneja y los trata. Aunque no siempre  es posible  tenerlo como requisito. Pero debemos siempre que sea posible, identificar todos los procedimientos concebibles para la recopilación y el manejo de datos.

Al emprender el viaje de Big Data como empresa, debemos hacer unas preguntas: 

¿quiénes son las partes interesadas?

Identificar a todas las personas o grupos que se verán afectados o que tendrán interés en los datos y cómo se utilizan. 

¿cuál es el soporte dentro de nuestra empresa para las actividades de Big data? 

Hay que comprender la importancia de recogerlos y almacenarlos Entendemos lo crucial que es protegerlos Y entendemos lo que pasará si algo sale mal, es muy importante saberlo. 

¿cuál es el dominio? 

¿Estamos recopilando una amplia gama de información para cada transacción. O estamos apuntando específicamente a uno o algunos dominios de un conjunto mayor de datos? Es importante saber que es, porque lo que recopilamos, quién utilizará los datos.

Es posible que sólo las unidades de ventas y contabilidad de una empresa necesiten la inteligencia obtenida de un conjunto de datos. Por lo tanto, no es necesario incorporar el marketing y las operaciones, porque no necesitamos analizar este tipo de datos. Si  ventas y contabilidad se están ocupando de eso, eventualmente se filtrará a las otras unidades de todas formas. El dominio puede significar diferentes cosas en diferentes escenarios. Por ejemplo, quizás un dominio esté orientado al cliente en lugar de a la empresa. Tal vez una empresa que fabrica consumibles, pero que también brinda servicios solo quiere analizar la forma en que sus clientes compran los consumibles, por lo que no es necesario centrarse en el lado de los servicios del negocio.

Es treméndamente tentador querer recopilar la mayor cantidad de datos posible y analizar tanto como sea posible. El síndrome quiero saberlo todo y quiero saberlo ahora. Pero es mucho mejor centrarse más en nuestro enfoque de Big data. 

¿por qué necesitamos gobernanza? 

La respuesta corta es que si recopilamos datos de clientes, definitivamente los necesitamos, porque existen implicaciones legales y prácticas de manejar los datos de alguien. 

Es probable que descubramos todo un subconjunto de razones por las que la gobernanza es importante para nuestra empresa.

Alguien nos preguntará en qué se beneficia la empresa o dónde está la justificación del gasto. Toda empresa quiere saber por qué debería gastar dinero en algo nuevo. La respuesta no satisfará a los contables ni a los directores financieros. 

Podemos hacerlo, especialmente si corremos el riesgo de recibir multas, sanciones o perder la confianza del cliente, pero no es por eso que debemos hacerlo. Es posible que ya tengamos procesos o políticas existentes que pueden ayudar a dar forma a nuestras actividades de gobernanza de Big data. Por lo tanto, aprovecharemos lo que tenemos para hacer que la transición sea más cómoda. Y siempre debemos recordar que si bien la tecnología no es el único y el fin de la gobernanza de Big data, sigue siendo el facilitador. Por eso hay que animar a adoptar la tecnología y comprenderla. En última instancia, las personas son la clave para nuestras actividades de Big Data y la gobernanza que establecerá un marco en torno a una mejor comprensión de nuestra empresa y nuestros clientes.


sábado, 16 de abril de 2022

Curso avanzado de C#. Conversión de valores

La conversión permite a un programa convertir un valor de un tipo a otro tipo compatible, pero a veces es posible que deseemos convertir un valor de un tipo a un tipo incompatible. Por ejemplo, es posible que deseemos convertir el valor de cadena ‘123’ al valor int 123, o tal vez deseemos convertir el valor de cadena ‘True’ al valor booleano verdadero (true). En casos como estos, el casting no funcionará. Para convertir un valor de un tipo a un tipo incompatible, debemos utilizar algún tipo de clase auxiliar. El Framework de .NET nos proporciona tres métodos principales para este tipo de conversiones: 

-Métodos de análisis (parsing) 

-System.Convert

-System.BitConverter

Métodos de análisis (parsing)

Cada uno de los tipos de datos primitivos de C# (int, bool, double, etc.) tiene un método Parse que convierte una representación de cadena de un valor en ese tipo de datos. Por ejemplo, bool.Parse toma como argumento una cadena que representa un valor booleano como verdadero (true) y devuelve el valor booleano correspondiente verdadero (true). Estos métodos de análisis generan excepciones si su entrada está en un formato no reconocido. Por ejemplo, la declaración bool.Parse("yes") arroja una excepción del tipo FormatException porque ese método solo admite como entradas los valores “true” o “false” y devuelve sus homólogos en formato booleano.

Cuando utilizamos estos métodos para convertir la entrada del usuario, debemos tener en cuenta que se pueden generar excepciones si el usuario ingresa valores con un formato no válido. Si el usuario introduce ‘doce’ en una caja de texto donde el programa espera un entero (int), el método int.Parse devolverá una excepción. Si el usuario introduce 1E3 o 100000 donde el programa espera un entero corto, el método short.Parse devolverá un error de desbordamiento OverflowException. Podemos utilizar un bloque try-catch para proteger el programa de estas excepciones, pero para facilitar aún más la verificación de valores, cada una de estas clases también proporciona el método TryParse. Este método intenta analizar (parsear) una cadena y devuelve verdadero si tiene éxito o falso si falla. Si tiene éxito, el método también guarda el valor analizado (parseado) en una variable de salida que le pasa al método. La siguiente tabla enumera los tipos de datos más comunes que proporcionan métodos Parse y TryParse.

Curso avanzado de C#. Conversión de valores
El siguiente código muestra dos formas en que un programa puede analizar (parsear) valores enteros que se ingresan desde TextBox: 

int cantidad;

try

{

      cantidad = int.Parse(txt_Cantidad.Text);

}

catch

{

      cantidad = 1;

}

int peso;

if (!int.TryParse(txt_Peso.Text, out peso)) peso = 10;

El código declara la variable cantidad dentro de un bloque try-catch, y  utiliza int.Parse para intentar convertir el texto de la caja de texto Txt_Cantidad en un entero. Si la conversión falla, el código establece la cantidad en el valor predeterminado 1.

A continuación, el código declara la variable peso. Después utiliza int.TryParse para intentar analizar el texto de la caja de texto txt_Peso. Si el intento tiene éxito, la variable  peso contendrá el valor que ingresó el usuario. Si el intento falla, TryParse devuelve falso y el código establece el peso en el valor predeterminado 10. 

Se recomienda como mejores prácticas, evitar analizar (parsear) cuando sea posible A veces, podemos evitarlo en valores numéricos y tratar con entradas no válidas como ‘diez’ usando un control para permitir que el usuario seleccione un valor en lugar de teclearlo. Por ejemplo, podríamos utilizar un control NumericUpDown para permitir que el usuario seleccione la cantidad en lugar de teclearla en un TextBox. 

En general, los métodos de análisis funcionan bastante bien si la entrada tiene sentido. Por ejemplo, la instrucción int.Parse ("645") devuelve el valor 645 sin confusión. Incluso el método Parse del tipo de datos DateTime puede tener sentido con la mayoría de las entradas razonables. Por ejemplo, en castellano, las siguientes declaraciones se analizan como 12 de abril de 2022 a las 16:32.

DateTime.Parse ("16:32 12 de abril de 2022").ToString()

DateTime.Parse ("12 de abril de 2022 16:32").ToString() 

DateTime.Parse ("16:32 12/4/22").ToString()

DateTime.Parse ("16:32 12-4-22"). ToString() 

Los métodos de análisis no manejan bien los valores de las divisas por defecto. Por ejemplo, el código siguiente arroja un FormatException (en la configuración regional de España.): 

decimal amount = decimal.Parse("€132.422,55"); 

La razón por la que este código falla es que, por defecto, el método decimal.Parse habilita miles y separadores decimales pero no símbolos de moneda. Podemos hacer que decimal.Parse habilite los símbolos de moneda agregando otro parámetro que sea una combinación de valores definidos por la enumeración

System.Globalization.NumberStyles. Esta enumeración nos permite indicar los caracteres especiales que se deben permitir, como los símbolos de moneda, un signo inicial y paréntesis. 

La tabla muestra los valores definidos

Estilo

Descripción

None

No admite caracteres especiales. El valor debe ser un entero decimal.

AllowLeadingWhite

Admite un espacio en blanco al principio

AllowTrailingWhite

Admite un espacio en blanco al final

AllowLeadingSign

Admite un carácter de signo principal (+, -). Los caracteres válidos vienen definidos en

NumberFormatInfo.PositiveSign y NumberFormatInfo.NegativeSign.

AllowTrailingSign

Admite un carácter de signo (+, - ) al final. Los caracteres válidos vienen dados por las propiedades

NumberFormatInfo.PositiveSign y NumberFormatInfo.NegativeSign.

AllowParentheses

Admite que el valor esté entre paréntesis para indicar un valor negativo.

AllowDecimalPoint

Permite que el valor contenga un punto decimal. Si también se especifica  AllowCurrencySymbol, el símbolo de moneda admitido viene dado por la propiedad NumberFormatInfo.CurrencyDecimalSeparator. Si AllowCurrencySymbol no está especificado, el símbolo de moneda admitido vendrá dado por NumberFormatInfo.NumberDecimalSeparator.

AllowThousands

Admite separadores de miles. Si AllowCurrencySymbol también es

especificado, el separador viene dado por NumberFormatInfo.CurrencyGroupSeparator

y el número de dígitos por grupo viene dado por la propiedad  NumberFormatInfo.CurrencyGroupSizes. Si no se especifica AllowCurrencySymbol, el separador es dado por la propiedad NumberFormatInfo.NumberGroupSeparator

y el número de dígitos por grupo viene dado por la propiedad NumberFormatInfo

.NumberGroupSizes.

AllowExponent

Habilita el símbolo exponente e o E opcionalmente seguido de un signo positivo o negativo.

AllowCurrencySymbol

Habilita un símbolo de moneda. Los símbolos de moneda permitidos vienen dados por la propiedad NumberFormatInfo.CurrencySymbol.

AllowHexSpecifier

Indica que el valor está en hexadecimal. Esto no significa que la cadena de entrada

pueda comenzar con un especificador hexadecimal como 0x o & H. El valor

debe incluir solo dígitos hexadecimales.

Integer

Este es un estilo compuesto que incluye AllowLeadingWhite,

AllowTrailingWhite y AllowLeadingSign.

HexNumber

Este es un estilo compuesto que incluye AllowLeadingWhite,

AllowTrailingWhite y AllowHexSpecifier.

Number

Este es un estilo compuesto que incluye AllowLeadingWhite,

AllowTrailingWhite, AllowLeadingSign, AllowTrailingSign,

AllowDecimalPoint y AllowThousands.

Float

Este es un estilo compuesto que incluye AllowLeadingWhite,

AllowTrailingWhite, AllowLeadingSign, AllowDecimalPoint,

y AllowExponent.

Currency

Este es un estilo compuesto que incluye todos los estilos excepto AllowExponent

y AllowHexSpecifier

Any

Este es un estilo compuesto que incluye todos los estilos excepto

AllowHexSpecifier.

Si proporcionamos valores de NumberStyles, se eliminan los valores predeterminados. Por ejemplo, por defecto decimal.Parse habilita miles y separadores decimales. Si pasamos el valor NumberStyles.AllowCurrencySymbol al método, ya no habilita miles y separadores decimales. Para permitir los tres, debemos pasar al método los tres valores como en el siguiente código: 

decimal amount = decimal.Parse("€132.422,55", 

NumberStyles.AllowCurrencySymbol | 

NumberStyles.AllowThousands | 

NumberStyles.AllowDecimalPoint); 

Alternativamente, podemos pasar al método el estilo compuesto Moneda, como se muestra en el siguiente código: 

decimal amount = decimal.Parse("€132.422,55", 

NumberStyles.AllowCurrencySymbol);

Análisis relativo  al entorno local 

Los métodos de análisis son relativos al entorno local, por lo que intentan interpretar sus entradas para el entorno local en el que se ejecuta el programa. Podemos verlo en las descripciones de la tabla anterior que mencionan la clase NumberFormatInfo. Por ejemplo, el símbolo de moneda permitido está definido por la propiedad NumberFormatInfo.CurrencySymbol, y esa propiedad tendrá diferentes valores según la configuración regional del ordenador. Si el ordenador está con la configuración española, DateTime.Parse entiende la fecha de estilo español "1 de mayo de 2022", pero no comprende la versión en alemán "1. Mai 2022 ”. (Aunque si entiende la versión en inglés "May 1, 2022" en la configuración regional española o alemana). 

De forma similar, si la configuración regional del ordenador es francesa, el método int.Parse puede analizar el texto "132 422,55" pero no puede analizar el español "132.422,55". 

Todos los valores literales dentro del código C# deben usar formatos de inglés de EEUU. Por ejemplo, no importa qué configuración regional utilice nuestro ordenador, un programa de C# utilizará la variable double para "0.05"  pero no para  "0,05"  dentro de su código. 

Errores en análisis de valores de moneda

Es preciso darse cuenta de que es necesario parsear los valores de moneda. Si un TextBox debe contener valores de moneda, debemos parsearlo  correctamente para que no se le diga al usuario que "1.25 €" tiene un formato numérico no válido.

System.Convert 

La clase System.Convert proporciona más de 300 métodos (incluidas las versiones sobrecargadas) para convertir un tipo de datos en otro. Por ejemplo, el método ToInt32 convierte un valor en un entero de 32 bits (un entero int). Las diferentes versiones sobrecargadas de los métodos toman parámetros de diferentes tipos, como booleanos, bytes, DateTimes, dobles, cadenas, etc. La Tabla enumera los métodos de conversión de tipos de datos más útiles proporcionados por la clase System.Convert.

Redondeo bancario

Los métodos que se convierten en tipos integrales (ToByte, ToIntXX y ToUIntXX) usan "redondeo bancario", lo que significa que los valores se redondean al número entero más cercano, pero si hay un empate, con el valor que termina exactamente en ,5, el valor se redondea al número entero par más cercano. Por ejemplo, ToInt16(9.5) y ToInt16(10.5) ambos devuelven 10. Todos estos métodos lanzan una excepción si su resultado está fuera del rango de valores permitidos.

Por ejemplo, ToByte (255,5) devuelve 256, que es demasiado grande para caber en un byte, y ToUInt32 (–3,3) devuelve 3, porque que es menor que cero, y no cabe en un entero sin signo. El método Math.Round utiliza el redondeo bancario de forma predeterminada, pero también nos permite utilizar parámetros para indicar si debe redondearse hacia 0. Este método devuelve un resultado que es decimal o doble, por lo que a menudo el código debe usar una conversión para convertir el resultado en un tipo de datos integral como en el siguiente código:

float total = 100; 

int numItems = 7; 

int promedio = (int)Math.Round (total/numItems);

La clase System.Convert también proporciona un método ChangeType que convierte un valor en un nuevo tipo determinado por un parámetro en tiempo de ejecución. Por ejemplo

(int)Convert.ChangeType(5.5,typeof(int)) 

devuelve el entero 6. A menudo, es más fácil utilizar uno de los métodos más específicos como ToInt32 en lugar de ChangeType.

System.BitConverter 

La clase System.BitConverter proporciona métodos para convertir valores hacia y desde matrices de bytes. El método GetBytes devuelve una matriz de bytes que representa el valor que le pasa. Por ejemplo, si pasa un int (que ocupa 4 bytes de memoria) en el método, devuelve una matriz de 4 bytes que representa el valor. La clase System.BitConverter también proporciona métodos como ToInt32 y ToSingle para convertir los valores de bytes almacenados en matrices nuevamente en tipos de datos específicos. 

Por ejemplo, suponemos que una función API devuelve dos valores de 16 bits empaquetados en las mitades izquierda y derecha de un entero de 32 bits. Podemos utilizar el siguiente código para descomprimir los dos valores: 

int packedValue;

// La llamada a la función API establece packValue aquí. 

... 

// Convierte el valor empaquetado en una matriz de bytes. 

byte[]valueBytes = BitConverter.GetBytes(packedValue);

// Desempaqueta los dos valores. 

Short valor1, valor2;

valor1 = BitConverter.ToInt16 (valueBytes, 0); 

valor2 = BitConverter.ToInt16 (valueBytes, 2); 

Una vez que la función API establece el valor de packedValue, el código usa el método GetBytes de la clase BitConverter para convertir el valor en una matriz de 4 bytes. El orden de los bytes depende de si la arquitectura del ordenador big-endian (Gran indio)  o little-endian (Pequeño Indio). (Podemos utilizar el campo IsLittleEndian de BitConverter para determinar si el valor es big-endian o little-endian). Los métodos de la clase BitConverter son bastante especializados, por lo que no nos extenderemos aquí. Para obtener más información, consultar "Clase BitConverter"


sábado, 9 de abril de 2022

Gobernanza y su relación con Big Data

Antes de que podamos discutir la importancia de la gobernanza de datos, debemos echar un vistazo al Big Data y comprender por qué la gobernanza se ha convertido en un tema tan candente. Big data es el término general que se aplica a conjuntos de datos. Pero lo que hace que el Big data sea diferente a la forma en que manejamos los datos en el pasado es que el Big data es grande y complejo, a menudo está representado por cantidades masivas de datos muy granulares, que representan cosas que pueden no parecer útiles al pie de la letra. Big data también se refiere al acto de procesar esos datos porque el gran tamaño de los grandes datos hace que comprenderlos sea un desafío. Utilizamos el procesamiento estadístico para analizar y evaluar Big data con el entendimiento de que el conocimiento tiene poder. En otras palabras, podemos sacar conclusiones de esos datos aparentemente inocuos que no hubiéramos podido ni siquiera hace diez años.

Gobernanza y su relación con Big Data
Así que aquí está la razón fundamental. Es decir, ¿por qué estamos tan interesados en el Big data? ¿Por qué tantas empresas hacen todo lo posible para obtenerlo y comprenderlo? El poder analítico de las herramientas de Big data nos da la capacidad de recopilar el comportamiento del usuario a partir de estos grandes conjuntos de datos, nuevamente, en datos que no están disponibles o no se consideran útiles cuando se examinaban directamente sin procesar. Ahora, las empresas pueden utilizar el análisis predictivo para comprender ese comportamiento y brindar mejores servicios a los clientes o perfeccionar la forma en que hacen negocios o ambas cosas. Y eso es todo porque Big Data permite a las empresas extraer valor de los datos. Valor que no existía antes.

Pasemos al otro lado de la ecuación, la gobernanza. Nos referimos al gobierno corporativo porque el gobierno puede considerarse de diferentes maneras. Y la gobernanza en este sentido es el acto de desarrollar y adherirse a reglas, prácticas y procesos dentro de una estructura corporativa, ya sea que esa estructura sea una docena de personas o decenas de miles de personas. Cuando hablamos de la gobernanza de Big data, hay cuatro principios clave que debemos comprender y adoptar. 

El proceso

Las actividades bien definidas que realiza una organización. Están bien definidos para brindar consistencia y eficiencia. Estas actividades deben documentarse y revisarse periódicamente. 

Los empleados

En una empresa los empleados realizan los procesos. Pero en la gobernanza de big data, también es útil tener en cuenta otros dos grupos de personas, los proveedores de una organización y las personas representadas por los datos que se recopilan, generalmente los clientes. Eso es crucial en Big data porque los datos que maneja una organización pertenecen en muchos sentidos a las personas que los proporcionan. 

La tecnología

Es el facilitador y la razón por la que tenemos esto llamado Big data. Y aunque es la herramienta que hace girar la rueda, debemos tener cuidado de darle más énfasis del que merece. Después de todo, es una herramienta y, aunque es fácil poner la tecnología en un pedestal, el enfoque importante es y siempre debe estar en las personas que proporcionan los datos y las personas que tienen acceso a ellos. 

Mejores prácticas

Porque todo lo que hemos discutido aquí puede desmoronarse fácilmente si no existen procedimientos y políticas buenos y bien formados para garantizar un gobierno de datos responsable. 

Por qué Big Data requiere gobernanza

Big Data es grande tanto en alcance como en popularidad. Está en todas partes, en las noticias y en la vanguardia de la discusión corporativa. Y lo más importante, está en servidores en todas partes. Existe un gran conjunto de herramientas que se pueden usar para la recopilación de datos y el análisis estadístico.

¿Por qué Big Data requiere una estructura de gobierno? La primera razón es el peligro de que se abuse de los datos. La mayoría de las organizaciones son benevolentes y no planean hacer un mal uso de los datos que recopilan. Pero con Big data, la información puede ser mal utilizada, aunque las empresas tengan las mejores intenciones, existe la posibilidad de que se produzcan pérdidas de datos.

Los datos pueden salir a la luz mediante piratería o errores humanos. Una mala seguridad sería la culpable. Y eso puede ser un problema costoso para las empresas que no encriptan o custodian adecuadamente los datos que recopilan. También existe el riesgo de que los datos se vuelvan públicos, nuevamente, a través de piratería informática o error humano.  

Las empresas que recopilan cantidades masivas de datos deben comprender los riesgos y las consecuencias. La gobernanza de Big data puede ser una oportunidad de  implementar un buen gobierno que realmente ayude a las empresas. Aparte que brinda la oportunidad de tomar mejores decisiones, lo que da una ventaja competitiva, permitiendo utilizar los datos recopilados para ofrecer mejores servicios. Sin planificación Big data puede ser un riesgo. Pero cuando se implementa un buen gobierno, otorga credibilidad a la empresa. Y la credibilidad se traduce en valor real.


sábado, 2 de abril de 2022

Curso avanzado de C#. Casting

Un operador de conversión le dice explícitamente al compilador que desea convertir un valor en un tipo de datos en particular. Para convertir una variable en un tipo particular, colocamos el tipo entre paréntesis delante del valor que deseamos convertir. Por ejemplo, el siguiente código toma la variable valor1 de tipo double  y la convierte en el tipo de datos float, después la guarda en la variable de tipo float  valor2. 

double valor1 = 10;
float valor2 = (float)valor1;


Nota: La conversión de un valor de punto flotante (float) en un tipo de datos integer (entero) hace que el valor se trunque. Por ejemplo, la declaración (int) 10.9 devuelve el valor entero 10. Si deseamos redondear el valor al entero más cercano en lugar de truncarlo, debemos utilizar método ToInt32 de la clase System.Convert o el método Math.Round. 

Curso avanzado de C#. Casting