Hive 入门(old) 1 Hive 简介1.1 Hive简介1.1.1 什么是 HiveHive是基于Hadoop的数据仓库解决方案。由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也秉承了这些特性。 这是来自官方的解释。 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。可以将sql语句转换为MapRedu 2025-01-01 Hive #Hive
Hive 基础 Apache Hive 概述什么是Hive?Apache Hive 是一款建立在 Hadoop 之上的开源数据仓库系统,可以将存储在 Hadoop 文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为 Hive查询语言(HQL),用于访问和分析存储在 Hadoop 文件中的大型数据集。 Hive核心是将 HQL转换为MapReduce 程序,然后将程序提交 2025-01-01 Hive #Hive
Hive 性能优化 Hive表设计优化分区表Hive查询基本原理Hive的设计思想是通过元数据将HDFS上的文件映射成表,基本的查询原理是当用户通过HQL语句对Hive中的表进行复杂数据处理和计算时,默认将其转换为分布式计算MapReduce程序对HDFS中的数据进行读取处理的过程。 例如,当在Hive中创建一张表tb_login并关联HDFS上的文件,用于存储所有用户的登录信息,当对这张表查询数据时,Hive中的实 2025-01-01 Hive #Hive
Hive3 新特性 Hive On TezHive 引擎的支持Hive作为数据仓库工具,底层的计算由分布式计算框架实现,目前Hive支持三种计算引擎,分别是MapReduce、Tez、Spark。Hive中默认的计算引擎是MapReduce,由hive.execution.engine参数属性控制。 Hive从2.x版本开始就提示未来的版本中将不再支持底层使用MapReduce,推荐使用Tez或者Spark引擎来代替 2025-01-01 Hive #Hive
数据仓库基础 数据仓库数据仓库概念数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。 数据仓库本身并不“生产”任何数据,其数据来源于不同外部系统;同时数据仓库自身也不需要“消费”任何的数据,其结果开放给各个外部应用使用,这也是为什么叫“仓库”,而不叫“工厂”的 2025-01-01 Hive #Hive
gse 一个高效的分词工具 官方:https://pkg.go.dev/github.com/go-ego/gse 官方 GitHub:https://github.com/go-ego/gse 1、gse 简介Go 高性能多语言 NLP 和分词, 支持英文、中文、日文等, 支持接入 elasticsearch 和 bleve Gse 是结巴分词(jieba)的 golang 实现, 并尝试添加 NLP 功能和更多属 2024-12-09 Go #Go
viper 解析 yaml 文件 官方 GitHub:https://github.com/spf13/viper/ 1、介绍Viper 是适用于Go应用程序(包括Twelve-Factor App)的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。目前Star 15.8k,它支持以下特性: 设置默认值 从JSON、TOML、YAML、HCL、envfile和Java propert 2024-12-09 Go #Go
Go 判断是否为空 1234567891011121314151617181920212223242526272829type Product struct { name, category string price float64 upc int64}func main() { // 判断数组是否为空 arr := 2024-12-06 Go #Go
Go 判断是否存在 字符串是否存在于指定字符串数组中Golang中是没有类似 Python in_array 函数的,所以要判断一个字符串数组中是否包含一个特定的字符串,就需要自行处理 12345678func inArray(a string,b []string) bool { for _,value := range b { if a == value { 2024-12-06 Go #Go
Go 文件操作 Go 实现定时任务有多种方式,每种方式都有其适用的场景。下面是一些常见的实现方法: 1、使用 time.Tickertime.Ticker 是 time 包提供的一个结构体,它会在一个指定的时间间隔重复执行某个任务。有两种使用方式: 123456789101112131415161718192021222324252627282930package main import ( "fmt" 2024-12-06 Go #Go
Go 文件操作 1、os 包1.1、创建文件1234567f, err := os.Create("test.txt")if err != nil { fmt.Println(err) return}fmt.Println(f) // 打印文件指针f.Close() // 打开的资源在不使用时必须关闭 使用 Create() 创建文件时: 如果文件不存在,则创建文 2024-12-06 Go #Go
01-Gorm 快速使用 1. 库安装1go get -u github.com/jinzhu/gorm 2. 数据库连接1234567891011121314import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql")var db *gorm.DBfunc init() { var err erro 2024-12-04 Go #Go
01-概览index The fantastic ORM library for Golang aims to be developer friendly. 特性 全功能 ORM 关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承) Create,Save,Update,Delete,Find 中钩子方法 支持 Preload、Joins 的预加载 事务,嵌套事务, 2024-12-04 Go #Go
02-声明模型models GORM 通过将 Go 结构体(Go structs) 映射到数据库表来简化数据库交互。 了解如何在 GORM 中定义模型,是充分利用 GORM 全部功能的基础。 模型定义模型是使用普通结构体定义的。 这些结构体可以包含具有基本 Go 类型、指针或这些类型的别名,甚至是自定义类型(只需要实现 database/sql 包中的Scanner和Valuer接口)。 user 模型的示例: 123456 2024-12-04 Go #Go
02-约定 使用 ID 作为主键默认情况下,GORM 会使用 ID 作为表的主键。 1234type User struct { ID string // 默认情况下,名为 `ID` 的字段会作为表的主键 Name string} 你可以通过标签 primaryKey 将其它字段设为主键 1234567// 将 `UUID` 设为主键type Animal struct 2024-12-04 Go #Go
03-连接到数据库 GORM 官方支持的数据库类型有:MySQL, PostgreSQL, SQLite, SQL Server 和 TiDB MySQL12345678910import ( "gorm.io/driver/mysql" "gorm.io/gorm")func main() { // 参考 https://github.com/go-sql-driver/mysql#dsn-data 2024-12-04 Go #Go
11-创建 创建记录1234567user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}result := db.Create(&user) // 通过数据的指针来创建user.ID // 返回插入数据的主键result.Error // 返回 errorresult.RowsAf 2024-12-04 Go #Go
12-查询 检索单个对象 First、Take、LastGORM 提供了 First、Take、Last 方法,以便从数据库中检索单个对象。当查询数据库时它添加了 LIMIT 1 条件,且没有找到记录时,它会返回 ErrRecordNotFound 错误 123456789101112131415161718// 获取第一条记录(主键升序)db.First(&user)// SELECT * FROM 2024-12-04 Go #Go
12-高级查询 智能选择字段在 GORM 中,您可以使用 Select 方法有效地选择特定字段。这在 Model 字段较多但只需要其中部分的时候尤其有用,比如编写API响应。 12345678910111213141516type User struct { ID uint Name string Age int Gender string // 很多很多字段}ty 2024-12-04 Go #Go
13-更新 Save 保存所有字段Save 会保存所有的字段,即使字段是零值 123456db.First(&user)user.Name = "jinzhu 2"user.Age = 100db.Save(&user)// UPDATE users SET name='jinzhu 2', age=100, birthday='2016-01-01', updated_at = '2013- 2024-12-04 Go #Go