Introducción a Snowflake

Snowflake es un servicio de computación en la nube con el objetivo de ser data-driven. Combina las potencias de warehouse y datalake formando el concepto de LakeHouse. Podemos crear y usar distintos tamaños de warehouse, la forma de cobro es el uso de computo además de algunos cargos mínimos de servicios cloud.

Snowflake cobra por el uso de ejecución el mínimo de cargo es de 1 minuto luego se cobra por segundos, puede encender y apagar warehouse incluso aumentar de cluster. Es posible iniciar y cambiar de tamaño warehouse. Soporta SQL estándar. Es muy fácil de operar.

Puede empezar con 30 días para hacer pruebas. Ir ala pagina www.snowflake.com, rellenas los requisitos nombre, correo electrónico y listo.

La forma de administrar es sencilla, en la parte arriba se encuentran los apartados base de datos, base de datos compartidos para que otras empresas pueden acceder generar ingresos, Data Marketplace para encontrar bases de datos, Warehouse puedes crear diferentes servidores, hoja de trabajo Worksheets, histórico, Account donde puede ver los créditos a usados o generados.

En la parte de derecha de la interfaz puedes cambiar de roles, accountadmin, sysadmin, public, securityadmin, entros otros roles.

Del lado izquierdo encuentras las base de datos

Al momento de crear la cuenta Snowflake crea la warehouse llamado COMPUTE_WH

Podemos tener muchos Warehouse de diferente tamaños (Size) xsmall, small, medium, etc. A mas grande mayor rapidez de ejecución de consulta.

En el apartado account podemos ver los créditos usados en este caso no hemos ejecutado ninguna consulta.

Podemos escoger el rol , el warehouse, la base de datos y el esquema a usar, para ejecutar alguna consulta es necesario escoger un rol, warehouse y una base de datos.

Es un vistazo de la interfaz web de snowflake

Publicado en Snowflake | Etiquetado , , | Deja un comentario

Generating Dates between two date ranges Oracle

select to_char(trunc(to_date(20190822,’YYYYMMDD’),’MM’),’YYYYMMDD’)-1 + level as Date1,
to_char(to_date(to_char(trunc(to_date(20190822,’YYYYMMDD’),’MM’),’YYYYMMDD’),’YYYYMMDD’)-2 + level,’YYYYMMDD’) as Date2
from dual
connect by level <= to_char(last_day(to_date(20190822,’YYYYMMDD’)),’DD’)
order by Date1;

Publicado en DataBase, Oracle Data Base | Etiquetado , , | Deja un comentario

Oracle SQL with carriage return

create table rc as select ‘ABC</>DEF FF</>ZZZ’ rc
from dual;

select * from rc;

WITH RETURN_LINE AS
( SELECT rc FROM rc )
SELECT trim(regexp_substr(rc, ‘[^]+’, 1, LEVEL)) rc
FROM RETURN_LINE
CONNECT BY instr(rc, », 1, LEVEL – 1) > 0;

Publicado en DataBase, Oracle Data Base | Etiquetado , | Deja un comentario

Oracle Segmentation 9i

Oracle9i 9.2.0.6.0 – 64bit Production

Execute this query

WITH T AS (
SELECT ‘/20/’ TXT FROM DUAL
UNION
SELECT ‘/20/21/’ TXT FROM DUAL
UNION
SELECT ‘/20/22/’ TXT FROM DUAL
UNION
SELECT ‘/20/23/24/’ TXT FROM DUAL
UNION
SELECT ‘/20/23/25/’ TXT FROM DUAL
) SELECT * from T

select replace(SUBSTR(txt,length(A.txt)-3, length(A.txt)),’/’,») SEGMENTATION
FROM (WITH T AS (
SELECT ‘/20/’ TXT FROM DUAL
UNION
SELECT ‘/20/21/’ TXT FROM DUAL
UNION
SELECT ‘/20/22/’ TXT FROM DUAL
UNION
SELECT ‘/20/23/24/’ TXT FROM DUAL
UNION
SELECT ‘/20/23/25/’ TXT FROM DUAL
) SELECT * from T) A

Result:

Or


— DDL for Table SEGMENTATION

CREATE TABLE «SEGMENTATION»
( «TXT» VARCHAR2(10 BYTE)
) ;

Insert into SEGMENTATION (TXT) values (‘/20/’);
Insert into SEGMENTATION (TXT) values (‘/20/21/’);
Insert into SEGMENTATION (TXT) values (‘/20/22/’);
Insert into SEGMENTATION (TXT) values (‘/20/23/24/’);
Insert into SEGMENTATION (TXT) values (‘/20/23/25/’);

select replace(SUBSTR(TXT,length(TXT)-3, length(TXT)),’/’,») SEGMENTATION
from SEGMENTATION

Result:

Publicado en DataBase, Oracle Data Base | Etiquetado , , | Deja un comentario

Oracle Heterogeneous Services conectar MySQL ODBC

1) Configura Heterogeneous Services, creamos un archivo llamdo initChocMySQL y le agregamos estos parámetros:

Nombre el Archivo: initChocMySQL.ora
HS_FDS_CONNECT_INFO = ChocMySQL
HS_FDS_TRACE_LEVEL = OFF

2) configurar listener.ora agregar el siguiente parametro a SID_LIST_LISTENER

(SID_DESC =
(SID_NAME = ChocMySQL)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM=dg4odbc)  
)

3) Agregar tnsnames.ora el siguiente parametro puede usar localhost o nombre del equipo

CHOC=localhost

  (DESCRIPTION=

    (ADDRESS=

      (PROTOCOL=TCP)

      (HOST=CHOC)

      (PORT=1521)

    )

    (CONNECT_DATA=

     (SID=ChocMySQL)

    )

    (HS=OK)

  )

4) crear el ODBC utilizar las credenciales de usuario MySQL que deseamos conectar

Data Source Name=ChocMySQL

user: usuarioMySQL

password: cac123



5) CREATE DATABASE LINK «dblink_choc»
CONNECT TO «usuarioMySQL» IDENTIFIED BY «cac123»
USING ‘ChocMySQL’;

Verificamos que el listener estan inicados

Run> LSNRCTL

LSNRCTL>status

Service «ChocMySQL» has 1 instance(s).
Instance » ChocMySQL «, status UNKNOWN, has 1 handler(s) for this service…

De lo contrario podemos reiniciar listener LSNRCTL start

Run SQLPlus:

SQL*Plus: Release 11.2.0.2.0 Production on Thu May 2 17:58:33 2019

Copyright (c) 1982, 2014, Oracle. All rights reserved.

choc> connect ChocOracle
Enter password:
Connected.
ChocOracle@XE> select * from dual@ dblink_choc ;

D
X

Listo!

Saludos

Choc

Publicado en DataBase, DBMS, Diversidad, Oracle Data Base | Etiquetado , , , , , | 1 comentario

Big Data Arquitectura de Datos

Big Data Arquitectura de Datos

Data Ingestion:

La incorporación de datos son procesos que permiten la importación de datos para ser almacenados y posteriormente ser usados, en otras palabras, es extraer o absorber información de otras fuentes. Este proceso normalmente es conocido como Extract, Transform, Load (ETL).  Este proceso permite extraer, transformar y cargar la información basado en restricciones de como formatear la información para ser guardado en esquemas.

ETL a menudo permite validad información a través de restricciones, además permite realizar Data Quality según el esquema modelado. Como lo indica este proceso se debe de diseñar métodos y querys que permiten extraer, transferir y cargar información a base de datos relaciones, es decir que estén estructurados a través de un modelo relacional.

Extract (Fuente de datos) ->  Transform (Línea procesamiento) ->  Load (Modelo Relacional)

Sin embargo, en los últimos años la generación de información crece de manera exponencial la mayoría de las fuentes de datos están almacenados en datos semiestructurados y no estructurados sumados a los estructurados a través de un modelo relacional.

Sin duda alguna en los datos estructurados existe grandes volúmenes de información aplicar ETL es eficiente, pero los semi y no estructurados están configurados en características diferentes.

Hoy en día existe la definición 3Vs de Big Data, normalmente los Data Scientists describen big data en tres dimensiones Volumen, Velocidad, Variedad. También algunos agregan 4Vs de Big Data como por ejemplo IBM agrega el concepto Veracidad, e inclusive Valor formando 5Vs de Big Data.

Si definimos a Big Data Volumen de información exponencial, mayor Velocidad de análisis de información en tiempo real y sobre todo Variedad de formatos de datos. Sin duda alguna utilizar el proceso de ETL no seria muy optimo porque las diferentes fuentes de Extract son divergentes por sus formatos, la Transform de información tardaría porque la línea de procesamiento requerirá más tiempo, finalmente Load información.

A partir de este punto deberías de pensar en Schema On Write como en las bases de datos relaciones y pensar en Schema On Read.

De esta manera el esquema de lectura se podrá acceder a la fuente de información para ser consultado de manera más rápida, la carga de información y la extracción se aplicarán en el procesamiento analítico en ellas se validarán las reglas, normalización, validaciones, data quality, etc. Este proceso se le conoce como Extract, Load, Transform ELT.

Extract (Fuente de datos) ->  Transform (Data Lake) ->  Load (Línea de procesamiento)

Data Lake:

Un Data Lake es un método de almacén de datos que almacenan fuentes de información a través de repositorios o sistema de información en su formato original. Esto permite la diversificación de varios esquemas y formatos, que pueden ser estructurados a través de un modelo relacional, semiestructurados e inclusive no estructurados.

Es posible implementar Hadoop Distributed File System (HDFS), AWS Glue and Amazon S3 o MapR-FS.

Data Science:

La Data Science es un campo interdisciplinario que permite extraer conocimiento a través de los datos que pueden ser estructurados, semi o no estructurados. Utilizando métodos estadísticos, procesos, algoritmos, técnicas, análisis de datos, modelos de fenómenos reales a través de Machine Learning.

Data Access:

La mayor parte de la información son accedidos por profesionales por ingenieros o científicos de datos a través de herramientas disponibles de Apache Spark a través de Hive, Pig, etc.

También pueden que otros sistemas necesitan conectarse a estos datos Apache Spark proporciona adaptadores o conexiones que permiten utilizar herramientas de Business Intelligence.

Para que usuarios finales utilicen herramientas BI y podrán acceder a los informes y resultados de los análisis.

Publicado en Big Data | Etiquetado , , , , , , | 1 comentario

Oracle Spatial and Graph

Es un componente de las bases de datos Oracle, la cual administra los datos geográficos y geoposicionamiento un tipo nativo de la base de datos Oracle.

Oracle Spatial and Graph proporciona un esquema SQL y funciones que facilitan el almacenamiento, actualización y consulta de identidades espaciales en una base de datos.

El esquema MDSYS derivado de Multi-Dimensional System define el almacenamiento, sintaxis, las semanticas de lo soportado por las geometrías espaciales o identidades tanto vector como raster, y los diferentes tipos de datos.

Oracle Spatial an graph Contiene

  • Un esquema de datos geoespaciales
  • Un sistema de indexación espacial de tipo Arbol-R.
  • Un API de SQL para realizar operaciones geométricas.
  • Un API de ajuste de datos espaciales
  • Un modelo de topologías
  • Un Modelo de network
  • Un tipo de datos GeoRaster para almacenar, indexar, consultar y recuperar datos ráster.

Es posible utilizar las funciones de y el esquema SQL para crear polígonos, líneas. Inclusive para realizar inner join como intersección, unión, diferente a nivel espacial, además crear funciones que permiten determinar distancias entre puntos matrices.

La potencial de Oracle Spatial and Graph también permite soportar la estructura para calcular datos a través de inner join relacional tanto como espacial.

Publicado en Diversidad | Etiquetado , | Deja un comentario

Letra emotion de Samantha Sang en español

Se terminó y está hecho
Pero la angustia vive en el interior ahhh
y de quien te estas aferrando
en vez de mi esta noche

Y donde estás ahora
Ahora te necesito
Lágrimas en mi almohada
Donde quiera que vayas

Voy a llorar un rio
Que conduce a tu océano
No me veras derrumbarme
son las palabras de un corazón herido

Es la emoción que me aferra
Atado en el dolor, perdido en mi alma
Pero si no vuelves
Ven a mi casa, cariño

Sabes que nadie en este mundo te abrazara
Nadie en este mundo, te da dará el beso de buenas noches
Buenas noches,
Buenas noches

Estoy allí a tu lado
Soy parte de todas tus cosas ahhh
Pero tu tienes una parte de alguien mas
debes de buscar tu estrella brillante

Y donde estás ahora
Ahora te necesito
Lágrimas en mi almohada
Donde quiera que vayas

Voy a llorar un rio
Que conduce a tu océano
No me veras derrumbarme
son las palabras de un corazón herido

Es la emoción que me aferra
Atado en el dolor, perdido en mi alma
Pero si no vuelves
Ven a mi casa, cariño

Sabes que nadie en este mundo te abrazara
Nadie en este mundo, te da dará el beso de buenas noches
Buenas noches,
Buenas noches

Y donde estás ahora
Ahora te necesito
Lágrimas en mi almohada
Donde quiera que vayas

Son las palabras de un corazón herido
Es la emoción que me aferra
Atado en el dolor, perdido en mi alma
Pero si no vuelves
Ven a mi casa, cariño

Sabes que nadie en este mundo te abrazara
Nadie en este mundo, te da dará el beso de buenas noches
Buenas noches,
Buenas noches

Publicado en Diversidad | Etiquetado | Deja un comentario

SQLite ANDROID Y LAS BASES DE DATOS MOVILES

Resumen

Que el lector se introduzca sobre definición básica de DataBase Management System, como también la concepción elemental de lo que es una base de datos, además que el leyente esté al tanto sobre los distintos DataBase Management System que existen para los dispositivos móviles.

Asimismo que el lector conozca las tres formas nativas de almacenar los datos persistentes en el Sistema Operativo de Android, los paquetes usados para la conexión a las base de datos, también la administración de base de datos privados para SQlite, el compartimiento de datos entre aplicaciones, por último los paquetes básicos usados para la creación o realización de querys para la base de datos SQLite.

Objetivos

  • Estudiar los diferentes DataBase Management System para los dispositivos móviles.
  • Identificar los paquetes de Android usados para conectarse a otros DataBase Management System.
  • Conocer paquete utiliza Android para las base de datos privadas.

Desarrollo del tema

SISTEMA DE ADMINISTRACION DE BASE DE DATOS

Un DataBase Management System (DBMS) es un software de aplicación su función básica es la administración de las base de datos, como también proporciona la interacción con otras aplicaciones, usuarios, distintas base de datos almacenados. Los DBMS pueden clasificarse por modelos como relacionales, espaciales, grafos, orientado a objeto, etc.

Además los DBMS, permiten la definición de la estructura según el modelo usado, por ejemplo la definición de la estructura en un modelo relational se llama relación (tabla) y esta se crea través de DDL, para espacial la estructura es feature, modelo orientado a objetos su estructura es Node, etc.

En este artículo se enfoca al modelo relacional, dicho eso los DDL son usados para crear la estructura de la relación y estas utilizan la Data Manipulation Languague (DML) para la inserción, actualización, consulta de las tuplas (dato) de las relaciones de las bases de datos que contenga.

Los DBMS utilizan Data Control Language (DCL) este lenguaje permite controlar el procesamiento de las transacciones de las bases de datos.

Las bases de datos pueden comunicarse con distintas DBMS a través de Structured Query Language (SQL) y Open Database Connectivity (ODBC) o Java Database Connectivity (JDBC).

BASE DE DATOS

Sabemos que un DBMS es principal función básica es la administración de base de datos a través de la definición de su estructura relacional, manipulación de tuplas y control de la datos. En realidad una base de datos o Data Base (DB) no es más que una colección organizada datos.

DBMS PARA MOVILES

SQL ANYWHERE

Es un Relational Database Management System (RDBMS) es un producto de Systemanalyse und Programmentwicklung (SAP). Es usada como base de datos móviles incluye una sincronización de base de datos. Además soporta varias interfaces estándar ODBC y JDBC.

SYBASE ADAPTIVE SERVER ANYWHERE (ASA)

Es un RDBMS de alto rendimiento, incluyen transacciones, e incluso un optimizador de consultas, ASA opera en varias plataformas además permite la establecer conexiones a través de ODBC, JDBC, ADO.NET, etc.

MICROSOFT SQL SERVER COMPACT (SQL SERVER CE)

Es modelo RDBMS libre de descarga, distribución y uso, usado para las base de datos de los dispositivos móviles o establecer conexiones a través ADO.NET.

ORACLE DATABASE LITE

Este motor de base de datos diseñado para dispositivos móviles, son ejecutado dentro del dispositivo móvil, además Oracle Database Lite proporciona la infraestructura para ejecutar aplicaciones en toda la red de la organización utiliza la infraestructura móvil de Oracle Database Lite se encarga de sincronizar, conectar, asociar la información con otros DBMS.

ORACLE DATABASE MOBILE SERVER

Es un servidor que ofrece la sincronización de base de datos remotas sincronizados en las base de datos Oracle backend.

SQLITE

Es un biblioteca de software esta puede ser implementa en varios sistemas operativos móviles, es ligero, es autónomo, sin servidor, sin configuración, es un motor de base de datos SQL.

ALMACENAMIENTO DE DATOS EN BASES DE DATOS SQL PARA ANDROID

Antes de hablar del almacenamiento de datos en las base de datos, es necesario conocer que en Android utiliza tres formas nativas para almacenar los datos persistentes, es decir como los datos se almacenan en un dispositivo externo como el disco duro y no almacenada temporalmente en la Random Access Memory (RAM).

La Application Programming Interface (API) SharePreferences permite almacenar un conjunto de dato clave-valor en su carpeta de datos, estas se almacena dentro de la carpeta de la aplicación en un archivo xml. Otra forma de persistencia de datos es File, esto se utiliza para manipular grandes cantidades de datos, estos archivos pueden ser almacenados internamente o externamente de la aplicación.

Por ultimo Android puede realizar la persistencia de datos en una base de datos utilizando SQL. Trataremos sobre esta última, Android utiliza una base de datos privados a esto nos referimos que solo la aplicación puede acceder, modificar, consultar, hacer uso de la información almacenada. Ahora bien si otra aplicación se desea consultar y modificar información de otra base de datos se utiliza el Content Providers de Android.

Para el almacenamiento de datos, Android utiliza SQLite como modelo RDBMS. SQLite es una biblioteca implementada en Android es autónomo, sin servidor, sin configuración, permite realizar transacciones a través de la serializabilidad de datos, es un motor de base de datos SQL y por ultimo SQLite no cuenta con todas las características de un RDBMS por ser ligero y va incrustado en la aplicación no es cliente-servidor.

PAQUETE JAVA.SQL PARA ANDROID

Android proporciona el paquete java.sql donde en ello convergen interfaces y clases para las conexiones de JDBC. La interfaz java.sql.Drive nos permite controlar JDBC, las instancias son devueltas por java.sql.DriverManager, este Drive utiliza Uniform Resource Locator (URL) para conectarse con JDBC.

java.sql.DriverManager proporciona la gestión de los Drivers JDBC, Android no incluye ningún Driver JDBC por defecto, la cual se debe de instanciar una durante la ejecución de la aplicación, DriverManager carga los Drivers JDBC. Otra alternativa de interfaz de conexión es javax.sql.DataSource.

PAQUETE ANDROID.DATABASE

Java.sql proporciona conexión a los direfentes DBMS existen en el mercado como por ejemplo Oracle Database, Microsoft SQL Server, MySQL, etc.

Para un mejor rendimiento a las conexiones de JDBC Android proporciona el paquete java.database esta contiene clases para administrar las bases de datos privadas para ello se utiliza la clase android.database.sqlite nos permite administrar y realizar operaciones pertinentes en la base de datos SQLite. Si se desea compartir datos en múltiples aplicaciones se utiliza android.content.ContentProvider.

CREACIÓN DE UNA DB Y CONSULTA CON SQLite DE ANDROID

Para la creación de una base de datos se utiliza el paquete android.database.sqlite y la clase SQLiteOpenHelper nos permite crear y actualizar la base de datos privadas, para realizar consulta, inserción, actualización y eliminación utilizar la clase SQLiteDatabase estas dos clases están contenidas en el paquete.

Conclusiones

En la industria existe varios software de DBMS para los dispositivos móviles según las necesidades podemos mencionar SQL Anywere de SAP, Sybase ASA, SQL Server CE, Oracle Database Lite, Oracle Database Mobile Server, SQLite todos

Para la conexión a los distintos DBMS Android proporciona el paquete java.sql utilizando la interfaz java.sql.Drive para administrar JDBC.

La administración de las bases de datos privados Android utiliza el paquete java.database de su clase android.database.sqlite.

Recomendaciones

Realizar un estudio e investigación sobre el software DBMS para implementarlo a los dispositivos móviles así garantizar el óptimo funcionamiento de la aplicación para la realización de conexión, consultas, actualizacion de las bases de datos.

Android proporciona el paquete java.sql para realizar las conexiones con otros DBMS, es necesario profundizar para establecer conexiones estables.

El paquete java.database es recomendado para agilizar la aplicación estableciendo base de datos privadas o compartiendo datos a través de content providers.

Bibliografía

Date, C. (2001). Introducción a los sistemas de bases de datos. Editorial Pearson Educación.

López, E. (2015). 100 Preguntas y Respuestas para trabajar como Desarrollador Android Editor          Enrique López Mañas

Robledo, C. et at. (2012). Programación en Android. Editor Ministerio de Educación.

E-grafía

Developers Android (2016). android.database.sqlite. Extraído el 16 de Abril de 2016 http://developer.android.com/reference/android/database/sqlite/package-summary.html

Developers Android (2016). ContentProvider. Extraído el 16 de Abril de 2016 http://developer.android.com/intl/es/reference/android/content/ContentProvider.html

Developers Android (2016). Driver. Extraído el 16 de Abril de 2016 http://developer.android.com/intl/es/reference/java/sql/Driver.html

Developers Android (2016). DriverManager. Extraído el 16 de Abril de 2016 http://developer.android.com/intl/es/reference/java/sql/DriverManager.html

Developers Android (2016). Saving Data in SQL Databases. Extraído el 16 de Abril de 2016 http://developer.android.com/intl/es/training/basics/data-storage/databases.html

Orozco, A. (2012) Base de Datos Moviles. Extraído el 16 de Abril de 2016 https://modelosbd2012t1.wordpress.com/2012/03/15/base-de-datos-moviles-3/

SQlite. (2016). About SQlite. Extraído el 16 de Abril de 2016 https://www.sqlite.org/about.html

Publicado en Android, DataBase, DBMS | Etiquetado , , | Deja un comentario

Cambiar de layout Android Studio

En este mini tutorial veremos el cambio de layout con Android Studio de forma sencilla

Para ello nos clic derecho en el proyecto->New->XML->Layout XML File

Android-Studio-New-XML-Layout

Android-Studio-New-XML-Layout

Para ello nos muestra la siguiente ventana. En campo Layout File Name: colocar el nombre y Root Tag: el tipo de layout (FrameLayout, Linearlayout, RelativeLayout), Clic en Finish

Android-Studio-New-Layout

Android-Studio-New-Layout

Listo

Android-Studio-New-Layout-XML

Android-Studio-New-Layout-XML

 

Publicado en Android | Etiquetado , | Deja un comentario