boundless-student-48844
11/23/2021, 9:25 AMsql_common.py, it first gets the list of all schemas (L344). Next, for each schema, get the list of tables (L408). Lastly, for each table, get column info (L322). That means, for each run of ingestion, it triggers at least N + M statements against SQL source, e.g. (DESCRIBE <table> in Hive), where N is the number of tables and M is the number of schemas.
In our case, we have over 80K tables in Hive metastore. Empirically, we tried to ingest one big Hive schema with over 8K tables, and it took 2 hours to finish. And if we scale this duration linearly to 80K tables, that means in our case, each Hive ingestion would take 20 hours to finish, which is not acceptable.
What’s your thought or advice on this?better-orange-49102
11/23/2021, 9:27 AMboundless-student-48844
11/23/2021, 9:39 AMboundless-student-48844
11/23/2021, 9:43 AMlittle-megabyte-1074
boundless-student-48844
11/24/2021, 4:23 AMdazzling-judge-80093
12/28/2021, 10:18 AMboundless-student-48844
12/28/2021, 10:56 AMPresto on Hive plugin now to address the scalability issue and to support Presto views. We can share with the community once it’s done (cc @dazzling-judge-80093 we can collaborate on this if your team is on it too).
To ingest Hive tables from Hive Metastore, i see there are 2 ways to achieve it among data catalogs.
1. Query HMS (Hive Metastore Service) via Thrift
2. Directly query Metastore DBAlation adopts the former one, empirically it takes ~2h to ingest around 80K tables and 8K Presto views from Hive for Alation. Amundsen adopts the latter one (link). Each has pros and cons. But i would favor second one for best performance gain. We are learning the implementation from Amundsen for this. 😄
big-coat-53708
12/28/2021, 11:50 AMtrino + metastore environment in our company. We extracted the views with the presto_view_extractor, it’s basically nothing different from the Hive extractor you pasted above. Just sharing in case you don’t know about it 😃
I don’t know much about the Hive plugin, but are you trying to implement stateful ingestion? Actually, the stateful ingestion or incremental pulling is the most needed feature for us. We will fully migrate to DataHub if it is supported for Hive Metastore. I believe all these latency won’t be a problem anymore since it will almost be realtime if we have stateful ingestion right? I know this feature has always been on the roadmap but does anyone know what is the latest status of it 🥲boundless-student-48844
12/28/2021, 12:30 PMPresto on Hive plugin on DataHub!
As for stateful ingestion, it is released in 0.8.20. You can check out this month’s all hands - @/Shirshanka Das has a mention of it. But that’s more to address cases when an entity is removed from source. It won’t help to achieve real time ingestion or reduce time taken to ingest. To achieve real time, you would need to push directly from Hive to DataHub. A Hive hook would be required - but unfortunately there’s none from the community yet as I know of. Our company has some use cases that require real time metadata for Hive, we can collaborate in Q2/Q3 2022 if that fits your timeline toobig-coat-53708
12/28/2021, 12:47 PM