hive - 使用 Nifi 将 teradata 表数据加载到配置单元表中的最佳方法是什么?
问题描述
我是 Nifi 的新手,所以你能帮我了解这个平台及其功能吗?我是否能够使用 Nifi 进程在 Hive 中创建一个新表,并按照我在下面定义的方式每周将数据从 teradata 数据库移入其中?我该怎么办?不确定我是否正在建立一个合理的流程。
以下过程是否足够:QueryDatabaseTable(并为 teradata 配置池服务并定义新表名和计划摄取)-> PutHiveStreaming(创建之前定义的表)然后如何将 teradata 模式拉入新表?
解决方案
如果您想在摄取过程中创建新的配置单元表,那么
方法1:
使用 ConvertAvroToOrc 处理器将hive.ddl(external table)属性添加到流文件中,因为我们可以使用此属性并使用 PutHiveQL 处理器执行,然后我们就可以在 hive 中创建表。
如果要创建事务表,则需要更改 hive.ddl 属性。
有关更多详细信息,请参阅此链接。如果您只想从源中提取增量记录,那么您可以使用
ListDatabaseTables(列出源数据库中的所有表)+ GenerateTableFetch(存储状态)处理器
方法2:
QuerydatabaseTable 处理器将生成 Avro 格式的流文件,然后您可以使用ExtractAvroMetaData处理器通过使用一些脚本来提取avro 模式,我们可以创建一个具有所需模式的新属性(即托管/外部/事务表)。
推荐阅读
- html - 如何访问 html 文件中 manifest.json 中映射的文件?
- spring-boot - SpringBoot 使用 ControllerAdvice 中的自定义错误处理所有错误
- typescript - 索引类型参数的打字稿默认值
- wordpress - 显示奇怪方块的 Wordpress 编辑器
- python-3.x - 在 Keras 嵌入层中使用 BERT 嵌入
- javascript - 类型“FormGroup”上不存在属性“ItemID”
- android - 为什么在 Android Studio 中重新创建后通知图标会消失?
- html - 获取API后反应js水平对齐div
- python - AxisError:计算类的准确性时,轴 1 超出维度 1 数组的范围
- html - Overflow-x:hidden 不会阻止内容在移动浏览器上溢出