In most cases collecting column/schema statistics when executing pipelines is an overkill, especially when the most interesting metric is pipeline execution time.
run() should accept Analyze objet created through analyze() DSL function.
analyze() - collects total rows and execution time
analyze()->withSchema()->withColumnStatistics() - collect all statistics.