作者归档:在线疯狂

RSS feed of 在线疯狂

数据湖与数据仓库

数据仓库(Data Warehouse)和数据湖(Data Lake)现在都广泛被用于存储大量数据,但是它们之间并不是可以互换的概念。

数据湖 (Data Lake)

数据湖可以直接存储原始数据(raw data),数据可以是结构化(structured)、半结构化(semi-structured)甚至是无结构(unstructured)的。

只有当从数据湖查询数据的时候,才需要对其赋予模式(schema-on-read),这对于数据科学家或者数据分析师来说非常方便,可以根据需求随时创建新的数据模型。但数据湖一般不会直接面向没有技术背景的业务用户。

在数据湖中存储数据一般比在数据仓库中存储更便宜。由于其灵活性和低成本,数据湖在企业中的应用也越来越广泛。

数据仓库(Data Warehouse)

数据仓库用来把大量的结构化数据从多个数据源集中在一起进行存储。它可以为业务和运营决策人员提供快速地决策支持。但与数据湖不同,数据仓库必须在创建之初就定义好其数据结构(schema-on-write)。

  数据湖 ...

继续阅读

转义Markdown特殊字符

Markdown包含下面的特殊字符

\ ` * _ { } [ ] ( ) # + - . !

转义警号(#)

转义#一般情况下可以用\ ,但如果#和表示h1/h2/h3的 #, ##, ###出现在同一行就需要额外的转义符来转义行内的#。此时可以尝试在行尾再加一个#。(不同的markdown实现的行为可能不一样)

转义重音符(`)

如果`只单独出现一次,可以尝试在前面加\。但如果在其后面又出现了一个`,则两个`中间的文字就会被当成代码引用。

也可以把`放在代码块里,在每行的行首加四个空格就会变成代码块。

多个连续的`会正常输出,比如``或者```。

处理下划线

Markdown语法中,由下划线开始和结尾的的单词或者字符串会被当成强调。但其他情况下使用下划线是可以的。

_test
test_
te_st
`_test

Java同时实现多个接口的同名方法

假设有两个接口包含相同的方法名和签名,一个类同时实现了这两个接口,会发生什么?

interface A {
  void foo();
}

interface B {
  void foo();
}

class C implements A, B {
  @Override
  public void foo() {
    // Compile succeeded.
  }
}

上面的代码可以正常编译。但如果两个方法的签名不同,则会编译错误。

interface A {
  int foo();
}

interface B {
  void foo();
}

class C implements A, B {
  @Override
  public ...

继续阅读

[LeetCode]Minimum Number of Frogs Croaking

题目描述:

LeetCode 1419. Minimum Number of Frogs Croaking

Given the string croakOfFrogs, which represents a combination of the string "croak" from different frogs, that is, multiple frogs can croak at the same time, so multiple “croak” are mixed. Return ...

继续阅读