Qual é a diferença entre o compileSdkVersion e o targetSdkVersion?

olhei para a documentação {[[9]}para construir com grades, mas ainda não sei qual é a diferença entre {[[0]} e targetSd ... vejo que esta pergunta já foi feita antes, mas a única resposta cita apenas o doc, que é o que não é claro para mim.