I would assemble my data so that you have 4 keys for each point:
{country:"Germany", indicator:"...", year:2004, value:55}
rather than having keys for each year. Just post-process your csv call.
As you are doing that, determine the min/max years and the min/max values.
Next you build a year scale(x axis) using a domain of [minYear, maxYear]. Next build a value scale for the y-axis using a domain of [minValue, maxValue].