自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (2)
  • 收藏
  • 关注

原创 sql 笛卡尔积

然而,现代的SQL实践倾向于使用显式联接,因为这种方式更加清晰和易于理解。显式联接明确地指出了哪些表是如何关联的,而且它支持所有类型的联接,包括内联接、外联接等。而隐式联接主要依赖于笛卡尔积。子句中指定用于连接两个表的条件,从而创建一个结果集,这个结果集包含了所有满足这些条件的记录。在早期的SQL实践中,隐式联接是非常常见的,尤其是在早期版本的数据库系统中。隐式联接的工作原理是通过在。子句中列出所有的表,然后在。子句中指定关联条件。就是隐式联接的条件。

2024-04-24 10:55:11 251

原创 dremio支持设置

默认情况下,Dremio 系统会向 Dremio 发送有关系统运行状况和使用情况的基本信息,以便更好地支持用户并提高产品质量。启用/禁用使用 HashJoin 运算符对原始数据类型使用 Dremio 的原生快速字段复印机。指定使用查询参数发送的临时身份验证令牌的生存期(以秒为单位),用于将用户重定向到资源的操作,例如生成作业配置文件、下载数据集和下载查询支持包。通过在云存储提供程序的分布式存储上启用反射数据缓存,提高使用反射的查询的性能。指定 Dremio UI 的用户会话令牌的生存期(以分钟为单位)。

2024-04-22 09:26:45 881

原创 dremio 数据类型图标识别

decimaldatetimedateTime。

2024-04-15 15:26:38 136

原创 dremio作业概括

要查看作业结果,请单击“作业概述”页面右上角的“打开结果”链接。只要运行作业的引擎已启动,UI 中就会显示“打开结果”链接。当运行作业的引擎关闭时,它将消失,并且仅对通过 UI 运行的作业可见。扫描详细信息包括源类型、扫描线程计数、IO 等待时间(以毫秒为单位)和扫描的行数。提供有关查询操作的实际成本(以内存为单位)的统计信息。提供有关查询操作的实际成本(CPU 处理)的统计信息。作业从开始到完成所需的时间长度(以秒为单位)。这些可以是视图或表。运行查询并启动作业的用户的用户名。为作业考虑的字节数和行数。

2024-04-15 14:58:17 350

原创 dremio 执行前的规划在干什么 ?

然后,如果其中 有 反射确实满足查询,Dremio 将生成使用它们的查询计划。它搜索“考虑”阶段的反射,并尝试将每个反射匹配到用户查询的替代形式中。选择成本最低的计划,其中成本是估计行数、CPU、I/O、网络和内存的函数。这是dremio 系统优化的一部分,因此不管否此表上是否有反射,或者建立在此表上的其他反射,都会作为查找的一部分。然后,Dremio 将计划的成本 与 直接针对表 执行查询的成本进行比较,并选择成本较低的计划。在此阶段,计划器将在现有反射中搜索包含可满足查询的列的反射。

2024-04-15 14:55:21 294

原创 dremio部署相关概念

为了防止由于堆内存不足而导致 JVM 故障,如果 JVM 的堆利用率保持在 85% 的阈值以上,Dremio 的堆监视器会终止查询,即使在完全垃圾回收之后也是如此。在执行器节点上,堆监视器评估当前正在运行的查询,并杀死释放大约 25% 的内存堆所需的查询。执行程序节点的数量取决于您的负载。例如,当您有大量查询(大量数据或大量计算)和/或大量查询时,将增加执行程序节点的数量。在安装过程中,Dremio 软件会自动确定可用的系统内存量,并在堆内存和直接内存之间分配它,具体取决于 Dremio 节点类型。

2024-04-10 09:21:54 610

原创 dremio虚拟数据湖反射说明

虚拟数据湖反射说明1、基础概念反射是从 现有表 或 视图派生的源数据或查询的优化具体化,类似于 “物化视图派生出 反射的表 或 视图是反射的锚点(基点或支柱点)Dremio 的查询优化器可以通过使用一个 或 多个反射来部分或全部满足该查询,而不是处理基础数据源中的原始数据,从而加速对表或视图的查询。查询不需要直接引用反射。相反,Dremio 会动态重写查询,选择最小的 查询计算成本 ,以使用满足查询的反射。

2024-03-31 18:32:01 876 1

原创 hadoop 之 MapReduce

1.1 MapReduce定义MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。1.2MapReduce优缺点1.2.1 优点1)MapReduce易于编程它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运行。也就是说你写一个分布式程序,跟写一个简单的串.

2022-04-09 11:25:03 647

原创 两数之和(力扣1)

给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], tar...

2021-09-04 22:09:51 176

原创 有效的字母异位词(力扣242)

题目描述:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若s 和 t中每个字符出现的次数都相同,则称s 和 t互为字母异位词。示例1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false提示:1 <= s.length, t.length <= 5 * 104s 和 t仅包含小写字母解法:1、采...

2021-09-04 20:14:45 208

原创 滑动窗口最大值(力扣)

题目描述:给你一个整数数组 nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 ...

2021-09-02 21:38:35 278

原创 循环队列的实现(Java)

循环对列判空的条件:head==tail判断对列满的条件: (tail+1)%n==head注意对列的tail 指针指向队尾,这个位置不存数据,为了区别队列空,和队列满的条件/** * 基于数组实现的循环队列 */public class ArrayQueue { private String item[];//字符串数组实现队列 private int n = 0;//对列元素个数 private int head = 0;//对头元素下标 priva

2021-08-28 23:26:41 92

原创 顺序队列的实现(Java)

/** * 基于数组实现的对列 */public class ArrayQueue { private String item[];//字符串数组实现队列 private int n=0;//对列元素个数 private int head=0;//对头元素下标 private int tail=0;//队尾元素下标 //初始化 public ArrayQueue(){} public ArrayQueue(int capacity){ ..

2021-08-28 22:15:48 279

原创 数组实现栈(Java)

栈的定义和简单:总结起来是:先进后出作者在代码里做了详细注释,这里不在赘述;/** * 基于数组实现的顺序栈 */public class ArrayStack { private String item[];//数组 private int count;//栈中元素的个数 private int n;//栈的大小 public ArrayStack(){} public ArrayStack(int n){ this.item =

2021-08-28 21:43:36 130

原创 剑指offer 24(反转链表)

题目描述:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路:定义三个节点指针,curr指向当前节点,next指向curr的下一个节点,pre指向cur的前一个节点。把cur的指向下一个节点的指针依次指向前一个节点,cur 后移。但是(cur 的指针都指向前一个节点了,就没有办法后移了),这时我们定义.

2021-08-28 19:59:36 59

原创 盛最多水容器(力扣题)

题目描述:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。我这里写了两种解法:1:双指针法(向中间夹逼)2:暴力求解(两个for 循环求出 最大的容器面积)法一://时间复杂度为O(n)class Solution { public i...

2021-08-28 00:12:04 81

原创 数组最大值(力扣题)

给你一个整数 n 。按下述规则生成一个长度为 n + 1 的数组 nums :nums[0] = 0nums[1] = 1当 2 <= 2 * i <= n 时,nums[2 * i] = nums[i]当 2 <= 2 * i + 1 <= n 时,nums[2 * i + 1] = nums[i] + nums[i + 1]返回生成数组 nums 中的 最大 值。这题基本上是按照题目要求:我这里用两种解法:法一:public class arrMax

2021-08-28 00:04:42 183

原创 三数和(力扣题)

给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?即 a+b=-c请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]看了题解才写出的代码:思路;1:暴力求解,即三个 for循环,一次遍历最终得到结果,这里不说明思路 2:双指针法,(这个我没想到,看代码才明白...

2021-08-27 23:57:27 244

原创 移动零(力扣题)

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解法:我这里定义一个下标 j 其中nums[j]用来存放,数组中非零的数首先用一个f o r循环遍历数组,找到所有非零的数,并且把赋值到nums[j] 当中。代码如下:class Solution { public vo...

2021-08-27 23:47:46 57

原创 爬楼梯(力扣算法)

题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数解法:第n个台阶只能从第n-1或者n-2个上来。到第n-1个台阶的走法 + 第n-2个台阶的走法 = 到第n个台阶的走法,已经知道了第1个和第2个台阶的走法,一路加上去。目前我会两种解法:1:递归2:累加第一种解法时间复杂度为O(2^n) 在提交的过程中超时了这是最最基本的斐波那且数列 ,最基本的递归求法:...

2021-08-27 23:36:42 454

原创 链表的逆置(带头节点)

首先建立一个带头节点的链表:public class headListList { public static class Node { public int data; public Node next = null; public Node() { } public Node(int data) { this.data = data; } } pri

2021-08-27 23:17:47 575

原创 插入排序算法

插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 public static void main(String[] args) { //直接插入排序 int a[]=new int[]{5,8,66,2,45,25,35,9,}; ..

2021-08-20 20:44:15 100

原创 选择排序算法

选择排序和冒泡排序有一点点像,选择排序是默认前面都是已经排序好的,然后从后面选择最小的放在前面排序好的的后面,首先第一轮循环的时候默认的排序好的为空,然后从后面选择最小的放到数组的第一个位置,第二轮循环的时候默认第一个元素是已经排序好的,然后从剩下的找出最小的放到数组的第二个位置,第三轮循环的时候默认前两个都是已经排序好的,然后再从剩下的选择一个最小的放到数组的第三个位置,以此类推。下面看一下代码。 public static void choice(int a[]) { fo

2021-08-19 22:33:32 68

原创 分块查找

分块查找是折半查找和顺序查找的一种改进方法,分块查找由于只要求索引表是有序的,对块内节点没有排序要求,因此特别适合于节点动态变化的情况。分块查找要求把一个数据分为若干块,每一块里面的元素可以是无序的,但是块与块之间的元素需要是有序的。即第1块中任一元素的关键字都必须小于第2块中任一元素的关键字;而第2块中任一元素又都必须小于第3块中的任一元素 public static void main(String args[]) { int index[] = {22, 48, 8...

2021-08-17 22:40:20 289

原创 二分查找

前提是数据有序二分法查找适用于大的数据,但前提条件是数据必须是有序的,他的原理是先和中间的比较,如果等于就直接返回,如果小于就在前半部分继续使用二分法进行查找,如果大于则在后半部分继续使用二分法进行查找……我们来看下代码 public static int binarySearch(int a[],int k) { //二分查找,只使用与顺序表的查找 int low=0; int high=a.length-1;//最后一个元素

2021-08-17 11:09:49 70

原创 顺序查找(哨兵)

线程安全:实际开发中。使用多线程程序的情况很多。如银行,排号系统。火车票售票系统等。这种多线程的程序通常会发生问题。以火车站售票系统为例。在代码中判断当前票数是否大于零。如果大于零。则执行将该票出售给乘客的功能。但当两个线程同时访问这片代码时,从只剩最后一张票。第一个程序将票售出。与此同时,第二个线程也已经执行完成,判断是否有票的操作。并得出票数大于零的结论。于是他也执行售出操作。这样就会产生负数。所以在编写多线程程序时,应该考虑线程安全问题。实际上,线程安全问题来源于两个线程同时存取单一对象的数据。

2021-08-17 10:08:08 2222

原创 判断回文

方法一判断纯数字回文:public static void main(String[] args) { /** * 判断回文//任何一个数除以10的余数就是该数最后一位 * //任何一个数除以10的商就是排除掉最后一位后的数 * //所以 ,一个数1234 就可以通过这种方法得到 123 和 4 * //接下来对 123 进行同样的操作,就得到 12 和 3 * //接下来得到 1 和 2

2021-08-15 16:33:33 138

原创 冒泡排序算法

冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。#include<iostream>using namespace std;int main(){//冒泡排序法 int arr[7] = { 5,16,12,44,52,.

2021-08-14 11:11:42 33

原创 暴力匹配算法

原理:暴力字符匹配算法的实现原理还是非常简单的,从第一个字符开始进行匹配,如果匹配不成功,移动到下一个字节重新开始逐个匹配代码如下:public class num { @Test public void test() { /** * 暴力匹配算法 */ String s1="aeefafacdabc"; String s2="efa"; int dex=I..

2021-08-12 23:49:02 315

原创 Calendar类

一、说明:Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。1、Calendar提供了一个类方法 ,getInstance用于获取Calendar对象2、常用方法public abstract void add(int field,int amount)//加减给定日期 public final void set(int year, int month ,int date)//设置当前日期的年月日...

2021-08-04 08:28:33 59

原创 SimpleDateFormat 类简单用法

1、用于区域设置敏感的方式格式化和解析日期,日期和时间格式由日期和时间模式字符串指定。2、在日期和时间模式字符串中,从“A”到“Z”,以及从“a”到“z”的字母被解释为表示日期或时间字符串组成的模式字母。 常用的模式字母对应关系如下:y---年 d---日 m---分M---月 H---时 s---秒2、构造方法:1、public SimpleDateFormat() 表示构造一个SimpleDateFormat...

2021-08-03 22:49:09 1088

原创 冒泡排序算法

冒泡排序算法的原理如下:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。public class new001 { public static void main(String[] args) { int [] arr=new.

2021-08-02 21:38:38 53

原创 短路与&& 短路或 || 逻辑与 & 逻辑或 |

一、区别 短路与&& 和短路或|| 的作用相同,但有短路效果逻辑与 & 和逻辑或 | 没有短路效果1、逻辑与 & 和逻辑或 | 没有短路效果int i=10;int j=20; System.out.println((i++>100)&(j++)>100); // false System.out.println("i:"+i); //11 ...

2021-08-02 20:39:07 483

原创 字符串的比较(==与equals)

一、==与equals 1、 ==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同2、==是指对内存地址进行比较 , equals()是对字符串的内容进行比较3、==指引用是否相同, equals()指的是值是否相同二、compareTocomplareTO(T o) * 判断字符串大小的依据是根据它们在字典中的顺序决定的 * int compareTo(T o) 将此对象与指定的对象进行比较以进行排序。public c.

2021-08-02 19:18:57 2408

原创 大小写字母转换

/** * 小写字母与大写字母的换算 */ char x='A'; char y=(char)(x+'a'-'A');//大写转小写,计算小写字母与大写字母之间的距离 System.out.println(y); char q='a'; char p=(char)(q+'A'-'a');//小写转大写字母,计算大写与小写字母之间的距离 System.out.printl...

2021-08-02 17:30:30 95

原创 求最大公约数

一、最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。例如: n 和 m 的最大公约数public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("输入另两个数"); int n=sc.nextInt();/...

2021-08-01 23:20:13 465

原创 顺序表的按值查找

//注意Length是从1 开始//而数组下标即data 是从0 开始#include<iostream>using namespace std;#define MaxSize 10 //默认最大长度typedef struct{ int data[MaxSize]; int Length; //当前表长}SeqList;void InitList(SeqList& L){ L.Length = 6; for (int i = 0; i <L.Len.

2021-07-29 23:44:32 414

原创 顺序表的删除

顺序表删除第 i 位元素//注意Length是从1 开始//而数组下标即data 是从0 开始#include<iostream>using namespace std;#define MaxSize 10 //默认最大长度typedef struct{ int data[MaxSize]; int Length; //当前表长}SeqList;void InitList(SeqList& L){ L.Length = 6; for (int i =.

2021-07-29 23:42:23 440

原创 顺序表的插入

要求实现递增顺序表的插入操作。L是一个递增的有序顺序表简单注释都在代码里,一目了然。测试了输出的操作,自己试了多次,符合预期结果#include<iostream>using namespace std;#define MaxSize 10 //默认最大长度typedef struct //线性表的自定义结构体{ int data[MaxSize]; int Length; //当前表长}SeqList;void InitL

2021-07-29 23:37:55 193

原创 学生信息管理系统2

目标:为实现学生信息的增删改查作者之前还有一篇,是未调优的,此篇在增删改查的同时,给出了更多的反馈信息及提示具体步骤及设计思路: 1、用输出语句完成主界面的编写 2、用Scanner完成键盘录入数据 3、用Switch语句完成界面的选择 4、用循环完成再次回到主界面import org.w3c.dom.ls.LSOutput;import java.util.ArrayLis...

2021-07-29 23:19:51 63

静态分配顺序表及其按位插入数据的实现.txt

静态分配顺序表,按位插入,适宜数据结构初学者

2021-04-23

带头结点的单链表的建立,按值查找,按位查找.txt

带头结点的单链表的建立,按值查找,计算表长,及其输出单链表中的数据

2021-04-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除