  For many modern applications in science and engineering, data are collected
in a streaming fashion carrying time-varying information, and practitioners
need to process them with a limited amount of memory and computational
resources in a timely manner for decision making. This often is coupled with
the missing data problem, such that only a small fraction of data attributes
are observed. These complications impose significant, and unconventional,
constraints on the problem of streaming Principal Component Analysis (PCA) and
subspace tracking, which is an essential building block for many inference
tasks in signal processing and machine learning. This survey article reviews a
variety of classical and recent algorithms for solving this problem with low
computational and memory complexities, particularly those applicable in the big
data regime with missing data. We illustrate that streaming PCA and subspace
tracking algorithms can be understood through algebraic and geometric
perspectives, and they need to be adjusted carefully to handle missing data.
Both asymptotic and non-asymptotic convergence guarantees are reviewed.
Finally, we benchmark the performance of several competitive algorithms in the
presence of missing data for both well-conditioned and ill-conditioned systems.
