user62612: I want to find out how many addresses have had x transactions over time. 
I want to find out the average bitcoin transaction size for  over time...I want to do a bunch of different queries like that on a regular basis.
Big picture: I want to do fundamental research on block chain activity and publish it. I have worked a decent bit with databases in the past. How can I learn to interact proficiently with the bitcoin blockchain?

user3041: My recommendation would be to use BlockSci, an in-memory blockchain database with a Python interface that allows to do this kind of queries in a very efficient way.
For instance, you can build this plot with the average transaction size:
 
with just a few lines of code:
import blocksci
import numpy as np
chain = blocksci.Blockchain(DATA_DIR)
tx_size = [(block.height, np.mean(block.txes.size_bytes)) for block in chain]
df_tx_size = pd.DataFrame(tx_size, columns=["Height", "Avg. tx size"])
df = chain.heights_to_dates(df_tx_size)
del df["Height"]
ax = df.resample("M").mean().plot()


user70764: One could extract the Blockchain and import it to your own database for analysis.  For example, see project: bitcoin-to-neo4j.

62612: <p>I want to find out how many addresses have had x transactions over time. </p>

<p>I want to find out the average bitcoin transaction size for  over time...I want to do a bunch of different queries like that on a regular basis.</p>

<p>Big picture: I want to do fundamental research on block chain activity and publish it. I have worked a decent bit with databases in the past. How can I learn to interact proficiently with the bitcoin blockchain?</p>
 3041: <p>My recommendation would be to use <a href="https://github.com/citp/BlockSci" rel="nofollow noreferrer">BlockSci</a>, an in-memory blockchain database with a Python interface that allows to do this kind of queries in a very efficient way.</p>

<p>For instance, you can build this plot with the average transaction size:
<a href="https://i.stack.imgur.com/uKzqS.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/uKzqS.png" alt="enter image description here"></a> </p>

<p>with just a few lines of code:</p>

<pre><code>import blocksci
import numpy as np
chain = blocksci.Blockchain(DATA_DIR)
tx_size = [(block.height, np.mean(block.txes.size_bytes)) for block in chain]
df_tx_size = pd.DataFrame(tx_size, columns=["Height", "Avg. tx size"])
df = chain.heights_to_dates(df_tx_size)
del df["Height"]
ax = df.resample("M").mean().plot()
</code></pre>
 70764: <p>One could extract the Blockchain and import it to your own database for analysis.  For example, see project: <a href="https://github.com/in3rsha/bitcoin-to-neo4j" rel="nofollow noreferrer">bitcoin-to-neo4j</a>.</p>
