¿Qué elementos de SQL necesitan saber los científicos de datos?

Mi trabajo como científico de datos ha estado construyendo una aplicación basada en datos para mi empresa. Obtenemos información de ventas de los clientes sobre sus productos, y de ese intento e inferimos la demanda. Casi todos los datos que tengo se almacenan en tablas SQL (MySQL y Redshift), por lo que trato a SQL como el almacén de datos del que necesito canalizar.

En cuanto a las habilidades específicas de SQL:

Una comprensión básica de cómo se estructuran las tablas SQL:

Especialmente claves primarias, claves secundarias e índices intercalados. Si está haciendo algo que consulta desde SQL repetidamente (por ejemplo, un producto que analiza los últimos 30 días de X, que se ejecuta como un cronjob cada día), es posible que desee discutir con cualquier ingeniero de datos qué tipo de requisitos su propio código / producto tiene. Tener que hacer escaneos completos de tablas porque una tabla no está correctamente codificada es una pena. Probablemente usará la palabra clave EXPLAIN a medida que avanza.

Manejo de fechas y horarios:

A menudo se ocupará de eventos con etiqueta de tiempo, y es posible que deba convertir a / desde UTC, eliminar tiempos solo para obtener una fecha (Postgres TRUNC, enviar mis marcas de tiempo de MySQL a la fecha, etc.) o seleccionar un cierto rango de fechas.

Comprensión de PRAGMA y comandos administrativos:

A veces, para que los datos se ajusten correctamente, debe comprender el esquema de la tabla. Si puede consultarlo, su vida será más fácil. Además, saber cómo hacer un poco de control del trabajo (¿tiene una consulta que está atando todo pero asociada con un programa bloqueado?

Aquí hay muchas respuestas realmente buenas, pero pensé que daría un poco de tranquilidad.

El conocimiento mínimo requerido de SQL requerido dependerá en gran medida de los puestos que está solicitando, así que lea la descripción del trabajo con cuidado. No exageres tus habilidades para hacer que tu aplicación sea más favorable, no quieres terminar en una posición en la que realmente necesiten a alguien que pueda salir corriendo y que no seas tú.

Enfatiza tu habilidad para aprender. La velocidad y eficiencia con que una persona puede aprender es mucho más valiosa que las habilidades técnicas que ya ha adquirido.

Todo eso para decir que uso Postgresql todos los días en el trabajo. Ahora soy bastante fluido, pero cuando me contrataron no supe nada más de lo que aprendí de un taller de fin de semana que tomé para poder agregar SQL a mi currículum. Nunca había escrito una consulta real en una base de datos en producción. Ni siquiera soy un informático, mi doctorado es en neurociencia cognitiva.

Hay una increíble variedad en lo que hace un científico de datos. Sería imposible decirle a, byc que debe saber para obtener un trabajo como Científico de Datos porque los requisitos varían en una increíble variedad de dominios y responsabilidades laborales. No puede prepararse para un puesto genérico en Data Science porque no hay un puesto genérico en Data Science.

Por lo tanto, debe reducir su alcance. ¿En qué pocos dominios te gustaría trabajar? ¿Cuál te gustaría que fuera tu papel? ¿Qué no querrías hacer? ¿Qué habilidades técnicas son requisitos para estos puestos en las ofertas de trabajo de hoy?

En mi marca de ciencia de datos, no tengo ningún papel en la infraestructura de back-end, pero algunos científicos de datos sí. Con lo que ya sabe de SQL, eso puede ser suficiente para ese tipo de posición de Data Scientist.

Sin embargo, si desea una posición en análisis, debe centrarse más en cómo agregar y unir tablas, las diversas formas en que puede hacer eso, cómo hacer múltiples combinaciones de tablas de agregado personalizadas en la misma consulta, cómo hacer consultas desde Python u otro lenguaje analítico para extraer los datos y hacer el análisis en el mismo lugar, etc.

Pero siempre tenga en cuenta que solo puede entrenar para las habilidades que los empleadores necesitan hoy. Cuando termine su educación, todo lo que acaba de aprender ya está desactualizado. Así que aprende la gramática, pero no te estreses demasiado sobre el vocabulario que puedes buscar fácilmente. Perfeccione su capacidad de adquirir nuevas habilidades de manera rápida y eficiente, será la herramienta más valiosa que tenga.

Casi todos los científicos de datos con los que he trabajado pasan probablemente la mayor parte de su tiempo escribiendo SQL y scripts relacionados. Si trabaja con “Big Data”, querrá hacer la mayor cantidad de preparación / disputa de datos utilizando el poder y la velocidad de Redshift o Vertica (o lo que sea que su empresa use para una base de datos relacional). Por supuesto, esto generalmente implica hacer uniones y filtrar. Cuando los datos están estructurados exactamente para ejecutar los modelos, luego extrae los datos o una versión muestreada de los datos en R o cualquier herramienta que use para ML No es práctico ni rápido hacer la manipulación de datos a gran escala en R. Por supuesto, esto se basa en mi experiencia, que es específica para juegos y aplicaciones móviles en general, donde he trabajado en varias empresas haciendo análisis.

Tenemos una gran cantidad de scripts SQL que combinan los datos en tablas convenientes para que nuestros scripts analíticos los analicen. (En su mayoría están en R.) Tienen consultas bastante retorcidas con muchas combinaciones, agrupar por / tener, muchas tablas temporales, crear-tabla-como-seleccionar, índices, en otras palabras, casi todo lo que un experto usuario de SQL lo sabría.

El esquema “en bruto” está optimizado para búsquedas y no para análisis, por eso se necesita este material. En general, cuanto más grande es el mundo db, menos “maestros” sirve.

Debido a que SQL se basa en la teoría de conjuntos, un SQL es una de las herramientas más poderosas para muchos científicos de datos. Mucho más importante que comprender ‘actualizar’ o ‘insertar’ son los siguientes conceptos:

1) Modelado de datos : la comprensión de los modelos de datos relacionales es fundamental tanto para el análisis efectivo como para el uso de SQL. Un científico de datos eficaz debe saber modelar relaciones uno a uno, uno a muchos y muchos a muchos. Además de eso, deben estar familiarizados con los modelos de datos desnormalizados, como el esquema de estrella y copo de nieve.

2) Agregaciones : el análisis de datos se trata de agregaciones. Comprender cómo interactúa la cláusula ‘agrupar por’ con las uniones y el uso efectivo de la cláusula ‘tener’ para el filtrado será fundamental para trabajar con grandes conjuntos de datos.

3) Funciones de ventana : algunas de las funciones más potentes dentro de SQL, desbloquean la capacidad de calcular promedios móviles, sumas acumulativas y mucho más. No es compatible con MySQL 🙁

Puntos extra:
4) ‘IN’ considerado perjudicial : casi todas las consultas que usan el operador ‘in’ se pueden reescribir para usar combinaciones y subconsultas para un mejor rendimiento. ‘IN’ es típicamente una escritura de consulta diferida.

5) Navegación de metadatos : consulta las estructuras de la tabla, los tipos de datos, la cardinalidad de índice, etc. Muy útil si está buscando un terminal SQL con frecuencia.

Trabajo en análisis general y nunca uso eliminar, insertar o actualizar en SQL. La mayoría de las personas consultan los datos y no modifican los datos. Si bien es necesario agregar tablas juntas (uso SAS append), la mayor parte del trabajo consiste en unir diferentes puntos de datos de diferentes tablas en función de ciertos criterios. Después de eso, algunas personas usan métodos estadísticos para analizar el resultado, y algunas simplemente resumen y visualizan. Ambos están bien siempre y cuando puedas sacar conclusiones y percepciones.

Debe estar muy familiarizado con las bases de datos relacionales en general y conocer también los conceptos básicos del almacenamiento de datos. Pero, la respuesta más directa sería unirse. Parece que te detuviste en las uniones y esta es la parte más importante. Acabo de hacer un proyecto que fue muy útil y que te recomendaría que hicieras también.

Haga un mysql (o cualquier otro tipo de RDB): comenzó en mysql workbench y modeló un diagrama ER. Luego exportó el esquema. Luego ejecutó ese esquema para construir las tablas de la base de datos y el esquema. Luego usé ipython para cargar datos en masa en las tablas desde archivos csv. Luego hice un montón de consultas sql (principalmente uniones complejas). Después de hacer esto, vi cuán importantes son las uniones. También familiarícese con las vistas, las claves y los procedimientos almacenados y debería tener la mayoría de los conceptos básicos.

Por supuesto, muchos científicos de datos trabajan con R. Algunas de estas personas usan el paquete sqldf para seleccionar datos de marcos de datos R. Los archivos csv se pueden leer y filtrar simultáneamente usando el comando R read.csv.sql. Se puede acceder a las bases de datos SQL en R a través de una interfaz ODBC utilizando el paquete RODBC . Sin embargo, diría que la mayor parte del poder de procesamiento en esta combinación, y para esta compañía de personas, podría estar en R.

Debe aprender sobre todo cómo consultar una base de datos. Entonces, diferentes formas de unirse (unión izquierda, unión derecha, etc.), “agrupar por” y así sucesivamente. Esta actividad también está muy relacionada con el diseño de bases de datos, ya que las consultas dependerán también de cómo diseñe una base de datos.

En realidad, uso SQL solo para conectarme y obtener los datos (solo lectura). Los comandos a continuación son los más utilizados:
– SELECCIONAR
– UNIRSE
– AGRUPAR POR

More Interesting

Como aspirante a científico de datos, ¿qué debo aprender después de pasar por estadísticas descriptivas e inferenciales?

¿Cuáles son las bibliotecas de Python que usan los científicos de datos?

¿Puedo convertirme en un científico de datos con experiencia en informática?

¿Qué piensan los científicos de datos experimentados sobre 'El proceso de ciencia de datos' descrito en Harvard CS 109 (2013) (ver imagen)?

¿Qué programa de posgrado debería elegir para ser un buen científico de datos, sin embargo, mi promedio de calificaciones es inferior a 3.0?

¿Cómo puede uno convertirse en científico de datos después de haber sido ingeniero de sistemas?

¿Puede una persona sin conocimientos de programación y estadística convertirse en un científico de datos?

¿Es un analista de series temporales un científico de datos?

¿Qué tema ayuda a convertirse en un científico de datos?

¿Quiero convertirme en un científico de datos desde donde debería comenzar?

¿Cuál es una configuración de sistema típica para científicos de datos?

Estoy en tercer año de ingeniería y quiero ser científico de datos. Pero estoy completamente confundido por dónde empezar. Entonces, ¿cómo debo hacerlo?

Quiero convertirme en científico de datos y actualmente estoy en mi año sabático, entonces, ¿qué curso debo elegir después de 12 para convertirme en científico de datos?

¿Cómo convertirse en un buen científico de datos? ¿Cuáles son algunos de los cursos en línea de científicos de datos gratis?

Como científico de datos, ¿debería concentrarme en un conocimiento más profundo de Python o Java?