Thank you for your response. It looks like my content does not fit any data type since it is too big. As I can see, string property values are stored in MySQL in the column of type 'text'. That means 64K limit. But I have several megabytes. Anyway it's not good to store blobs or texts of several megabytes in MySQL tables.
Node association scenario suits my needs pretty well. I understand that I can inject into my metadata extractor NodeService, Repository or any other dependencies I need. But how to make an association with the node being created? I have one more scenario: search. The user should be able to find main node and then using some tools (probably webscripts, or even some remote API), get extracted content. For this search scenario I think parent-child association would be great.