Recall the formula for the sample Pearson correlation between two vectors $x\in\mathbb{R}^n$ and $y\in\mathbb{R}^n$ ([Eq. 3 in Wikipedia](https://en.wikipedia.org/wiki/Pearson_correlation_coefficient)):

$$ r = \frac{\sum_{i=1}^n(x_i-\overline{x})(y_i-\overline{y})}{\sqrt{\sum_{i=1}^n(x_i-\overline{x})^2}\sqrt{\sum_{i=1}^n(y_i-\overline{y})^2}} $$

We simply have to store and update the relevant quantities in this fraction:

 * $\overline{x}_{n+1}$ will contain the sample mean of $x_1,  \dots, x_{n+1}$ (this  is easily calculated online)
 * ditto for $\overline{y}_{n+1}$
 * $N_{n+1}=\sum_{i=1}^{n+1}(x_i-\overline{x})(y_i-\overline{y})$ will contain the numerator of $r$
 * $D_{n+1}=\sum_{i=1}^{n+1}(x_i-\overline{x})^2$ and $E_{n+1}=\sum_{i=1}^{n+1}(y_i-\overline{y})^2$ will contain the two components for the denominator.

Initialize:

$$ \overline{x}_0:=\overline{y}_0:=N_0:=D_0:=E_0:=0 $$

In updating, assume that $\overline{x}_n, \overline{y}_n, N_n, D_n, E_n$ are known, and that a new data pair $(x_{n+1}, y_{n+1})$ arrives. We update:

$$
\begin{array} \;\;\;
\overline{x}_{n+1}:=& \frac{1}{n+1}(n\overline{x}_n+x_n) \\
\overline{y}_{n+1}:=& \frac{1}{n+1}(n\overline{y}_n+y_n) \\
N_{n+1}:=& N_n + (x_{n+1}-\overline{x}_{n+1})(y_{n+1}-\overline{y}_{n+1}) \\
D_{n+1}:=& D_n + (x_{n+1}-\overline{x}_{n+1})^2 \\
E_{n+1}:=& E_n + (y_{n+1}-\overline{y}_{n+1})^2.
\end{array}
$$

Then the correlation is

$$ r = \frac{N_{n+1}}{\sqrt{D_{n+1}}\sqrt{E_{n+1}}}. $$