Dynamic Update is a legacy feature only supported in QlikView - not Qlik Sense. It does not connect to external data via ODBC or other connectors. So any data you want to update or insert has to be pulled in by some kind of programming. That programming has to use either Actions/Dynamic Update, VBScript in Macros or an externally written program that use the QlikView Object Model to call methods to do Dynamic Update. The latter could be a C# or other type of program that can connect via Windows Automation/COM to QlikView's object model. All the data that Dynamic Update manipulate is in-memory. Dynamic Update is not very well documented and not an extremely robust feature so Qlik is not actively supporting it for the last few years.
I would advice against using Dynamic Update unless you are extremely adventurous and have a lot of programming experience and a lot of time on your hands to get it working reliably.
Direct Discovery works for both QlikView and Qlik Sense. Direct Discovery utilize the connectors that comes with Qlik (ODBC or SQL-compliant connectors). The data that is retrieved is not brought into memory as a whole only cached and it is often just a single fact table even though multiple tables can be Direct Discovery tables. With Direct Discovery some restrictions come into play this is not the case with a pure in-memory data model.
Direct Discovery can be used for very large amounts of data. Direct Discovery can easily handle billions of rows as long as the back-end database can deliver rows in a speedy manner. HPE with Vertica has been demoed with a trillion rows and a few seconds response time. There is a youtube video demonstrating it.