Minería del universo de datos enviando un taladro a jupyter mapr bitcoinmarkets reddit

Elon Musk piensa en grande en sus planes de energía, en sus planes de exploración espacial y en sus planes de transporte terrestre. Esos planes han incluido enviando un Tesla Roadster de primera generación en el espacio con algunos Bowie jugando en la radio. A pesar del título, mis aspiraciones actuales son de naturaleza un poco más terrestre: quiero llevar Apache Drill a usuarios de Jupyter Notebooks basados ​​en Python.

Esto es realmente muy sencillo: publicaciones de blog como https://blog.ouseful.info/tag/apache-drill/ y publicaciones como https://community.mapr.com/docs/DOC-1856-how-to-query -drill-in-python-from-jupyter-notebook muestra cómo los usuarios que ejecutan Jupyter Notebooks pueden consultar fácilmente Drill, usando herramientas como pydrill en el código. De hecho, la API Rest de Drill facilita que los programadores de Python importen solicitudes, se arremanguen y trabajen con Apache Perforar para el deseo de su corazón.

Cuando me conecté a versiones seguras de Drill, el uso de computadoras portátiles presenta un problema único: la cadena de conexión contiene la contraseña para Taladrar. Esto incluye llamadas Rest API. Las contraseñas de acceso, incrustadas en un medio compartible como un bloc de notas, son inherentemente problemáticas. Incluso si la política es eliminar las contraseñas antes de compartirlas, la práctica está plagada de ejemplos de olvido de hacerlo. Datos sin responsabilidad es datos en riesgo, y por lo tanto, quería una solución elocuente para manejar este problema.

Dos líneas, y, boom, tienes resultados. Pero luego unas pocas líneas más para explorarlas, unas líneas más para visualizar, etc. Lo sé, partiendo los pelos, pero si tengo que trabajar con todo esto "extra" código para cada consulta, eso me va a frustrar. Además, no quiero citar correctamente mis consultas; yo sólo quiero para escribir sql. No quiero iterar a través de una variable para ver mis resultados; Solo quiero verlos. No quiero asignarlos a pandas usando la función de marco de datos apropiado; Solo quiero que esté disponible para que trabaje. Entonces, ¿cómo puedo hacer que esto suceda?

Código repetido: quería código que pudiera instalar en mi servidor portátil o en la imagen de Docker, para que los usuarios NO tuvieran memoria de cómo hacerlo "invocar" Perforar. Esto debería ser algo que cuando lo implemente, funcione a nivel empresarial, sea seguro y proporcione una interfaz sencilla para los usuarios. También proporciona una interfaz más limpia en Jupyter. Menos código de interfaz, más código de datos.

Dadas esas pautas, me propuse construir un módulo de Python que pudiera hacer todo eso y más. Así que aquí, presento https://github.com/JohnOmernik/jupyter_drill, un módulo para interactuar con Drill desde Python. Portátiles Jupyter. En otra publicación, revisaré la instalación y el uso básico, pero esta publicación se centra en la arquitectura, las limitaciones y la lista de tareas pendientes. Arquitectura

Mantiene la seguridad de la contraseña, incluso si se comparten los portátiles. Si bien las conexiones a Drill desde una computadora portátil solicitarán una contraseña, esa solicitud NO almacenará la contraseña en la computadora portátil ni la mostrará en la pantalla. Por lo tanto, puede crear un cuaderno, hacer análisis, guardar el cuaderno y compartir ese cuaderno guardado con otro usuario. Cada uno de ustedes se conectará con sus propios nombres de usuario, y si ambos tienen acceso a los datos, el otro usuario podrá replicar su trabajo sin compartir las credenciales.

• Utiliza la pantalla incorporada Pandas Table para mostrar los resultados. IPython tiene una forma de mostrar Pandas DataFrames en formato tabular. Dicho esto, hay margen de mejora en lo que respecta a la visualización, y con ese fin, la instalación de BeakerX (instrucciones en la próxima publicación) proporciona una tabla interactiva rica que se muestra automáticamente si BeakerX está instalado.

En mi configuración actual, tengo mis Drillbits detrás de un balanceador de carga basado en DNS. Esto funciona bien para la mayoría de las cosas; sin embargo, en esta configuración, descubrí que cuando el DNS devolvía una dirección IP diferente en las solicitudes posteriores, perdía toda la información de mi sesión (porque las sesiones no se comparten entre Drillbits). Esto fue frustrante Incluí algunos trabajos de pirateo que me ayudaron:

Dado que este es mi primer "lanzamiento," Tengo una serie de cosas para hacer que quiero ver mejoradas. Espero que al publicar esto y compartirlo con la comunidad, pueda obtener comentarios sobre cómo hacer que sea fácil de usar, fácil de personalizar y fácil de analizar. Ya sé que quiero limpiar el archivo README.md y mejorar el formato de las pantallas de ayuda dentro del módulo, pero ¿qué otra cosa haría más fácil la vida de un científico de datos? Conclusión

Desde el punto de vista de la interfaz, mi filosofía personal es que la interfaz debe ser lo más fácil posible. Creo que este PoC se acerca bastante, pero obviamente, a medida que aprendo más sobre Jupyter y Drill, puedo encontrar maneras de hacer que este módulo sea aún más intuitivo y fácil de usar para los científicos de datos. Si todo esto te parece genial, dirígete a mi otra publicación en el blog Drilling Jupyter: Visualización de datos mediante la conexión de Jupyter Notebooks y Apache Drill y sigue las instrucciones para instalarlo! Por favor, siéntase libre de comentar aquí, o pasar ideas / informes de errores en el repositorio de git para ayudar a mejorar este proyecto.

banner