¿Cuáles son las habilidades más importantes para un ingeniero de datos?

Me gustaría agregar lo siguiente a la lista de Yassine Alouini:

  • (Bash) Scripting ; Además de herramientas como Flume o Sqoop, también necesitará dominar los scripts para obtener datos.
  • Scala He encontrado que Scala es un activo maravilloso como ingeniero de datos junior que trabaja con Spark. Por supuesto, esto depende de la industria y el contexto en el que esté trabajando, por lo que diría que esto es opcional.
  • Gestión de datos, con temas como Gestión de calidad de datos, Gestión de seguridad de datos , Arquitectura de datos, Integración de datos.
    • Diseño ETL y modelado de datos ; haciéndose eco del tema de “arquitectura de datos” del punto anterior: aparte de escalar una tubería existente o escribir una tubería reproducible, diría que debe tener en cuenta el diseño de ETL para que pueda tomar buenas decisiones en primer lugar cuando ‘ re configurar una nueva tubería. Esto también requerirá una cierta comprensión del modelado dimensional.
    • Los otros temas que probablemente conocerá, como el control de calidad de los datos, el acceso a los datos y la integración de datos. Sin embargo, si no, ¡se recomienda enfocarse mucho en esto!

Estoy de acuerdo con Yassine en que cuanto más conozca todas estas cosas, mejor.

Me gustaría enfatizar que, además de las tecnologías, conocer los entresijos de la administración de datos es lo más importante, y he tenido que confiar mucho en esto en el tiempo que trabajé como ingeniero de datos. Con su experiencia, siempre podrá mantenerse al día con el lado de la tecnología con relativa facilidad.

Dado que los ingenieros de datos están mucho más preocupados por la infraestructura analítica, la mayoría de sus habilidades requeridas son, previsiblemente, centradas en la arquitectura:

  • Conocimiento profundo de SQL y otras soluciones de bases de datos: SQL es una necesidad, invierta en él y asegúrese de ser al menos un poco competente. En cuanto a las bases de datos, asegúrese de comprender cómo funcionan, por qué usar alternativas NoSQL, cuáles son los beneficios de ciertas arquitecturas sobre otras.
  • Almacenamiento de datos y herramientas ETL: las soluciones de almacenamiento de datos como Redshift o Panoply, así como la familiaridad con las herramientas ETL, como StitchData o Segment, son de gran valor.
  • Análisis basados ​​en Hadoop (Hbase, Hive, Mapreduce, etc.): asegúrese de comprender el impacto de esos tipos de arquitecturas en los sistemas RDBMS tradicionales.
  • Codificación: al menos un lenguaje de programación general como Scala, Java, Python, C ++ y también asegúrese de aprender al menos 1 lenguaje de programación (como Bash). Básicamente, su trabajo es obtener datos de la fuente y asegurarse de que lleguen a algún lado, pero la obtención y colocación puede pasar por scripts y / o aplicaciones.
  • Aprendizaje automático: el aprendizaje automático es técnicamente algo relegado al Científico de datos, el conocimiento en esta área es útil para construir soluciones. * Varios sistemas operativos: el conocimiento de UNIX, Linux y Solaris es muy útil, ya que muchas herramientas matemáticas se basarán en estos sistemas debido a sus demandas únicas de acceso de raíz al hardware y la funcionalidad del sistema operativo más allá de la de Windows de Microsoft o Mac OS.

Consulte esta guía de Panoply sobre cómo convertirse en ingeniero de datos. Encontrará mucha información útil sobre lo que hace un ingeniero de datos, la diferencia entre ingeniero de datos y científico de datos y consejos sobre cómo convertirse en ingeniero de datos.

Aquí hay algunos de alto nivel:

  • Escribir canalizaciones ETL reproducibles (más generalmente, código reproducible)
  • Escalando una tubería de trabajo
  • Configurar una base de datos y cargar datos en ella (podría ser PostgreSQL [1], Hive [2], HBase [3] o cualquier otra cosa).
  • Cálculo distribuido de “Big Data” (ya sea Spark [4], Dask [5], Flink [6] o cualquier otra cosa)

No necesita saber todas estas cosas (y solo estas cosas). Cuanto más informado esté, mejor será.

La mejor de las suertes.

Notas al pie

[1] PostgreSQL – Wikipedia

[2] Apache Hive TM

[3] Apache HBase – Inicio de Apache HBase ™

[4] Apache Spark ™: computación en clúster ultrarrápida

[5] Dask – documentación de dask 0.15.1

[6] Flujo escalable y procesamiento de datos por lotes

Escribí una publicación de blog sobre esta pregunta, y creo que las otras respuestas aquí también proporcionan información súper valiosa.

Si puedo agregar, creo que Python también es un gran lenguaje para saber cuando se trabaja con datos. Aquí hay algunas herramientas excelentes que puede aprovechar si aprende Python:

  • Jupyter: una herramienta de programación colaborativa
  • Scipy: la alternativa de matlab pitón
  • Pandas – biblioteca de python para análisis de datos
  • Airflow: marco basado en Python para construir y administrar tuberías ETL
  • PySpark – Spark también funciona con python, no solo scala

Por último, creo que también debo anunciar un poco mi propia empresa, ya que proporcionamos una plataforma (como servicio) para que los ingenieros y científicos de datos creen su propia infraestructura de análisis de datos. Entonces, si planeas en ingeniería de datos, dale una oportunidad. Le ahorrará el 90% de toda la tubería sucia.