Cómo aprobar la certificación Databricks Data Analyst Associate

Esta ha sido hasta ahora mi última certificación aprobada. Es una certificación bonita, he de decir que aprendí bastante pero eran características que desconocía por completo del entorno Databricks, no obstante, creo que aunque es un buen reto para aprender este ha de ser enfocado principalmente a perfiles Data Analyst como tal, que trabajen con visualización o a Data Engineer versátiles que se mueven bien entre BI y Data Engineering o sencillamente un Data engineer con vocación al análisis.

El examen

Consta de 45 preguntas de selección multiple a resolver en 90 minutos

El mínimo para aprobar es un 70% lo cual se corresponde con 32 preguntas respondidas correctamente

Objetivos a cubrir en el examen

  • Databricks SQL – 22% (10/45)
  • Data Management – 20% (9/45)
  • SQL – 29% (13/45)
  • Data Visualization and Dashboards – 18% (8/45)
  • Analytics Applications – 11% (5/45)

Siendo más específicos, la cualificación minima del candidato para aprobar debería ser la siguiente:

  • Describe Databricks SQL and its capabilities, including:
    • Databricks SQL (users, benefits, queries, dashboards, compute)
    • Integrations (Partner Connect, data ingestion, other BI tools)
    • Lakehouse (medallion architecture, streaming data)
  • Manage data with Databricks tools and best practices, including:
    • Delta Lake (basics, benefits)
    • Storage and Management (tables, databases, views, Data Explorer)
    • Security (table ownership, PII data)
  • Use Structured Query Language (SQL) to complete tasks in the Lakehouse, including:
    • Basic SQL (basic query structure, combining data, aggregations)
    • Complex Data (nested data objects, roll-ups, windows, cubes)
    • SQL in the Lakehouse (ANSI SQL, working with silver-level data, query history, higher-order functions, user-defined functions)
  • Create production-grade data visualizations and dashboards, including:
    • Visualization (Databricks SQL capabilities, types of visualizations, storytelling with data)
    • Dashboarding (Databricks SQL capabilities, parameterized dashboards and queries, sharing)
    • Production (refresh schedules, query alerts)
  • Develop analytics applications to solve common data analytics problems, including:
    • Descriptive Statistics (discrete statistics, summary statistics)
    • Common Applications (data enhancement, data blending, last-mile ETL)

Mi opinión acerca del examen

Para empezar al examen le daría una ponderación de 5-5,5 sobre 10, es decir, me pareció un poco más sencillo que el Data Engineer Associate, eso si he de decir que tener conocimientos en el anteriormente mencionado me ha ayudado mucho a afrontar las preguntas de este examen. Dentro de las preguntas claves y conceptos a dominar de cara al examen recomiendo:

  • Tener muy claro Lakehouse, características y ventajas. Arquitectura multihop/Medallion
  • Cual es el Rol a llevar a cabo por un Data Analyst
  • Qué es partner Connect y para que sirve? me sirve para conectar una herramienta de Bi?
  • Repasar muy bien el entorno grafico y conocer las características, por ejemplo: Saber que el query editor, nos permite guardar y ejecutar consultas así como programar (schedule) un refresh de la consulta.
  • Estudiar a fondo:
    • Query
    • Alert
    • Visualization (tener claro todas las posibles, es el bar diagram los mismo que un histogram? cuáles son los pasos para crear una vista counter)
    • Dashboard
  • Tener muy en cuenta Refresh (Schedule) en: Quey, Alerts, Dashboards
  • Gestión de permisos desde SQL y el Data explorer
  • Habrán ejercicios de SQL que contemplen Join (left, right, inner, self, left anti) con incluso con operaciones de ventana (rank, dense_rank, row_number), repasar como tratar datos en SQL de tipo: Array, Json y operaciones como explode, coalesce, etc

Material de estudio:

  • Hacer el curso de Data Lakehouse proporcionado por la misma página de Databricks academy (puedes darte de alta gratis como customer)
  • Hacer el learning plan de Data Analyst Associate de la Databricks academy
  • Revisar el GitHub de Databricks academy y hacer todos y cada uno de los ejercicios, allí también encontrarás las presentaciones.
  • Documentación de Databricks
  • Canal de Youtube de Databricks
  • En este caso la versión community no nos servirá para nada ya que el SQL workspace está presente únicamente en la versión de pago por lo cual para mitigar esta carencia intentando gastar lo mínimo hacer lo siguiente:
    • Estar atento a los workshop que ofrece continuamente Databricks tanto en Azure como AWS y así podrás contar con un cluster a todo dar durante 4-5 horas.
    • Aprovecha los free trial de 14 días tanto en AWS (marketplace) como en Azure.

Espero que este resumen les pueda ser de ayuda para aprobar el examen. Ahora es tu turno y cuéntanos cuál de todas las certificaciones de Databricks te llama la atención y una vez aprobada la Data Analyst Associate cuál será tu siguiente reto? La Data Analyst Professional, La Data Engineer Associate o la ML Practitioner.

Cómo aprobar la certificación Databricks Data Engineer Associate

Este año en cuanto ha certificaciones ha sido productivo me he logrado certificar en Terraform, Azure y algunas de Databricks que es de las que les quiero hablar hoy, mi receta para aprobar la Databricks Data Engineer Associate.

El examen

Consta de 45 preguntas de selección multiple a resolver en 90 minutos

El mínimo para aprobar es un 70% lo cual se corresponde con 32 preguntas respondidas correctamente

Objetivos a cubrir en el examen

Se deben dominar los siguientes tópicos:

  • Delta Lake
  • Relational entities on Databricks
  • ETL with Spark SQL
  • Just enough Python for Spark SQL
  • Incremental data processing with Structured Streaming and Auto Loader
  • Medallion architecture in the data lakehouse
  • Delta Live Tables
  • Task orchestration with Databricks Jobs
  • Databricks SQL
  • Databricks Repos
  • Managing permissions in the lakehouse(Unity Catalog)
  • Productionizing dashboards and queries on Databricks SQL

Siendo más específicos como detalla la página, la cualificación minima del candidato debería ser la siguiente

  • Understand how to use and the benefits of using the Databricks platform and its tools, including:
    • Platform (notebooks, clusters, Jobs, Databricks SQL, relational entities, Repos)
    • Apache Spark (PySpark, DataFrame API, basic architecture)
    • Delta Lake (SQL-based Delta APIs, basic architecture, core functions)
    • Databricks CLI (deploying notebook-based workflows)
    • Databricks REST API (configure and trigger production pipelines)
  • Build data processing pipelines using the Spark and Delta Lake APIs, including:
    • Building batch-processed ETL pipelines
    • Building incrementally processed ETL pipelines
    • Optimizing workloads
    • Deduplicating data
    • Using Change Data Capture (CDC) to propagate changes
  • Model data management solutions, including:
    • Lakehouse (bronze/silver/gold architecture, databases, tables, views, and the physical layout)
    • General data modeling concepts (keys, constraints, lookup tables, slowly changing dimensions)
  • Build production pipelines using best practices around security and governance, including:
    • Managing notebook and jobs permissions with ACLs
    • Creating row- and column-oriented dynamic views to control user/group access
    • Securely storing personally identifiable information (PII)
    • Securely delete data as requested according to GDPR & CCPA
  • Configure alerting and storage to monitor and log production jobs, including:
    • Setting up notifications
    • Configuring SparkListener
    • Recording logged metrics
    • Navigating and interpreting the Spark UI
    • Debugging errors
  • Follow best practices for managing, testing and deploying code, including:
    • Managing dependencies
    • Creating unit tests
    • Creating integration tests
    • Scheduling Jobs
    • Versioning code/notebooks
    • Orchestration Jobs

Mi opinión acerca del examen

El examen es de dificultad media y requiere conocimientos de:
Spark (batch & streaming), Delta tables, Delta Live Tables, Permisos, Jobs, pipelines y dominar el concepto de Data Lakehouse.

Las preguntas que me aparecieron en el examen fueron del tipo:

  • Donde puedo ver si tengo permisos para acceder a una tabla o donde y/o como puedo ver quien es el owner de la tabla para poder solicitarle permisos
  • Como conceder permisos en SQL a un grupo para acceder a una tabla
  • Ejemplo de Autoloader (Streaming de ficheros en cloud utilizado por Databricks)
  • Conocer bien arquitectura multi-hop para así saber responder en que forma están almacenados los datos en una tabla (bronze, silver o gold) así como también cual es el objetivo de cada una de estas
  • Para qué es el depends on de una tarea (task) en un pipeline
  • Cuando se utiliza el STREAM(live table) en SQL para leer de una tabla
  • Ejemplo de Left/Right join y cual sería el resultado final (Ten en cuenta que te pondrán 2 tablas y te preguntaran por el resultado del Join)
  • Que significa que se hayan borrado los datos y métodos de una tabla al hacer un DROP (que era una tabla managed), por ende conocer bien las diferencia y como se declaran las tablas managed y externas
  • Declaración de tablas externas a partir de datos CSV y/o JSON (por ejemplo CREATE TABLE .. USING CSV)
  • Entender cuando crear una Vista o una TEMP VIEW. Por ejemplo -> Si la “tabla temporal”(aunque todos sabemos que aquí no existe tal cosa de tabla temporal) no ha de ser utilizada por ningún otro usuario excepto tu, ya puedes intuir que una vista temporal (temporal view) será la opción y por ende descartas la vista (view)

Por último mencionar que en mi caso salieron varias preguntas acerca del SQL EndPoint y de la definición de pipelines.

Material de estudio:

  • Hacer el curso de Data Lakehouse proporcionado por la misma página de Databricks academy (puedes darte de alta gratis como customer)
  • Asumiendo que ya conoces Spark, Hacer la formación de Data Engineer Associate de la Databricks academy
  • Clonar o cargar los los notebooks desde el GitHub de Databricks academy y hacer todos y cada uno de los ejercicios, allí también encontrarás las presentaciones.
  • Documentación de Databricks
  • Si no posees una Cuenta Databricks community creala. No obstante, la versión community no te permitirá probar todos los notebooks y hacer todos los ejercicios ya que está capado, por ende no podrás probar AutoLoader, SQL Endpoint, Pipelines ni Delta Live Tables, no obstante como alternativa puedes hacer lo siguiente:
    • Estar atento a los workshop que ofrece continuamente Databricks tanto en Azure como AWS y así podrás contar con un cluster a todo dar durante 4-5 horas.
    • Aprovecha los free trial de 14 días tanto en AWS (marketplace) como en Azure

Espero que este resumen les pueda ser de ayuda para aprobar el examen. Ahora es tu turno y cuéntanos cuál de todas las certificaciones de Databricks te llama la atención y una vez aprobada la Data Engineer Associate cuál será tu siguiente reto? La Data Engineer Professional, La Data Analyst Associate o la ML Practitioner.

Cómo aprobar la certificación Databricks Spark 3.0

Finalmente ha llegado a mi correo mi certificación de Databricks Spark 3.0 tras haber aprobado dicho examen. El examen lo presenté el 14 de abril del 2021 y les voy a contar brevemente como fue el examen, de qué trata y qué hice para aprobarla.

El examen

Las características del examen son las siguientes:

  • Duración: 120 minutos.
  • Consta de 60 preguntas y apruebas con al menos 42 aprobadas (es decir, el 70%). Las cuales se distribuyen aproximadamente de la siguiente manera:
    • Spark Architecture: Conceptual understanding (~17%)
    • Spark Architecture: Applied understanding (~11%)
    • Spark DataFrame API Applications (~72%)
  • El examen es online y presentas desde por ejemplo tu casa, eso si, te estarán viendo por la cámara de tu ordenador, por lo cual no puedes ni debes abandonar tu sitio durante el examen, por lo cual asegúrate de hacer tus necesidades antes del examen.
  • No podrás tener accesorios a la mano como móviles, relojes, etc. Sencillamente cuentas con tu ordenador y en el examen te darán distintos PDF que abarcan todo el API.
  • Al comprar el examen seleccionas si presentarás el examen enfocada en la API Python o Scala de Spark.

OJO: No olvides días previos al examen entrar a la Web del examen y culminar el alta, que consiste en un software que reconoce tu rostro. NO LO DEJES PARA ÚLTIMO MOMENTO.

El examen consta de únicamente preguntas de selección múltiple, aunque eso si, no todas van de conceptos, las preguntas dada mi experiencia se componen de:

  • Evaluación de conceptos, por ejemplo: Cuales de las siguientes características no pertenece a las narrow transformations. NOTA: Cuidado con esas negaciones.
  • Dado un trozo de código seleccionar la opción que indique la razón del fallo.
  • Dado un trozo de código seleccionar la opción que representa el resultado final.
  • Dado un trozo de código incompleto seleccionar la opción que contiene esas partes de código que se usarían para completar el trozo de código para poder llevar a cabo una tarea de forma exitosa.

Las preguntas

Tal cual como lo indica la página dedicada a la certificación el contenido a evaluar es:

  • Arquitectura de Spark y el nuevo AQE (Adaptive Query Execution)
  • API Dataset:
    • Seleccionar, renombrar y manipular columnas.
    • filtrado, ordenamiento, eliminación y agregación de registros (filas).
    • Joins entre tablas, lectura, escritura y particionamiento en DataFrames.
    • UDFs y funciones Spark SQL.
  • Hay preguntas no solo del API Dataset sino también propiedades de configuración como por ejemplo spark.sql.shuffle.partitions
  • Las preguntas de completado de código eran como el siguiente ejemplo:

Donde las opciones a escoger serían:

  1. readDF, text, load
  2. readDF, ‘csv’, csv
  3. read, ‘csv’, load => Opción correcta
  4. read, csv, load

La plataforma te permite marcar preguntas para ser revisadas más adelante, cosa que yo aconsejo utilizar, hacer una pasada rápida por las preguntas, selecciona una respuesta y sobre aquellas que se tenga una mínima duda sencillamente se marca y le das una revisión, de esta forma tendrás oportunidad de responder todas las preguntas y revisar en 2 o hasta 3 ocasiones todas las preguntas que hayas dejado marcadas.

Finalizado el examen

Tan pronto finalizas el examen podrás observar por pantalla una valoración no definitiva del resultado de la prueba y minutos después recibirás un correo con la nota, donde ya te indican si aprobaste (o no, pero si sigues mi receta aprobarás) y luego pasados unos 7 días hábiles o quizás un poco menos recibes tu certificado por correo.

Receta para aprobar el examen

Ahora es tu turno, te animas a afrontar este reto, tienes alguna otra certificación en mente, estás indeciso en cual certificación de Spark tomar o si por el contrario ya presentaste está o alguna otra certificación cuéntanos qué tal te fue.

Certificación Databricks Spark 3.0

Muchos de los que me conocen saben que soy fiel a las certificaciones y como siempre digo, no es el papel con el aprobado lo que importa sino todo el proceso de prepararse para presentar y aprobar el examen lo que realmente vale, ya que es durante este proceso que empezamos a conocer, a meternos en las entrañas de un software, lenguaje de programación o plataforma, es decir, sencillamente salimos de nuestra zona de confort y empezamos a hacernos preguntas fuera de lo común y buscamos sus respectivas respuestas (de haberlas) o buscamos soluciones alternativas (también de haberlas), todo eso deriva en APRENDIZAJE.

Insisto me encantan las certificaciones pero porque para mí significan plantearme un reto y demostrarme a mí mismo que soy capaz de seguir aprendiendo, que si puedo aprender un nuevo lenguaje, que todavía tengo la fuerza y las ganas de superación para actualizarme en alguna tecnología en especial. Con el pasar del tiempo les confieso que cada vez se me ha hecho más difícil el intentar plantearme un reto de este tipo, por razones como la escasez de tiempo, la cantidad de trabajo, o el aprender en un marco muy estricto, pero creo que ya ha llegado la hora de proponerme otro de esos retos y que ya les contaré si lo consigo o no y es preparar la certificación Databricks Certified Associate Developer for Apache Spark 3.0. Por qué esta certificación y no otra:

  • Investigar las nuevas características de Spark 3.0.
  • El contenido a evaluar: Selección, renombrado y eliminación de columnas. Filtrado, ordenamiento y agregación. Join, lectura y escritura en distintos formatos, UDF y funciones SQL.
  • Poder evaluarme con Scala.
  • Contar con material de referencia previo.

A su vez una razón de peso para mí es que al presentarla y aprobarla, esto motive a la gente que trabaja conmigo para que a su vez sientan ese deseo por aprender y especializarse e incluso no comentan los mismos errores que yo y que al menos ya cuenten con algo de material de apoyo para empezar.

El material de referencia que utilizaré para prepararme serán los libros:

  • Learning Spark 2nd Edition (Sobre todo para aprender todo lo nuevo de Spark 3.0).
  • Spark the definitive guide.

A su vez sigo el blog de Databricks que cada tanto comparte información importante sobre todo referente a cómo funciona Spark.

Por último he comenzado a crear una serie de notebooks con ejemplos muy simples (tanto en Scala como Python) que comparto con todos intentando abarcar todo el contenido.

Aquí les dejo el enlace espero que sea de ayuda y les motive a aprender y afrontar esta certificación e incluso les motive a seguir. Este mes es mi cumpleaños y dudo que me dé una paliza repasando pero quizás (y por eso lo comparto para crear una especie de compromiso) me disponga a presentar en abril y espero poder aprobar a la primera.

Receta para aprobar AWS Certified Big Data Specialty

AWS Certified Big Data Specialty

Hola a todos, muchísimo tiempo sin escribir y no es que no quiera sino que la vida con hijos lo convierte en una tarea en mi caso algo difícil de compaginar. Hoy después de año y medio quiero compartir mi receta para aprobar la certificación AWS Certified Big Data – Specialty.

No les voy a mentir es una certificación complicada quizás un poco más complicada que la AWS Certified Solution Architect – Associate pero lejos de ser imposible, su complejidad desde mi punto de vista radica en que hay que tener un conocimiento amplio no solo en los servicios de AWS sino de frameworks y herramientas utilizadas hoy en día en Big Data.

La AWS Certified Big Data – Specialty es una certificación que puede tomarse de buenas a primeras, es decir, no tiene como requisito el haber aprobado previamente alguna otra certificación aunque desde la misma página de la certificación nos hacen unas sugerencias que desde mi punto de vista son con razón y son las siguientes y cito:

El examen de certificación dura 170 minutos y tiene un costo de 300$ y está disponible únicamente en ingles, japonés, coreano y chino.

Vamos al gramo ¿cómo preparé el examen? Bueno para esto compré 2 cursos ambos muy buenos (excelentes) y amplios y abarcan diría que más de un 90% del contenido a evaluar y casi todos los servicios de amazon, quizás queda alguno por fuera como por ejemplo Storage Gateway, Cloudfront, Elastic Load Balancer, EC2 pero es aquí donde toma relevancia el haber aprobado previamente otra certificación lo cual nos “aseguraría” tener conocimientos en esos otros servicios. Los cursos en cuestión son:

También hice algún curso de la página de aws.traning donde desde AWS nos plantean distintos learning path (caminos de aprendizaje?)

AWS Certified Big Data - Specialty
AWS Certified Big Data – Specialty Learning Path

Otra cosa que hice fue redactar mi propio material y para ello revise las F.A.Q. de todos los servicios relacionados con la certificación y los limites y con toda esa información redacte mi chuleta (utilicé evernote) la cual iba enriqueciendo mediante aspectos importantes que veía en los cursos antes indicados y de interrogantes que me iba planteando en el camino y que iba dándole solución luego al comprobarlo de forma practica o investigar en la misma documentación de AWS. ¿Qué servicios mirar? les diría que los principales son: Redshift, EMR, Kinesis (streams, firehose y analytics), DynamoDB, S3, Glacier, Snowball, RDS, DMS, Machine Learning, SageMaker, Athena, Elasticsearch service, IoT, CloudTrial, CloudWatch, Lambda y Glue. Además de estos puede que salgan preguntas que involucren SQS, SNS, EC2 (tipos de instancias), Storage Gateway, Direct Connect, rekognition, polly y lex.

También aproveche de ver varios vídeos desde los canales de youtube:

Lo interesante de ambos canales es que plantean solución a distintos escenarios mediante la combinación y uso de distintos servicios de AWS lo que nos permite tener una perspectiva real de como afrontar e integrar muchos de estos servicios, casos de uso, buenas practicas entre otras cosas y el último de los canales también posee los vídeos de las sesiones re:Invent de los años 2017, 2018 y aunque alguno de los videos puede llegar a durar 1 hora, pues a mí que lo que mas me hace falta es el tiempo lo que hacía era verlos a velocidad de 1.25X (esta técnica también la aplicaba para ver los vídeos de Udemy y acloud.guru).

Hice el test de 10 preguntas de la certificación que se puede encontrar en el siguiente enlace. De antemano les digo que no se dejen intimidar por este examen, estas 10 preguntas desde mi punto de vista son muy difíciles y la realidad es que la mayoría de preguntas en el examen de certificación ni son tan difíciles ni tan largas. Sin embargo esto me sirvió para profundizar en cuanto a contenidos y sobre todo a plantear una estrategia de cara al examen, la cual se las comentaré más adelante.

Les debo confesar que las preguntas de ejemplo me dejaron un poco tocado así que compre los test prácticos de Whizlabs. Hice el test gratuito y me decidí a comprarlo definitivamente.

¿Cuál fue mi estrategia?
Mi estrategia fue la siguiente. Practicando con los 3 tests de Whizlabs, me propuse intentar resolver las 65 preguntas en un plazo de 60 minutos, es decir, daba una lectura muy rápida a las preguntas y daba una respuesta, de esta manera me aseguraba que todas las preguntas fueran contestadas (el examen no tiene factor de corrección) y todas aquellas preguntas donde me quedara duda (casi todas) las marcaba para su posterior revisión, de esta forma logré poder dedicar mucho tiempo a la revisión de las preguntas.

Finalmente comentarles que el resultado fue positivo, obtuve un 74% en la prueba y con este resultado mi premio la certificación, pero lo más valioso es todo lo aprendido en el camino, ahora mismo conozco muchos de los servicios de amazon y he trasteado con ellos y por supuesto tengo una idea “clara” de como integrarlos para dar soluciones.

TIP final: Existe la opción de obtener 30 minutos más para el examen y consiste en solicitar “Request Exam Accommodations” al programar un examen al no ser el inglés tu lengua materna. He aquí un enlace de como hacerlo.

Espero que mi receta les ayude a conseguir el objetivo de aprobar la certificación y para aquellos que dudan en afrontar este reto, que sepan que es un objetivo alcanzable y que no solo les llevará a aprender mucho sino que desde el punto de vista curricular les aportara valor, tanto es así que existe un grupo de LinkedIn de únicamente personas certificadas por lo cual esos perfiles obtienen mas visibilidad.

Entonces ¿te animas a presentarla? y tu que ya presentaste cuéntanos cual fue tu receta para aprobar la certificación

Mi receta para aprobar la certificación CCA Spark and Hadoop Developer

Hola de nuevo mi gente, como ya es costumbre tenía tiempo sin escribir, de hecho la última vez fue para anunciarles que había aprobado la certificación de solution architect de AWS y comentarles mi receta para aprobarla, bueno en esta ocasión les traigo mi receta para aprobar la certificación CCA Spark and Hadoop Developer (CCA175) de Cloudera. Bueno primero comentarles que esta certificación me resulto fascinante, por distintas cosas, la primera fue que tenía un completo desconocimiento sobre la forma como sería el examen, la segunda es que es totalmente práctica y el contenido dependiendo de como se mire puede ser amplio o no, de acuerdo a cuanto se desee profundizar.

Algunos aspectos del examen: tiene una duración de 2 horas, se aprueba con el 70% y pueden ser entre 8 y 12 preguntas (en mi caso fueron 9). El examen se lleva a cabo de forma online a través de un máquina virtual a la que accederás desde el navegador (chrome), de tu ordenador y será estrictamente necesario tener una webcam mediante la cual un vigilante (proctor) estará atento a que no hagas trampa, también tendrás a disposición una serie de enlaces de documentación referente a las herramientas que puedes utilizar en el examen, como pueden ser la documentación oficial de sqoop, spark, hive, cloudera, por mencionar algunas. En el examen no te veras obligado a utilizar una herramienta en especial, es decir, lo que importa es el resultado final, si este lo consigues con Pig, Hive, Spark, impala, Flume, pues perfecto, lo que esta claro es que hay herramientas que terminan siendo más adecuadas que otras dependiendo del caso.

Dada mi experiencia les sugiero estudiar los siguientes tópicos:

  • Importar y exportar usando sqoop y en ambos casos considerar el uso y cambio de delimitadores de campos así como de lineas. En el caso particular de la importación tener en cuenta compresión (por ejemplo Gzip) y formatos de archivo (texto, avro, parquet), a su vez conocer como y cuando utilizar los argumentos, -m, -split-by, -where, -query, -columns, -warehouse-dir, -target-dir, por mencionar algunos.
  • Crear una tabla en Hive cuya fuente de datos sean ficheros de texto, o que los datos estén serializados en Parquet, ORC o AVRO (tener en cuenta evolución del schema) y que a su vez estén comprimidos. CTAS (Create Table as Select) y exportar desde hive un fichero tanto a HDFS como al FileSystem producto de una consulta.
  • Haciendo uso de Spark hacer Lectura de datos en distintos formatos (texto, json, orc, parquet o avro) e incluso comprimidos y a partir de estos llevar a cabo una transformación de los datos y exportar el resultado a uno de los posibles formatos mencionados anteriormente.
  • La Máquina virtual trae consigo eclipse y sublime, les sugiero hacer scripts en sublime y guardarlos para poder volver a ellos en caso de ser necesario. En el caso de spark al yo tener más experiencia con scala lo que hice fue lanzar los scripts con la spark-shell con el siguiente comando spark-shell -i script.scala  o sino desde la consola usando :load script.scala.
  • En el caso de spark al ser la versión 1.6 preferí trabajar con dataframes a tener que hacer la operativa con RDDs.
  • Hacer muchos ejercicios, prácticos. En mi caso creé un repositorio en Github donde hice unos cuantos ejercicios, unos inventados por mí y otros del sitio web itversity.
  • Es importante hacer una buena gestión del tiempo, sugiero tomar un par de minutos para leer las preguntas e ir a por las más sencillas al comenzar y si en algún momento te bloqueas, pues pasar a la siguiente de inmediato, de igual forma mientras se esté ejecutando una operación (puede que tarde 1 min + o -) aprovechar para al menos leer el enunciado siguiente.
  • Muy importante mucho cuidado con los datos fuentes y de ser posible respaldarlos.
  • La consola de la máquina virtual tiene un tamaño de fuente algo pequeño por lo que no es mala idea hacer un zoom in.

Yo he de confesar que de las 9 preguntas que me salieron solo respondí 8, porque no me dio tiempo he allí la razón por la que hago hincapié en la buena gestión del tiempo. El examen no resulta difícil si has estudiado, pero al contar con solo 2 horas es necesario haber practicado antes para no perder mucho tiempo buscando en la documentación.

Por último desearles mucha suerte y reiterar mi fascinación con esta certificación, he aprendido muchísimo y el examen en sí me genero una sensación de satisfacción increíble al conseguir aprobarla, sobre todo esa buena vibra de poner en practica todo aquello practicado.

 

Mi receta para aprobar la AWS Certified Solutions Architect – Associate

Hacía casi un año de la última vez que escribí, de hecho he de confesar que hecho de menos compartir más cosas a través de este blog, pero ahora mismo el tiempo es algo que no me sobra y desde que me convertí en padre es que paso muchisimo tiempo con mi hija y como es normal disfruto más el pasar tiempo con mi hija y mi señora.

Volviendo a lo tecnologico, a finales del mes de Julio presente y aprobé una de las certificaciones de amazon especificamente la AWS Certified Solution Architect – Associate y me gustaría compartir con ustedes mi receta para tal logro.

  • El curso para la certificación de la gente de acloud guru y OJO este mismo curso esta disponible en Udemy y pueden llegar a conseguir ofertas para adquirirlo por tan solo 10€, más interesante aun es que al adquirir el curso por Udemy pueden efectuar una migración del curso hacia acloud.guru y de esta manera tendrán acceso al curso mediante las 2 plataformas y a sus respectivos foros. Otra cosa interesante es que el curso al tenerlo en Udemy pueden aprovechar de descargar la app para iPad y iPhone y visualizar los videos desde estos incluso en modo offline.
  • En linea con lo anterior paprticipar activamente así sea como lector en los foros, seguramente te encontrarás con las mismas dudas salvo que estas ya estarán resueltas.
  • Adquirir los examenes de prueba de la misma gente a través de Udemy y aunque no es imprescindible si recomiendo comprar la guia de preparación para los examenes de certificación de amazon de la gente de acloud.guru.
  • Hacer el examen de muestra de Amazon para esta certificación, esto te dará una idea bastante cercana sobre el tipo y el estilo de las preguntas a las que te enfrentarás en el examen. He aquí las respuestas.
  • Imprescindible revisar las F.A.Q. y limitantes de los servicios más importantes como S3, Glacier, IAM, SQS, SNS, EC2, API Gateway, AWS Lambda, VPC, CloudFront, Route53, CloudWatch, RDS, EMR y Kinesis.
  • Por (pe)último no dejar de revisar los papers como por ejemplo el referente a Well Architected Framework, sobre estos encontrarán preguntas sobre escenarios de la vida real donde deberíamos aplicar lo especificado en los papers, estos están disponibles para descargar como pdf desde el site de amazon e incluso para descargar en kindle.
  • Ahora si finalizando, no dejar de leer sobre las características del examen, este es un examen un poco pecualiar donde se aprueba/desaprueba a partir de 67% de acierto en las preguntas según tengo entendido se basa en una campana de Gauss, por lo cual buscar como objetivo obtener como mínimo un 70% de aprobación.

 

Aqui les dejo algunos enlaces a sitios con preguntas tipo examen:

http://recurze.be/2015/06/06/certified-solutions-architect-sample-questions/

http://www.accelerated-ideas.com/exams/practice-exam.aspx?group=aws&fq=1&qmax=15

https://blog.cloudthat.com/sample-questions-for-amazon-web-services-certified-solution-architect-certification-aws-architect-certification-part-i/

https://blog.cloudthat.com/sample-questions-for-amazon-web-services-certified-solution-architect-certification-aws-architect-certification-part-ii/

https://markosrendell.wordpress.com/2013/12/12/aws-certified-solutions-architect-sample-questions-answered-and-discussed/

https://quizlet.com/144321056/aws-certified-solutions-architect-associate-practice-questions-flash-cards/

No dejes de preguntar cualquier duda al respecto o incluso una vez hayas presentado deja aqui tus impresiones del examen y comparte con nosotros sobre que cosas preguntaron mas en el examen. Mucha suerte y exito por si te entusiasmas a presentar el examen.

 

 

¿Valen la pena las certificaciones?

Tiempo atrás me hicieron la siguiente consulta en el blog:

Hola Jose,

estoy muy indecisa en si prepararme para la certificación de Java. Mucha gente me dice que es absurdo porque las preguntas son del api, y tipo trozos de código que tienes que hacer de compilador y que al final se vuelve en un absurdo porque eso al fin y al cabo en nuestro día a día con un compilador es intuitivo. También me han dicho que a la hora del mundo laboral apenas lo valoran porque como debemos pagar para certificarnos, como que los empresarios lo ven como un título comprado.

Antes que nada disculparme con la persona que me escribió ya que ha pasado algo de tiempo y apenas ahora es que le respondo, pero aquí voy y con la sinceridad que me caracteriza.

En más de una vez he recalcado estar a favor en realizar certificaciones, pero así como lo he dicho alguna vez, ahora lo repito, “no es por el papel”, el papel o el certificado es lo de menos, bueno (pausa de 1 seg), es un premio o mejor dicho un reconocimiento al esfuerzo y a la dedicación que has puesto en estudiar y aprender cierta tecnología o idioma, es como cuando presentábamos un examen importante (para obtener créditos especiales o en una materia electiva de particular importancia) y después de tanto estudiar te otorgaban un aprobado pero que goza de cierto cache, ya que no se aprueba con la mitad de la nota sino con un poco más (por ejemplo si las notas van de 1 a 10 se otorgue únicamente el aprobado con 6.5). Lo que a mí particularmente me parece fascinante de las certificaciones y me entusiasma a realizarlas es todo el proceso de preparación, es como te planteas y organizas los objetivos para estudiarlos, como al cabo de un tiempo empiezas a darte cuenta de que algunos temas los tienes bien cubiertos mientras que hay otros donde necesitas hacer énfasis y repasarlos de nuevo, todo ese proceso de estudio con ese poquitín de presión añadida pero sobretodo con la ambición de aprender y mejorar tus habilidades profesionales, creo que hace méritos más que suficientes para presentar una certificación, y voy a plantear par de ejemplos para intentar hacerles llegar mi punto de vista.

Imaginemonos que empezamos a prepararnos durante algunos meses en presentar un examen de inglés, por ejemplo el FCE (también llamado el first). Si nos hemos esforzado digamos que durante unos 5 meses estudiando, leyendo muchos verbos, conjungandolos y utilizándolos en frases, escuchando mucho inglés, etc… ya habremos ganado, porque independientemente de que al presentar aprobemos o no el examen, el premio lo recibiremos cuando nos toque hablar con una persona de habla inglesa y hayamos podido entender a esta persona y a su vez hayamos logrado expresarnos con cierta fluidez, que si no fue tal, pues sencillamente no importa porque estoy seguro de que nos expresaríamos mucho mejor que antes de haber empezado a estudiar para la certificación.

Otra razón de presentar las certificaciones, es el saber, porque para mí “el saber es poder”, el saber te da confianza, y si vas a presentarte para una entrevista de trabajo o para un cargo, créeme que la confianza es importante (te desenvuelves mejor, yo sinceramente creo que hasta te cambia la cara y hasta la forma de expresarte) y ahora bien ¿recuerdas cuando en la escuela tenías que hacer una exposición? a la mayoría nos daba algo de miedo escénico, pero había una cosa que siempre era palpable independientemente de que fueras el mejor en el escenario o no, y es que siempre se sabía quien había estudiado y quien no. ¿Crees que las personas de RRHH no se dan cuenta? y si tuviste suerte y pasaste esa entrevista recuerda que luego seguramente tendrás una entrevista técnica y a esta persona será difícil que le engañes o mejor dicho dejaras mejor imagen si le demuestras a esa persona que sabes de lo que hablas.

Entonces, ¿valen la pena las certificaciones? SI

¿Los empresarios lo ven como un titulo comprado? No conozco ninguno que lo vea de esa manera y en dado caso desde mi humilde punto de vista te diría corre y vete de esa empresa porque allí no te valorarán ni como profesional ni tu deseo de ser mejor.

Yo particularmente he visto como últimamente empresas dedican una “bolsa” de dinero para fomentar la certificación de sus empleados, ya que a la hora de escoger un perfil entre un grupo de candidatos, la certificación y el haber aprobado la entrevista técnica puede que pongan la balanza a tu favor. Además no olvidemos que las empresas son las principales beneficiadas de que nosotros los empleados nos certifiquemos, ya que a priori están ganando, teniendo en el staff mejores profesionales.

¿Algunas preguntas son muy complejas y debemos actuar como si fuésemos un compilador, ya que incluyen código? Si hay preguntas que incluyen código y debemos actuar como un compilador pero ni son muchas y tampoco todas son extremadamente difíciles, estas la mayoría de las veces son conchas de mango, que si has estudiado, las vas a pillar de inmediato.

Así que amiga no lo pienses 2 veces certificate si tienes interés en hacerlo, que en el peor de los casos lo que harás es aprender 😉 y serás bien valorada por el gremio profesional y por tus colegas por interesante en afrontar retos de este tipo.

Por último confesar que ya he empezado a preparar mi próxima certificación y como adelanto les dire que va enfocada en tecnologías Big Data.

PD: La de Java 8 me hace mucho ojito, jejejeje, pero ya he estudiado por mi parte las expresiones lambda, los streams, los default methods de las interfaces, entre otras cosas, por lo cual no siento tanto interés como otras veces en presentarla, así que quizás cuando salga Java 9 me meta de cabeza a estudiar de nuevo.

Mi receta para aprobar la Oracle Certified Professional, Java SE 7 Programmer

Ayer presente el examen 1Z0-805 de Oracle para obtener la Oracle Certified Professional, Java SE 7 Programmer y con mucho orgullo (producto de muchas horas de estudio) puedo decirles que la he aprobado con 80%. Llevaba preparandome unos 8 meses, con alguno que otro descanso bien merecido en navidad y semana santa, pero en general fui constante y cada semana dedicaba al menos una (1) o dos (2) horas a hacer ejercicios y/o leer al respecto.

Debo admitir que aunque consideraba que habia repasado bastante, el examen fue mas dificil de lo que yo esperaba, pero como ya ven no es imposible. Los objetivos a evaluar en el examen en resumen son los siguientes:

  • Language Enhancements (Mejoras en el lenguaje), que no es más que el project coin: diamond operator (operador <>), try-with-resources, sentencia swith con variables tipo String, etc…
  • Design Pattern (Diseño de patrones): Comprensión del concepto de cohesión, asi como también de los patrones Factory,  Singleton, DAO, diferencia entre un objeto de negocio (Bussiness Object) y un objeto de transferencia de datos (Data Transfer Object o DTO) y Entender los conceptos de herencia, composición y encapsulamiento.
  • Database Applications with JDBC (Desarrollo de aplicaciones utilizando JDBC): Características y métodos de un ResultSet, conocer los distintos tipos de RowSet, poder crear una app de tipo CRUD (Create, Read, Update and Delete) utilando JDBC.
  • Concurrency (Concurrencia): manejo de entorno multihilos, el framework for/join, colecciones seguras para el manejo con hilos, entender los conceptos de starvation, deadlock, liveness.
  • Localization (Localización): Todo lo necesario para poder hacer una aplicación multidioma o como también se le dice, soporte i18n.
  • NIO 2: Conocer las nuevas clases y métodos para el manejo de archivos, tales como la clase Path, FileStore, FileSystem, entre muchas otras.

Ahora bien no perdamos mas tiempo y vayamos al grano ¿Cual es la receta?… Bueno al empezar a preparar esta certificación me tope con que habia un único libro enfocado en la aprobación de la certificación y me refiero a esos libros a los que nos tiene o tenia acostumbrados Kathy Sierra y este era el libro Oracle Certified Professional Java SE 7 Programmer Exams 1Z0-804 and 1Z0-805: A Comprehensive OCPJP 7 Certification Guide (Expert’s Voice in Java) que al revisar por internet los comentarios y opiniones de la gente con respecto al mismo lo que hicieron fue desanimarme a comprarlo asi que opte por yo mismo recabar mi material aunque esto me tomara mas tiempo para preparar la certificación, a continuación se los detallo:

  • The Well-Grounded Java Developer: Es un magnifico libro, en mi opinion digno a estar en la biblioteca de todo buen programador Java, por supuesto es un libro que yo denominaría de nivel intermedio, ya requiere conocimientos fundamentales en Java, pero toca desde cosas basicas del lenguaje (nuevas para Java 7) como el project coin hasta aspectos más avanzados como la concurrencia y el framework fork/join para el trabajo con hilos y otros lenguajes de la JVM tales como Groovy, Scala y Clojure. De este estudie project coin, NIO2 y concurrencia.
  • Java 7 New Features Cookbook: Este libro repasa con bastante detalle las novedades de NIO2, de hecho dedica 5 capítulos del libro a este tema, un libro a recomendar para aquellos que quizás sientan que están un poco desactualizados (digamos que se quedaron en Java 1.4 o Java 5) y quieren de una forma bastante light ir empapandose de las novedades del lenguaje, de este libro estudie los mismos objetivos que del libro anterior (project coin, NIO2 y concurrencia), realmente en mi opinión se complementan muy bien para estudiar.
  • Tutoriales Java de Oracle, específicamente internacionalización, JDBC, Concurrencia, además pueden descargarse en formatos para libro electrónico.
  • Java Practice Questions: Upgrade to Java SE 7 Programmer, este es un libro que consta unicamente de preguntas tipo certificación de todo los objetivos a evaluar en la certificación, por supuesto con sus respectivas respuestas y explicación, a mi este libro me vino muy bien para evaluarme una vez consideraba que ya había cubierto un objetivo especifico y así poder ver si tenia algún tema falto por cubrir.
  • Al final opte por comprar el paquete de whizlabs para actualización a Java 7, no puedo decir que me haya ido mal, porque me permitió hacer simulacros de examen pero si esperaba que tuviese mas preguntas (solo tiene 243) y que estuvieran clasificadas por objetivo/tema, ya que en algún momento tuve interés de solo evaluarme en un tema en especial y no pude.
  • Por ultimo encontre un simulacro de examen gratuito y que sinceramente esta muy bien que de paso se ejecuta mediante JNLP, la página en cuestión es Java Quiz Player.
  • NOTA: Es muy importante programar, programar y seguir programando, sinceramente no conozco otra forma de poder internalizar los conocimientos sobretodo cuando se trata de tantas clases y cada una de ellas con sus respectivos métodos, además de ser una especie de abogado del diablo y plantearse uno mismo interrogantes, intentar conocer en detalle cuando y/o por que un determinado método arroja una exception en particular. En este orden de ideas les diría por ejemplo, ¿Que sucede si a una sentencia switch le paso un String null? ¿Alguna vez han ejecutado un switch donde el case “default” sea el primero de la lista? y así sucesivamente.

No puedo negarles que estoy muy contento de hecho tenia como 3 años que no presentaba un examen de certificación, pero mas que por el resultado del examen, lo que me  contenta y que de hecho considero que es lo más importante de todo este proceso es que “HE APRENDIDO”, y eso haya o no un papel que lo avale es lo que mas me llena y es por eso que por ahora seguiré invitando a la gente a que lo intente ya que siempre todo lo que conlleva la preparación para presentar una certificación entre estudiar, plantearte interrogantes, programar, nos deja conocimiento y el saber, es PODER.

Otros enlaces de interés:

– Sitio Web en Amazon de Esteban Herrera, este ha publicado libros (de preguntas y respuestas) para los exámenes de certificación 1Z0-803, 1Z0-804 y 1Z0-805, este ultimo es el que les mencione arriba llamado Java Practice Questions: Upgrade to Java SE 7 Programmer.

– Página de enlace a los tutorales de preparación para las certificaciones de Oracle.

– Guia para el examen de certificación (la actualización) 1Z0-805 de Mikalai Zaikin, quien ya lleva un largo recorrido preparando guías de certificación para casi todas las certificaciones Java.

Entonces, quien se anima a preparar esta certificación o para aquellos que están haciéndolo, ¿qué tal les va en la preparación? ¿Añadirían algún otro recurso a la lista que les he detallado anteriormente?

Material de estudio para la Oracle Certified Professional Java Programmer

Esta certificación antiguamente antes de la adquisición de SUN de parte de Oracle era llamada Sun Certified Java Programmer (SCJP), ahora el motivo de este post es compartir con ustedes el material con el cual considero es justo y suficiente para aprobar el examen de Oracle Certified Professional Java Programmer.

Comenzare con par de libros (listados abajo) cuya autora la considero de las mejores, ya que no solo se basa es presentarnos muy buenos ejemplos sino que a su vez explota los canales visuales y emocionales para el aprendizaje. Ella es Kathy Sierra. Además ella tambien ha creado una de las comunidades mas importante llamada javaranch, donde podras encontrar un inmenso foro que trata no solo de dudas acerca de certificaciones sino de programación en general, entre otras cosas, podras alli hallar enlaces a mas material recomendado por los foristas, asi como fe de erratas de los libros, libros review etc… muchas de las preguntas que ya te has hecho te asuguro que estan alli con sus respectivas respuestas.

Por otro lado si posees cuenta twitter (y si no, no dudes en crearte una rapidamente) no pierdas tiempo y conviertete en seguidor de la cuenta de Whizlabs, que diaramente nos ofreceran una pregunta tipo examen con su respectiva respuesta.

Por ultimo nunca pero nunca dejes de acudir a la Java API y de revisar el tutorial java. Con esto y un poco de esfuerzo de tu parte estoy seguro que lograras certificarte asi que te deseo Mucho exito!!!

Aquellos que ya se han certificado que nos recomendarias.