sábado, 14 de marzo de 2020

Promoviendo compartir información durante estos días de coronavirus

Este es un llamado a todos los miembros del Programa Oracle en Latinomérica y al público en general.

Compañeros y compañeras, hoy en muchos países de nuestra región, existen miles de personas que han tenido que trasladar su lugar de trabajo a sus hogares o en el peor de los casos, han suspendido labores.

El tema de la pandemia global por el #coronavirus es un gran desafío para toda la humanidad, pero también, crea el escenario perfecto, para cambiar el esquema costumbres, trabajo, comercialización y aprendizaje de todo el mundo.

Te quiero invitar, para que nos únamos todos y podamos aportar tiempo de calidad y conocimiento, para toda la comunidad, aportando ponencias en toda la gama de diversidad de temas del Universo Oracle.

Pongo a su disposición, mi plataforma de Zoom, para que programen webinar gratuitos, hasta con 100 participantes en la sala. Grabaremos las sesiones y luego las colgaremos en un sitio en Youtube, para aquellos que no tengan la posibilidad de conectarse o no lo logren por campo.

Me contactan por @rovaque o ronald.vargas.quesada@gmail.com, me envían el título de la charla, un pequeño resumen, el horario deseado y les colaboro con el tema de la plataforma y la programación.

Por este FB y el blog Oracledbacr.blogspot.com, les estaré brindando apoyo de difusión.

Mirza Yael te agradecería mucho tu apoyo en el eco que podamos hacer a través de tu red social.

Quién se apunta.?
Vamos....

Y recuerden:

"Lavarse las manos constantemente con agua y jabón. Seguir los protocolos de estornudo y tos en el antebrazo y si tienes molestia de resfrío, no salgas de tu casa"

La prevención, comienza con nosotros.

Un abrazo enorme a todos.

jueves, 5 de marzo de 2020

Como instalar Oracle Database 19c utilizando un paquete RPM


Cada vez más, Oracle se preocupa por ayudarnos a hacer las cosas de manera más rápida, fácil y práctica.

Oracle Database 19c, se puede instalar directamente desde el repositorio administrativo de paquetes para Linux, siguiendo los siguientes pasos:

Installing Oracle Database Using RPM Packages
Primero que todo, verique los siguientes puntos que son importantes:
  1. Disponibilidad de memoria
  2. Espacio en disco
  3. Versión del sistema operativo requerida
  4. Verifique que el nombre del hostname y la dirección IP asignada al equipo se encuentran definidos en el archivo /etc/hosts
Proceso en memoria corriendo
[oracle@lab2 etc]$ top
top - 11:39:36 up 23 min,  3 users,  load average: 0.08, 0.77, 2.14
Tasks: 244 total,   1 running, 163 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.3 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8158712 total,  2816204 free,   601552 used,  4740956 buff/cache
KiB Swap:  8257532 total,  8257532 free,        0 used.  7387032 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 6970 oracle    20   0  162128   4664   3872 R   1.0  0.1   0:00.36 top
 5083 oracle    20   0  214964   3280   2916 S   0.7  0.0   0:09.28 VBoxClient
    1 root      20   0  193820   8472   5744 S   0.3  0.1   0:28.80 systemd
 1582 root      20   0       0      0      0 S   0.3  0.0   0:04.98 xfsaild/dm-0
 6919 root      20   0       0      0      0 I   0.3  0.0   0:00.03 kworker/3:0
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.19 kthreadd
    4 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kworker/0:0H
    5 root      20   0       0      0      0 I   0.0  0.0   0:00.65 kworker/u8:0
    6 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 mm_percpu_wq
    

Espacio en disco
[oracle@lab2 etc]$ df -h
Filesystem                Size  Used Avail Use% Mounted on
devtmpfs                  3.9G     0  3.9G   0% /dev
tmpfs                     3.9G     0  3.9G   0% /dev/shm
tmpfs                     3.9G  9.4M  3.9G   1% /run
tmpfs                     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/ol_lab2-root   50G   12G   39G  24% /
/dev/sda1                1014M  293M  722M  29% /boot
/dev/mapper/ol_lab2-home   50G   46M   50G   1% /home
Documentacion             466G  268G  198G  58% /media/sf_Documentacion
tmpfs                     797M  4.0K  797M   1% /run/user/42
tmpfs                     797M   28K  797M   1% /run/user/54321

Validando la versión del sistema operativo

[oracle@lab2 app]$ more /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
[oracle@lab2 app]$ cd /etc
[oracle@lab2 etc]$ ls -la *rele*
-rw-r--r--. 1 root root  32 Nov  2  2018 oracle-release
-rw-r--r--. 1 root root 435 Nov  2  2018 os-release
-rw-r--r--. 1 root root  52 Nov  2  2018 redhat-release
lrwxrwxrwx. 1 root root  14 Apr 13 08:32 system-release -> oracle-release
-rw-r--r--. 1 root root  31 Nov  2  2018 system-release-cpe
[oracle@lab2 etc]$ more oracle-release
Oracle Linux Server release 7.6

[oracle@lab2 etc]$ more os-release
NAME="Oracle Linux Server"
VERSION="7.6"
ID="ol"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.6"
PRETTY_NAME="Oracle Linux Server 7.6"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:7:6:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7"
ORACLE_BUGZILLA_PRODUCT_VERSION=7.6
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=7.6


[oracle@lab2 app]$ more /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.1        lab2 lab2.oracle.com

[oracle@lab2 app]$ more /etc/hostname
lab2.oracle.com
[oracle@lab2 app]$ hostname
lab2.oracle.com

Una vez validado los puntos anteriores, vamos a pasarnos al directorio /opt/app para realizar aquí la descarga de los paquetes.

[oracle@lab2 product]$ cd /opt/app

Con el siguiente comando, podrás descargar directamente la versión de la base de datos, desde el repositorio.

Ten en consideración la velocidad de conexión de tu internet. Son un poco más de 2.5GB que debes descargar.

[oracle@lab2 app]$ curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 18204  100 18204    0     0  16915      0  0:00:01  0:00:01 --:--:-- 16997

[oracle@lab2 app]$ ls -la
total 2631512
drwxr-xr-x. 3 oracle oinstall         67 Apr 28 07:12 .
drwxr-xr-x. 6 root   root             76 Apr 13 19:43 ..
drwxr-xr-x. 3 oracle oinstall         36 Apr 28 06:59 oracle
-rwxr-x---. 1 oracle oinstall 2694664264 Apr 27 16:31 oracle-database-ee-19c-1.0-1.x86_64.rpm

También, para estar completamente seguros, que nuestro sistema cuenta con todo lo necesario para instalar la versión de base de datos, podemos descargar el paquete de validación de pre-requisitos y configuración del ambiente.

A continuación encontrarás como hacer esto.

Para bajar paquete de validación de prerequesitos.

curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

Una vez descargado el paquete, puedes hacer la instalación de la siguiente manera:
yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

Si no se presentan problemas con la ejecución del pre-instalador de la base de datos, podemos continuar con la instalación del software del motor.

[oracle@lab2 app]$ yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
Loaded plugins: langpacks, ulninfo
You need to be root to perform this command.
[oracle@lab2 app]$

Este proceso puede tomar unos 40 minutos apróximadamente.

Una vez concluído, podemos continuar con la creación de un contenedor para bases de datos y una base de datos acoplada.

Base de datos de ejemplo con CDB y PDB
Proceso de creación de:
Una base de datos de prueba llamada "ORCLCDB", con una pluggable database (PDB) con el nombre "ORCLPDB1"


# /etc/init.d/oracledb_ORCLCDB-19c configure

Otra manera de crear el contenedor y la base de datos PDB, es llamar al DBCA y configurar desde ahí lo requerido.

Nota: La instalación del motor de base de datos, requiere a diferencia de las instalaciones con despliegue de archivo comprimido, que el usuario que haga la instalación sea ROOT.

Si intentas hacer la instalación con el usuario "oracle", recibirás el siguiente mensaje:

[oracle@lab2 app]$ yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
Loaded plugins: langpacks, ulninfo
You need to be root to perform this command.
[oracle@lab2 app]$

Buena suerte amigos y amigas, ya están listos para empezar a utilizar Oracle Database 19c.

Oracle Database: Restricciones de particionamiento para múltiples tamaños de bloque


Aplica para 12c, 18c, 19c, 20c

Hay que tener cuidado a la hora de crear objetos particionados en una base de datos con TABLESPACES de diferentes tamaños de bloque. 

El almacenamiento de objetos particionados en los TABLESPACES está sujeto a algunas restricciones. Específicamente, todas las particiones de las siguientes entidades deben residir en un TABLESPACE del mismo tamaño de bloque: 
· tablas convencionales
· Índices
· Segmentos de índice de PK de tablas organizadas por índice
· Segmentos de desbordamiento de tablas organizadas por índice
· Columnas LOB almacenadas fuera de línea 
Por lo tanto: 
  • Para cada tabla convencional, todas las particiones de esa tabla deben almacenarse en tablespaces con el mismo tamaño de bloque. 
  • Para cada tabla organizada por índice, todas las particiones de índice de clave principal deben residir en espacios de tabla del mismo tamaño de bloque y todas las particiones de desbordamiento de esa tabla deben residir en tablespaces del mismo tamaño de bloque. Sin embargo, las particiones de índice y las particiones de desbordamiento pueden residir en tablespaces de diferentes tamaños de bloque. 
  • Para cada índice (global o local), cada partición de ese índice debe residir en TABLESPACES del mismo tamaño de bloque. Sin embargo, las particiones de diferentes índices definidos en el mismo objeto pueden residir en TABLESPACES de diferentes tamaños de bloque. 
  • Para cada columna LOB, cada partición de esa columna debe almacenarse en un TABLESPACES de igual tamaño de bloque. Sin embargo, se pueden almacenar diferentes columnas LOB en TABLESPACES de diferentes tamaños de bloque. 
  • Cuando crea o modifica una tabla o índice particionado, todos los TABLESPACES que especifique explícitamente para las particiones y subparticiones de cada entidad deben ser del mismo tamaño de bloque. 
  • Si no especifica explícitamente el almacenamiento de espacios de tablas para una entidad, los TABLESPACES que usa la base de datos de manera predeterminada deben ser del mismo tamaño de bloque. Por lo tanto, debe conocer los TABLESPACES predeterminados en cada nivel del objeto particionado.
Tenga en cuenta estas restricciones a la hora de crear tablas particionadas.

La documentación oficial de cada versión, la puede encontrar en los siguientes links:





Este post podría llamarse "Un gran desperdicio de espacio" o "Casi siempre, nada es lo que parece" Oracle Database SE2 HA en 19c y 20c


Hola gente, disculpen que los dejé algo solos durante unos días. Ya estamos nuevamente por acá y el motivo de "mi visita", es que recientemente se dió a conocer un cambio de lineamiento con respecto al tema de "Alta Disponibilidad" en base de datos Oracle 19c Standard Edition.

Recordaran en mi webinar, que una de las sorpresas que tuvimos el año anterior, es que la versión más popular de la base de datos Oracle, la versión Standard Edition, no soporta más RAC en 19c.

La semana anterior, con el anuncio de la versión 20c, se dió a conocer, que la versión Standard Edition de este release, "si soportará HA (*) y que más adelante en este año, la versión 19c, como producto de un RU ( Release Update ), también lo hará."

Han visto que puse un " * ", por ahí, verdad?

Bueno, el tema es el siguiente:

"Oracle 20c y 19c Standard Edition, van a tener soporte para HA ( RAC ), con la limitación, de que en conjunto, los dos nodos que pueden formar parte de un RAC en Standard Edition, no pueden utilizar más de 16 hilos por configuración."

O sea, máximo 8 hilos por cada nodo. !!!

A nivel de "escalabilidad", es un absurdo pensar en una base de datos productiva, de mediano tamaño, con esa cantidad de recursos de CPU.

Recuerden que un hilo o en inglés Thread, es la parte más pequeña de un Core a nivel de CPU.

Los CPU, se pueden componer de múltiples Cores y los Cores a su vez, pueden tener múltiples hilos.

Por ejemplo, para ponerlo en dimensiones, el nuevo SUN Sparc T8-1 tiene un CPU con 32 cores y cada core tiene 8 hilos para un total de 256 hilos de procesamiento.

Se imaginan un RAC con dos equipos de este tipo, utilizando un sólo Core por cada "tarro"?

Sería como dijo un admirado y "viejo amigo", un gran desperdicio de espacio.


jueves, 13 de febrero de 2020

Oracle Linux: Desfragmentar un sistema de archivos XFS

Una de las primeras cosas que hacíamos hace ya bastante años atrás, era el proceso de realizar una desfragmentación sobre los discos duros de nuestras computadoras.

Algunos, los valíamos de software "especializado" como Norton Disk Doctor u otros.

La biblioteca de conocimiento popular Wikipedia, define la fragmentación de la siguiente manera:
"La desfragmentación es el proceso conveniente mediante el cual se acomodan los archivos en un disco para que no se aprecien fragmentos de cada uno de ellos, de tal manera que quede contiguo el archivo y sin espacios dentro del mismo. Al irse escribiendo y borrando archivos continuamente en el disco duro, los fragmentos tienden a no quedar en áreas continuas, así, un archivo puede quedar "partido" en muchos pedazos a lo largo del disco, se dice entonces que el archivo está "fragmentado".
Al tener fragmentos de incluso un archivo esparcidos por el disco, se vuelve ineficiente el acceso a los archivos.
Los fragmentos de uno o varios archivos es lo que hace factible la desfragmentación.
El problema de almacenamiento no contiguo de los archivos se denomina fragmentación, es conveniente desfragmentar el almacenamiento de los archivos en dispositivos de almacenamiento electromecánicos por el uso del computador. (Los SSD no son mecánicos)."
En el caso de Oracle Linux podemos usar el comando xfs_fsr para desfragmentar sistemas de archivos XFS completos o archivos individuales dentro de un sistema de archivos XFS.

Como XFS es un sistema de archivos basado en la extensión, generalmente no es necesario desfragmentar un sistema de archivos completo, y no se recomienda hacerlo.

Si ejecuta el comando xfs_fsr sin ninguna opción, el comando desfragmenta todos los sistemas de archivos XFS grabables y actualmente montados que se enumeran en /etc/mtab.

Durante un período de dos horas, el comando pasa por cada sistema de archivos a su vez, intentando desfragmentar el diez por ciento superior de los archivos que tienen la mayor cantidad de extensiones. Después de dos horas, el comando registra su progreso en el archivo /var/tmp/.fsrlast_xfs, y se reanuda desde ese punto si ejecuta el comando nuevamente.

Con el comando xfs_db -r -c "frag -f" se puede evaluar los cambios realizados sobre el nivel de desfragmentación en el sistema de archivos.

Nota: Existen múltiples bugs registrados en MOS, asociados al emplear este comando sobre sistemas de archivos en donde existen archivos de datos repositorios de TABLESPACES, de una base de datos Oracle. Mi recomendación es, evaluar el nivel de fragmentación y si esta es lo suficiente significativa como para realizar esta tarea de mantenimiento, se debe crear una ventana de tiempo, bajar la base de datos y proceder a ejecutar la tarea.

[root@Lab1BD]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
devtmpfs                         2.8G     0  2.8G   0% /dev
tmpfs                            2.8G   36K  2.8G   1% /dev/shm
tmpfs                            2.8G   57M  2.8G   2% /run
tmpfs                            2.8G     0  2.8G   0% /sys/fs/cgroup
/dev/mapper/ol_lab1bd-root   50G   12G   39G  23% /
/dev/sda1                       1014M  169M  846M  17% /boot
/dev/mapper/ol_lab1bd-home  2.1T  639G  1.5T  31% /home
tmpfs                            571M     0  571M   0% /run/user/0
tmpfs                            571M     0  571M   0% /run/user/54321

[root@Lab1BD]# xfs_db -r -c "frag -f" /dev/mapper/ol_lab1bd-home
actual 71329, ideal 4587, fragmentation factor 93.57%
Note, this number is largely meaningless.
Files on this filesystem average 15.55 extents per file

[root@Lab1BD]# xfs_fsr -v /dev/mapper/ol_lab1bd-home
/home start inode=0
ino=174
extents before:11889 after:1 DONE ino=174
ino=186
extents before:17 after:2      ino=186
ino=187
extents before:6 after:1 DONE ino=187
ino=172
extents before:5 after:1 DONE ino=172
ino=188
extents before:5 after:1 DONE ino=188
ino=189
extents before:5 after:1 DONE ino=189
ino=182
extents before:3 after:1 DONE ino=182
ino=144
extents before:2 after:1 DONE ino=144
ino=149
extents before:2 after:1 DONE ino=149
ino=4810
extents before:624 after:1 DONE ino=4810
ino=4789
extents before:40 after:3      ino=4789
ino=4797
extents before:38 after:3      ino=4797
ino=4793
extents before:37 after:2      ino=4793
ino=4796
extents before:37 after:1 DONE ino=4796
ino=4799
extents before:38 after:2      ino=4799
ino=4801
extents before:36 after:2      ino=4801
ino=4802
extents before:36 after:2      ino=4802
ino=4792
extents before:35 after:1 DONE ino=4792
ino=4794
extents before:34 after:2      ino=4794
ino=4795

[root@Lab1BD]# xfs_db -r -c "frag -f" /dev/mapper/ol_Lab1bd-home

actual 58883, ideal 4588, fragmentation factor 92.21%
Note, this number is largely meaningless.
Files on this filesystem average 12.83 extents per file

[root@Lab1BD]#

Oracle Announces Oracle Cloud Data Science Platform


Press Release

New service makes it quick and easy for data science teams to collaboratively build and deploy powerful machine learning models

REDWOOD SHORES, Calif.—Feb 12, 2020
________________________________________

Oracle today announced the availability of the Oracle Cloud Data Science Platform. At the core is Oracle Cloud Infrastructure Data Science, helping enterprises to collaboratively build, train, manage and deploy machine learning models to increase the success of data science projects. Unlike other data science products that focus on individual data scientists, Oracle Cloud Infrastructure Data Science helps improve the effectiveness of data science teams with capabilities like shared projects, model catalogs, team security policies, reproducibility and auditability. Oracle Cloud Infrastructure Data Science automatically selects the most optimal training datasets through AutoML algorithm selection and tuning, model evaluation and model explanation.

Today, organizations realize only a fraction of the enormous transformational potential of data because data science teams don’t have easy access to the right data and tools to build and deploy effective machine learning models. The net result is that models take too long to develop, don’t always meet enterprise requirements for accuracy and robustness and too frequently never make it into production.

“Effective machine learning models are the foundation of successful data science projects, but the volume and variety of data facing enterprises can stall these initiatives before they ever get off the ground,” said Greg Pavlik, senior vice president product development, Oracle Data and AI Services. “With Oracle Cloud Infrastructure Data Science, we’re improving the productivity of individual data scientists by automating their entire workflow and adding strong team support for collaboration to help ensure that data science projects deliver real value to businesses.”

Designed for Data Science Teams and Scientists

Oracle Cloud Infrastructure Data Science includes automated data science workflow, saving time and reducing errors with the following capabilities:
• AutoML automated algorithm selection and tuning automates the process of running tests against multiple algorithms and hyperparameter configurations. It checks results for accuracy and confirms that the optimal model and configuration is selected for use. This saves significant time for data scientists and, more importantly, is designed to allow every data scientist to achieve the same results as the most experienced practitioners.
• Automated predictive feature selection simplifies feature engineering by automatically identifying key predictive features from larger datasets.
• Model evaluation generates a comprehensive suite of evaluation metrics and suitable visualizations to measure model performance against new data and can rank models over time to enable optimal behavior in production. Model evaluation goes beyond raw performance to take into account expected baseline behavior and uses a cost model so that the different impacts of false positives and false negatives can be fully incorporated.
• Model explanation: Oracle Cloud Infrastructure Data Science provides automated explanation of the relative weighting and importance of the factors that go into generating a prediction. Oracle Cloud Infrastructure Data Science offers the first commercial implementation of model-agnostic explanation. With a fraud detection model, for example, a data scientist can explain which factors are the biggest drivers of fraud so the business can modify processes or implement safeguards.
Getting effective machine learning models successfully into production needs more than just dedicated individuals. It requires teams of data scientists working together collaboratively. Oracle Cloud Infrastructure Data Science delivers powerful team capabilities including:
• Shared projects help users organize, enable version control and reliably share a team’s work including data and notebook sessions.
• Model catalogs enable team members to reliably share already-built models and the artifacts necessary to modify and deploy them.
• Team-based security policies allow users to control access to models, code and data, which are fully integrated with Oracle Cloud Infrastructure Identity and Access Management.
• Reproducibility and auditability functionalities enable the enterprise to keep track of all relevant assets, so that all models can be reproduced and audited, even if team members leave.
With Oracle Cloud Infrastructure Data Science, organizations can accelerate successful model deployment and produce enterprise-grade results and performance for predictive analytics to drive positive business outcomes.

Comprehensive Data and Machine Learning Services

The Oracle Cloud Data Science Platform includes seven new services that deliver a comprehensive end-to-end experience designed to accelerate and improve data science results:
• Oracle Cloud Infrastructure Data Science: Enables users to build, train and manage new machine learning models on Oracle Clou using Python and other open-source tools and libraries including TensorFlow, Keras and Jupyter.
• Powerful New Machine Learning Capabilities in Oracle Autonomous Database: Machine learning algorithms are tightly integrated in Oracle Autonomous Database with new support for Python and automated machine learning. Upcoming integration with Oracle Cloud Infrastructure Data Science will enable data scientists to develop models using both open source and scalable in-database algorithms. Uniquely, bringing algorithms to the data in Oracle Database speeds time to results by reducing data preparation and movement.
• Oracle Cloud Infrastructure Data Catalog: Allows users to discover, find, organize, enrich and trace data assets on Oracle Cloud. Oracle Cloud Infrastructure Data Catalog has a built-in business glossary making it easy to curate and discover the right, trusted data.
• Oracle Big Data Service: Offers a full Cloudera Hadoop implementation, with dramatically simpler management than other Hadoop offerings, including just one click to make a cluster highly available and to implement security. Oracle Big Data Service also includes machine learning for Spark allowing organizations to run Spark machine learning in memory with one product and with minimal data movement.
• Oracle Cloud SQL: Enables SQL queries on data in HDFS, Hive, Kafka, NoSQL and Object Storage. Only CloudSQL enables any user, application or analytics tool that can talk to Oracle databases to transparently work with data in other data stores, with the benefit of push-down, scale-out processing to minimize data movement.
• Oracle Cloud Infrastructure Data Flow: A fully-managed Big Data service that allows users to run Apache Spark applications with no infrastructure to deploy or manage. It enables enterprises to deliver Big Data and AI applications faster. Unlike competing Hadoop and Spark services, Oracle Cloud Infrastructure Data Flow includes a single window to track all Spark jobs making it simple to identify expensive tasks or troubleshoot problems.
• Oracle Cloud Infrastructure Virtual Machines for Data Science: Preconfigured GPU-based environments with common IDEs, notebooks and frameworks that can be up and running in under 15 minutes, for $30 a day.
What Customers Are Saying

AgroScout is dedicated to detecting early stage crop diseases to improve crop yields, reduce pesticide use and increase profits. “Our vision is to make modern agronomy economically accessible to the 1 billion farmers working on 500 million farms worldwide, constituting 30 percent of the global workforce. We plan to achieve this by offering cloud based, AI-driven sustainable agronomy, relying purely on input from low cost drones, mobile phones and manual inputs by growers,” said Simcha Shore, Founder and CEO AgroScout. “Success of this vision relies on the ability to manage a continuous and increasing flow of input data and our own AI-based solution to transform that data into precision and decision agriculture, at scale. Speed, scale and agility of Oracle Cloud has helped us realize our dream. Now, new horizons have opened up with the recent addition of Oracle Cloud Infrastructure Data Science that improves our data scientists’ ability to collaboratively build, train and deploy machine learning models. This addition has reduced costs, increased efficiency and has helped us increase our global footprint faster.”

IDenTV provides advanced video analytics based on AI capabilities powered by computer vision, automated speech recognition and textual semantic classifiers. “With Oracle Cloud Infrastructure Data Science, we are able to scale our data science efforts to deliver business value faster than ever before. Our data science teams can now seamlessly access data without worrying about the complexities of data locations or access mechanisms. While using open-source capabilities like TensorFlow, Keras, and Jupyter notebooks embedded within the environment, we can streamline our model training and deployment tasks resulting in tremendous cost savings and faster results,” said Amro Shihadah, Founder and COO, IDenTV. “We feel that Oracle Cloud Infrastructure Data Science in conjunction with benefits of Autonomous Database will give us the edge we need to be competitive and unique in the market.”
________________________________________

Contact Info
Nicole Maloney
Oracle
+1.650.506.0806
nicole.maloney@oracle.com
Victoria Brown
Oracle
+1.650.850.2009
victoria.brown@oracle.com

________________________________________


Oracle News: New Database Innovations Deliver a Single Database that Supports all Data


Blog 
Jenny Tsai-Smith, vice president, product management—Feb 12, 2020
________________________________________

Today during his keynote at Oracle OpenWorld London, Oracle Executive Vice President Juan Loaiza announced the latest innovations which further strengthen Oracle’s strategy of providing a single converged database engine able to meet all the needs of a business. The new database features enable customers to take advantage of new technology trends—such as employing blockchain for fraud prevention, leveraging the flexibility of JSON documents, or training and evaluating machine learning algorithms inside the database.

The future is data driven, and effective use of data will increasingly determine a company’s competitiveness. Unlocking the full value of an enterprise’s data requires a new generation of data driven apps. Oracle makes it easy to create modern data driven apps utilizing a single database engine which supports the most suitable data model, process type, and development paradigm for a wide variety of business requirements. We enable our customers to easily run many kinds of workloads against the same data. In contrast, other cloud providers require dozens of different specialized databases to handle different data types. Having to deploy multiple single-purpose databases leads additional challenges. Having to implement multiple different database engines will increase complexity, risk, and cost because each database introduces its own security model, its own set of procedures for implementing high availability, its own scalability capabilities, and requires separate skillsets to operate.

Much in the way a single smartphone is now a camera, a calendar, a platform for entertainment, and a messaging system, the same idea applies to Oracle’s converged database engine. With Oracle Database, enterprises are no longer forced into purchasing multiple individual single-purpose databases, when all they need is one converged database engine that handles everything.

Today, Oracle is announcing several new features which extend the converged capabilities in Oracle Database. These include: 

• Oracle Machine Learning for Python (OML4Py): Oracle Machine Learning (OML) inside Oracle Database accelerates predictive insights by embedding advanced ML algorithms which can be applied directly to the data. Because the ML algorithms are already collocated with the data, there is no need to move the data out of the database. Data scientists can also use Python to extend the in-database ML algorithms.
• OML4Py AutoML: With OML4Py AutoML, even non-experts can take advantage of machine learning. AutoML will recommend best-fit algorithms, automate feature selection, and tune hyperparameters to significantly improve model accuracy.
• Native Persistent Memory Store: Database data and redo can now be stored in local Persistent Memory (PMEM). SQL can run directly on data stored in the mapped PMEM file system, eliminating IO code path, and reducing the need for large buffer caches. Allows enterprises to accelerate data access across workloads that demand lower latency, including high frequency trading and mobile communication.
• Automatic In-Memory Management: Oracle Database In-Memory optimizes both analytics and mixed workload online transaction processing, delivering optimized performance for transactions while simultaneously supporting real-time analytics, and reporting. Automatic In-Memory Management greatly simplifies the use of In-Memory by automatically evaluating data usage patterns, and determining, without any human intervention, which tables would most benefit from being placed in the In-Memory Column Store.
• Native Blockchain Tables: Oracle makes it easy to use Blockchain technology to help identify and prevent fraud. Oracle native blockchain tables look like standard tables. They allow SQL inserts, and inserted rows are cryptographically chained. Optionally, row data can be signed to ensure identity fraud protection. Oracle blockchain tables are simple to integrate into apps. They are able to participate in transactions and queries with other tables. Additionally, they support very high insert rates compared to a decentralized blockchain because commits do not require consensus.
• JSON Binary Data Type: JSON documents stored in binary format in the Oracle Database enables 4X faster updates, and scanning up to 10X faster. 
Oracle’s continuing to lead the industry in delivering the world’s most comprehensive data management solutions, including the industry’s first and only self-driving database, Oracle Autonomous Database. The company was recently named the leader in “The Forrester WaveTM: Translytical Data Platforms, Q4 2019 report which cites that, “unlike other vendors, Oracle uses a dual-format database (row and columns for the same table) to deliver optimal translytical performance,” and that “customers like Oracle’s capability to support many workloads including OLTP, IoT, microservices, multi-model, data science, AI/ML, spatial, graph, and analytics.” 

Explore new Always Free services on Oracle Cloud!
________________________________________

Future Product Disclaimer
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation.
______________________________________

domingo, 9 de febrero de 2020

Oracle Database 19c DBMS_AUTO_INDEX.drop_secondary_indexes

Oracle Database 19c E.E. para Ingienería de Sistemas, introduce la función de indexación automática, que le permite al motor de base de datos tomar algunas decisiones sobre la administración de los índices en la base de datos.

La función de indexación automática hace lo siguiente.

  • Identifica índices automáticos potenciales basados en el uso de la columna de la tabla. La documentación llama a estos "índices candidatos".
  • Crea índices automáticos como índices invisibles, para que no se utilicen en los planes de ejecución. Los nombres de índice incluyen el prefijo "SYS_AI".
  • Prueba los índices automáticos invisibles con las sentencias SQL para asegurarse de que ofrecen un rendimiento mejorado.
  • Si los índices creados, dan como resultado un rendimiento mejorado, se hacen visibles. Si no se mejora el rendimiento, el índice automático relevante se marca como inutilizable y luego se elimina.
  • Las sentencias SQL probadas contra índices automáticos fallidos se incluyen en la lista negra, por lo que no se considerarán para la indexación automática en el futuro.
  • El optimizador no considera los índices automáticos la primera vez que se ejecuta el SQL en la base de datos.
  • Eliminar índices no utilizados.
Como bien lo indiqué al inicio, esto es sólo posible en equipos de Ingeniería de Software de Oracle, o sea, Exadata, sin embargo, en un ambiente de pruebas, podemos utilizar el parámetro "_exadata_feature_on"=true, para simular esta condición especial.

Lo que hace interesante al paquete DBMS_AUTO_INDEX, es uno de sus parámetros de ejecución: "drop_secondary_indexes".

En mis charlas, en distintas ocasiones cuando me preguntaban sobre recomendaciones para migrar de versiones legadas de base de datos a versiones más actualizadas -sobre todo si se estaba haciéndolo de una versión 10g o inferior a 11g o 12c- me gustaba recomendar el borrar todos aquellos índices que no estuvieran involucrados con las políticas de restricción de PK y FK. Esto sobre todo, por el tema del optimizador de consultas, que a partir de la versión 11g, sólo implementa optimización basada en "Costo" y que el tema de los índices superflúos, era un gran dolor de cabeza.

Este parámetro para el paquete DBMS_AUTO_INDEX, elimina de la base de datos, todos aquellos índices que no cumplan con la condición anteriormente brindada, con el fin de que la característica de autonomía de creación de índices, pueda de manera eficiente, determinar que índices se requieren para las consultas ejecutadas en una base de datos y que no sean satisfechas a través de los índices creados paralelamente para los constraints o políticas de restricción PK y FK.

Veamos esto con un pequeño ejemplo.

Tenemos una tabla creada en una instancia de 19c, en un usuario común y silvestre.


SQL> connect user_test/oracle@source
Connected.

SQL> desc datos
 Name                         Null?    Type
 ---------------------------- -------- ---------------
 EMPLOYEE_ID                           NUMBER(6)
 FIRST_NAME                            VARCHAR2(20)
 LAST_NAME                    NOT NULL VARCHAR2(25)
 EMAIL                        NOT NULL VARCHAR2(25)
 PHONE_NUMBER                          VARCHAR2(20)
 HIRE_DATE                    NOT NULL DATE
 JOB_ID                       NOT NULL VARCHAR2(10)
 SALARY                                NUMBER(8,2)
 COMMISSION_PCT                        NUMBER(2,2)
 MANAGER_ID                            NUMBER(6)
 DEPARTMENT_ID                         NUMBER(4)

Esta tabla no tiene índices en este momento. Vamos a crear un índice sobre la columna "employee_id".

SQL> create index idx01_prueba_borrado on datos ( employee_id );

Index created.

Si hacemos al consulta en el diccionario de la base de datos, ahora aparece el índice creado anteriormente asociado a la tabla "Datos" en el esquema "USER_TEST".

SQL> connect system/oracle@source
Connected.

SQL> col owner format a20
SQL> col index_name format a40

SQL> select owner, index_name from dba_indexes
  2  where table_name='DATOS' and owner='USER_TEST';
/

OWNER                INDEX_NAME
-------------------- ----------------------------------------
USER_TEST            IDX01_PRUEBA_BORRADO

Para tener todo configurado para utilizar la característica de autonomía de creación de índices de la base de datos, es necesario ejecutar primero el siguiente paso:

SQL> EXEC DBMS_AUTO_INDEX.drop_secondary_indexes('USER_TEST');

PL/SQL procedure successfully completed.

Al ejecutar nuevamente la consulta sobre los índices existentes en la tabla "DATOS" del esquema indicado, ahora ya no aparece dicho índice.

SQL> select owner, index_name from dba_indexes
  2  where table_name='DATOS' and owner='USER_TEST';

no rows selected

SQL>

Una vez más el tiempo, nos da la razón. Todo cae por su propio peso.

sábado, 8 de febrero de 2020

El algoritmo LRU y las exploraciones de tabla completa – FULL TABLE SCAN

Sabías que ...
Cuando un proceso de usuario realiza un escaneo completo de una tabla (FTS), Oracle reubica los bloques recuperados en el buffer cache, al final de la lista LRU (en vez del extremo MRU -Most Recently Used ).
Esto se debe a que generalmente solo se necesita una vez la tabla completamente escaneada, por lo que los bloques se deben mover rápidamente para dejar disponibles los bloques que se usan con más frecuencia en el caché.
Usted puede controlar este comportamiento predeterminado de los bloques involucrados en las exploraciones de las tablas en una base de datos.
Para especificar que los bloques de la tabla se colocarán en el extremo MRU de la lista durante un escaneo completo de la tabla, se utiliza la cláusula CACHE, al crear o modificar la tabla.
Puede especificar este comportamiento para búsqueda en tablas pequeñas o tablas históricas grandes para evitar el I/O en accesos posteriores de la tabla.

domingo, 19 de enero de 2020

Webinar Pre Taller Actualizacion y Migracion de Base de Datos a 19c

Es hora de iniciar el camino de la migración de sus bases de datos a la versión 19c.
Noviembre del 2020, será el umbral de soporte para 11g 11.2.0.4 y 12cR2 12.2.0.1
  • Si pagas soporte, porque no migrar?
  • Cuáles son tus miedos?
  • Qué debo tener en consideración.?
  • Se soporta Nom-CDB arquitectura aún en 19c.?
  • Que pasa si tengo HA actualmente con Standard Edition, lo puedo tener en 19c?
Estas y otras preguntas y sus respuestas a continuación.

Porque somos carne de cultivo para los delitos informáticos en Costa Rica.?


Hace unos meses escribí este artículo para una revista, sin embargo, el mismo no fue publicado, ni se me comunicó que no lo iban a publicar.

Así que lo comparto por acá, porque creo que puede tener algún valor para alguién.

Editorial
Al margen del video compartido por la red social whatsapp inicialmente y posteriormente por medios de comunicación masivos, sobre “Las ratitas haciendo dinero” desde la Penitenciaría, hace algún tiempo atrás, es importante establecer las razones de este nivel de pasividad y desconocimiento generalizado, en gran parte de sociedad Costarricense, sobre el tema de seguridad en la red o también llamada Ciberseguridad. 

Como nos ven desde afuera, los organismos internacionales, que estudian el fenómeno de la Ciberseguridad.? 

Para responder esta pregunta, podemos escudriñar en el informe anual publicado por la Unión Internacional de Telecomunicaciones UIT, en donde se estable el Índice Global de Ciberseguridad. 

El Global Cybersecurity Index (GCI) es un índice compuesto, producido, analizado y publicado por la UIT para medir el compromiso de los países con la seguridad cibernética con el fin de crear conciencia sobre la misma. 

El GCI se basa en la Agenda de Ciberseguridad Global (GCA) de la UIT que se lanzó en 2007 y refleja sus cinco pilares: legal, técnico, organizacional, desarrollo de capacidades y cooperación. 

El GCI combina 25 indicadores en una medida de referencia para monitorear el compromiso de seguridad cibernética. 

El índice utiliza datos recopilados a través de una encuesta en línea. Para cada pilar, se han desarrollado preguntas para evaluar el compromiso. 

Para el 2018, la UIT contó con el apoyo de 32 expertos en el área para el análisis de los datos. 

El estudio del 2018, señala que la brecha en el nivel de compromiso de ciberseguridad entre las diferentes regiones todavía está presente y visible. El estudio fue enviado a casi 200 nacionales, de las cuáles 160 respondieron el cuestionario, obteniendo un 10% más de participación que en el estudio elaborado en el año 2017. 

Además de proporcionar el puntaje GCI, el informe también proporciona información sobre prácticas nacionales que dan una idea del progreso alcanzado. 

En el Índice Global de Ciberseguridad ( GCI ) estudio publicado para el año 2018, los países fueron agrupados según su índice de compromiso con el tema. 

El estudio incluye en este último informe, cambios significativos, evolucionando según los comentarios y opiniones de los miembros de la UIT y aportaciones de expertos. 

El cuestionario del estudio se redujo de 153 a 50 preguntas, para el año 2018. 

Se evaluaron y modificaron valores de ponderación como: 
· Proyectos de ley (o cualquier otro documento borrador relevante) tiene una ponderación de 0.5 (anteriormente 1.0).
· La investigación y la recopilación de datos de fuentes oficiales se utilizaron para completar la encuesta.
· Debido a la baja tasa de respuesta relacionada con la pregunta sobre las mejores prácticas nacionales, así como falta de información disponible de fuentes oficiales nacionales, la pregunta no fue considerada en el marcador final. Además se incluyeron elementos sobre protección infantil en línea en las preguntas y la puntuación. 
Marco conceptual del informe 


Que incluye cada pilar? 

Legal: las medidas legales (incluida la legislación, la regulación y la contención de la legislación sobre correo no deseado) autorizan a un estado nación a establecer mecanismos básicos de respuesta mediante la investigación y el enjuiciamiento de delitos y la imposición de sanciones por incumplimiento o incumplimiento de la ley. Un marco legislativo establece la base mínima del comportamiento sobre el cual se pueden construir más capacidades de ciberseguridad. Fundamentalmente, el objetivo es contar con una legislación suficiente para armonizar las prácticas a nivel regional / internacional y simplificar el combate internacional contra el cibercrimen. El contexto legal se evalúa en función de la cantidad de instituciones y marcos legales que se ocupan de la ciberseguridad y el cibercrimen. 

Técnico: la tecnología es la principal frontera de defensa contra las amenazas cibernéticas (incluido el uso de equipos informáticos de respuesta a emergencias o incidentes, el marco de implementación de estándares, los mecanismos técnicos y las capacidades implementadas para abordar el correo no deseado, la protección infantil en línea, etc.). Sin las habilidades técnicas adecuadas para detectar y responder a los ciberataques, los países siguen siendo vulnerables. El desarrollo y uso eficiente de las TIC solo puede prosperar verdaderamente en un entorno de confianza y seguridad. Por lo tanto, los países deben crear e instalar criterios de seguridad mínima aceptados y esquemas de acreditación para aplicaciones y sistemas de software. Estos esfuerzos deben complementarse con la creación de un organismo nacional con el objetivo de tratar los incidentes cibernéticos, una entidad gubernamental autorizada y un marco nacional para vigilar, advertir y responder a los incidentes. Los elementos técnicos se evalúan en función del número de mecanismos prácticos para hacer frente a la ciberseguridad. 

Organizacional: Las medidas organizativas (incluidas estrategias nacionales, agencias responsables, métricas de ciberseguridad) son indispensables para la implementación adecuada de cualquier iniciativa nacional. El estado nacional debe establecer objetivos y metas estratégicas generales, junto con un plan todo incluido en la implementación, entrega y medición. Las agencias nacionales deben estar presentes para implementar la estrategia y evaluar el resultado. Sin una estrategia nacional, un modelo de gobernanza y un órgano de supervisión, los esfuerzos en diferentes sectores entran en conflicto, lo que impide los esfuerzos para lograr una armonización efectiva en el desarrollo de la seguridad cibernética. Las estructuras organizativas se evalúan en función de la presencia de instituciones y estrategias que involucran el desarrollo de la ciberseguridad a nivel nacional. 

Creación de capacidad: la creación de capacidad (incluidas las campañas de sensibilización del público, el marco para la certificación y la acreditación de los profesionales de la seguridad cibernética, los cursos de formación profesional en seguridad cibernética, los programas educativos o los programas académicos, etc.) es intrínseco a los primeros tres pilares (legal, técnico y organizativo). La ciberseguridad se aborda con mayor frecuencia desde una perspectiva tecnológica, aunque existen numerosas implicaciones socioeconómicas y políticas. La creación de capacidad humana e institucional es esencial para aumentar la conciencia, el conocimiento y el know-how en todos los sectores, para soluciones sistemáticas y apropiadas, y para promover el desarrollo de profesionales calificados. El desarrollo de capacidades se evalúa en función del número de programas de investigación y desarrollo, educación y capacitación, y profesionales certificados y agencias del sector público. 

Cooperación: el delito cibernético es un problema global y no está restringido a las fronteras nacionales ni a las distinciones sectoriales. Como tal, abordar el delito cibernético requiere un enfoque de múltiples partes interesadas con aportes de todos los sectores y disciplinas (incluidos acuerdos bilaterales y multilaterales, participación de foros / asociaciones internacionales, asociaciones público-privadas, asociaciones interinstitucionales, mejores prácticas, etc.). Una mayor cooperación puede permitir el desarrollo de capacidades de seguridad cibernética mucho más fuertes, lo que ayuda a disuadir las amenazas en línea repetidas y persistentes y permite una mejor investigación, captura y enjuiciamiento de agentes maliciosos. La cooperación nacional e internacional se evalúa en función del número de asociaciones, marcos cooperativos y redes de intercambio de información. 

Las clasificaciones de nivel de compromiso de los países se obtuvieron utilizando el percentil 99: 
1. Los países altos dentro de este rango (1.000-0.670) se clasifican (1-51), total 53 países.
2. Puntajes medios de país (0.669-0.340), rango en rango de 52-99 a 54 países .
3. Los puntajes bajos de los países (0339.-0.000) varían en rango de 100-175, con un total de 87 países. 
Como quedó Costa Rica parada, en este informe? 
Los países se clasifican en el informe, según su nivel de compromiso: alto, medio y bajo.
1. Países que demuestran un alto compromiso en los cinco pilares del índice.
2. Países que han desarrollado compromisos complejos y participan en programas e iniciativas de seguridad cibernética.
3. Países que han comenzado a iniciar compromisos en ciberseguridad. 
Costa Rica, quedó clasificada en el grupo de “bajo nivel de compromiso”, al igual que todas las naciones de Centro América. En LATAM, sólo Uruguay, quedó clasificado dentro del nivel alto. En nivel medio, quedaron ubicados países como: Panamá, Cuba, Paraguay, Ecuador, Venezuela, Argentina, Jamaica, República Dominicana, Chile, Brasil y Colombia. 

En el ranking por las Américas, Costa Rica se ubica en el lugar #18 y #115 a nivel global. En términos relativos estamos por debajo de la mitad de los peores países calificados en el índice. 


Pero lo más relevante, es que nuestro país no participó en el proceso GCI 2018 y tampoco presentó sus respuestas al cuestionario, ni validaron los datos recopilados por el equipo de GCI. 

Así pues, no es de extrañar, que ante la apatía de las instituciones gubernamentales relacionadas con el tema, la sociedad en general y el sector privado, seamos presa fácil, de unos cuantos “vivazos” que lucran con nuestro analfabetismo tecnológico. 

Fuente bibliográfica: Global Cybersecurity Index, ITU 


domingo, 12 de enero de 2020

"Si pensaramos en términos matemáticos la prueba es casi inamovible que existe alguna manipulación directa para que esa combinación se diera"



Según Eduardo Piza Volio, miembro del Centro de Investigacion en Matemática Pura y Aplicada de la UCR, experto en teoría de la probabilidad y con 40 años de enseña en matemáticas de la UCR, además Catedrático de la Escuela de Matemáticas de la UCR, la probabilidad de que se repitieran los números del sorteo de la lotería nacional del domingo anterior, en el mismo orden en el sorte de los "chances" del día martes, hubiera sido posible cientificamente hasta dentro de 67 siglos.

Así que; "si pensaramos en términos matemáticos la prueba es casi inamovible que existe alguna manipulación directa para que esa combinación se diera."

Por otro lado, podríamos decir, que fue una cuestión del azar, como dice Manuel Garcia Martínez-Falero en su libro "Me Gustaría pensar que fue solo una cuestión del Azar".

Garcia se hace el siguiente cuestionamiento en la introducción de su libro:
"¿Es el azar el maestro de nuestras vidas? ¿En qué momento las casualidades pueden aliarse de tal modo que blinden la certeza de que somos meras piezas de un juego cuyas reglas y significados no entendemos?"

Sin embargo, si tomo fragmentos de los cuestionamientos de este abogado-escritor de origen español de 55 años de edad, que en realidad "somos meras piezas de un juego cuyas reglas y significados no entendemos", llegamos a la conclusión, que la suerte no existe.

Sólo existe, el resultado que se obtiene producto de los esfuerzos bien habidos o no, para alcanzar un objetivo.

Ahora bien, para que los escenarios sean confusos y fácilmente indetectables, de vez en cuando, la suerte puede premiar a un desconocido; a un simple transeúnte, con el fin de que podamos seguir hinoptizados y continuemos en un estado artificial provocado por la sugestión y caracterizado por una acusada susceptibilidad a la influencia del hipnotizador y por la disminución a la receptividad de otras influencias.

En otras palabras, continuar siendo simples marionetas de un complejo engranaje, que controla cada una de nuestras cuestionadas vidas en sociedad, por parte de un grupo económicamente y socialmente poderoso.

miércoles, 8 de enero de 2020

Inscripción para participación del Pre-Taller de Actualización y Migración de Base de Datos Oracle 19c


Hola,

Lo invitamos a unirse a la reunión Zoom.

Cuándo: 11 ene 2020 08:00 AM Costa Rica -GMT-6

Inscríbase en la fecha y horario que más le convengan:

https://zoom.us/meeting/register/u5MpcuysqzItYJrDA-_cJl69A1pybARCFw 

Luego de la inscripción, recibirá un correo electrónico de confirmación con información para unirse al seminario web.

*************NOTA*******************
Sólo los participantes en la sesión en vivo, tendrán acceso al video y audio del taller.

Todos los Sábados a las 8:00PM