Cualquier base de datos relacional debería ser buena para almacenar datos sin procesar, como listas de canciones, listas de usuarios, preferencias de canciones de los usuarios...
Creo que encontrará que las bases de datos relacionales (y SQL) no son tan buenas para almacenar las diversas estructuras de datos que construirá su recomendador. Su motor de recomendaciones probablemente creará datos que realmente no necesitan estar en tablas y manipularlos para almacenarlos en una base de datos relacional puede ser un trabajo desperdiciado.
Solo tenga en cuenta lo que está haciendo y no pierda tiempo poniendo cosas en una base de datos SQL si se siente mal. Tal vez considere usar una base de datos orientada a documentos como MongoDB .
El recomendador que escribí recientemente es en realidad un proceso de servidor Java que lee los datos sin procesar de MySQL, hace todo su trabajo en la memoria y proporciona datos de recomendación a mi aplicación a través de una API HTTP. Ni siquiera me molesté en almacenar los datos de recomendación de forma permanente, ya que se pueden regenerar.