This document discusses sampling techniques for large data streams. It begins by introducing the problem of sampling from keyed data streams, where the goal is to compute a fixed-size summary that can estimate arbitrary subset sums with error bounds. It then covers basic stream sampling methods like Bernoulli and Poisson sampling. It discusses reservoir sampling as a method to uniformly sample a stream in one pass. The document also covers extensions to weighted streams and techniques like priority sampling that aim to optimize properties of the estimates. Finally, it discusses ways to make stream samples smarter by retaining additional information about sampled items.