¿Qué tan difícil es para un desarrollador implementar back-end de análisis de datos y el panel de control front-end?

Esa es una descripción de tarea terriblemente amplia. Antes de comenzar a hablar sobre herramientas, es mejor que sepa algo sobre:

  • ¿Qué estás tratando de analizar y presentar?
  • ¿Qué son los datos? ¿De dónde viene? ¿Qué tan “limpio” es? ¿Qué normalización se requiere?
  • ¿Qué preguntas estás tratando de responder?
  • ¿Qué implican las matemáticas?
  • ¿Cuáles son los aspectos importantes de los resultados? ¿Qué tipos de visualizaciones serán útiles para presentar esos resultados?

Dependiendo de las respuestas sustantivas a esas preguntas, probablemente encontrará que el 90% de su solución está disponible de forma comercial, ya sea en forma de servicios alojados, paquetes de software comerciales, software FOSS y / o varios bloques de construcción (JavaScript bibliotecas, bibliotecas de software de fondo).

Pero, francamente, las nuevas empresas no son el lugar para aprender en el trabajo; espero que sus tareas no sean críticas para la misión.

Creo que la respuesta aquí dependerá enormemente de exactamente lo que intente lograr.

¿De cuántos datos estamos hablando?

¿Cómo se almacena y se accede actualmente?

¿Necesitará crear agregaciones / transformaciones, o los datos ya están en un formato que puede usar?

¿Se están agregando los datos en tiempo real y, de ser así, cuánto y con qué rapidez?

¿Tiene el presupuesto para contratar a un consultor externo durante un par de meses para que lo ayude?

Si puede darme algunos detalles más, al menos puedo ofrecerle algunos consejos para orientarlo en la dirección correcta.

Por ahora, no se asuste … para responder a su pregunta directa, sí, es totalmente posible que un desarrollador implemente algo como esto, a menos que esté lidiando con una gran cantidad de datos, hay un montón de herramientas que pueden ayudarlo a extraer lo que usted necesita de sus conjuntos de datos.

Tal vez soy demasiado optimista sobre el enfoque. Pero, creo que quieres una implementación sucia que pueda hacer un desarrollador. Debajo está la pila que viene a mi mente.

Análisis de datos

Problema 1:

Enormes solicitudes que llegan a su servidor, procesando millones de eventos sin problemas.

Puede usar Apache Storm para manejar solicitudes grandes y concurrentes de eventos de seguimiento por parte de los clientes.

Base de datos del problema 2

cada cliente puede estar produciendo una gran variedad de eventos y es información. Por lo tanto, tiene sentido ir a cualquier base de datos NoSql. Puedes mirar a Cassandra para esto.

Problema 3: front-end y consulta de gran base de datos.

Busque sistemas distribuidos.

Puede crear un front end excelente utilizando cosas como las bibliotecas d3 angulares y reactivas.

Pero si quieres ahorrar tiempo. Puedes ver cómo funciona Apache kibana. La pila ELK es inmejorable para el análisis de registros al menos.

Agregaré más más tarde. Espero eso ayude.

Nuestro desarrollador hace esto por nuestra empresa todo el tiempo, y puedo pensar en tres elementos principales que necesita saber para implementar:

  1. Conozca los datos / esquemas, etc. Debe comprender cuáles son los datos, cómo se relacionan y qué está tratando de lograr. Entonces usaremos los sistemas existentes para comprender primero los datos, buscar dónde están almacenados en nuestros datos sql.
  2. Sea capaz de escribir buenas consultas para obtener los datos anteriores de manera eficiente. Probar y confirmar los datos.
  3. Crea una interfaz para visualizar los datos. Hemos utilizado varios controles y marcos, algunos gratuitos y otros pagados para obtener lo que queremos.

Al decir eso, hemos comenzado a usar MS PowerBi para algo de esto ahora, ya que visualiza bastante bien, por lo que significa que nuestro desarrollador solo necesita hacer algo de 1 (el solicitante hace la mayoría) y luego solo 2, con nuevamente, solicitante de datos que hacen visuales ellos mismos.

Creo que vi al menos hadoop como fuente de datos en PowerBi …

No hizo ningún curso específico, solo quería hacer algo diferente.