小编Kev*_*sko的帖子

CKAN能够处理100k +文件和TB数据吗?

我们想要做的是为我们的实验室成员创建一个本地数据存储库来组织,搜索,访问,编目,引用我们的数据等.我觉得CKAN可以做所有这些事情; 但是,我不确定它将如何为我们实际拥有的数据处理这些任务(我可能是错的,这就是我要问的原因).

我们的实验室正在采购大量数据供内部使用.我们希望能够在我们的组中编目和组织这些数据(也许是CKAN?),这样人们就可以将数据推送到目录,并提取数据并使用它.一些用例将是,具有数据的ACL,Web界面,搜索,浏览,组织,添加,删除,更新数据集等.虽然CKAN看起来非常适合这种情况,但问题在于数据(更多)所以我们正试图处理的数额.

我们想要对TB级图像(200k +图像),各种格式的地理空间数据,Twitter流(JSON数据的TB),数据库转储文件,二进制数据,机器学习模型等进行编目.我不认为它会合理地将100k 64MB JSON文件作为资源添加到CKAN数据集中,或者是吗?我们意识到我们无法在这个JSON/images/geo数据中搜索,这很好.但我们希望找到有关我们是否有可用数据的信息(例如我们搜索"twitter 2015-02-03"),这是一种元数据搜索,如果你愿意的话.在CKAN中使用本地文件存储,如果用户请求200k图像会发生什么?当必须回答这些请求时,系统是否会无响应?

我已经在datahub.io上看过CKAN,其中绝大多数都是小型CSV文件,2-3MB的小型zip文件,以及数据集中不超过20或30个单独的文件.

那么CKAN能够做我们想要的吗?如果对替代品没有任何建议?

编辑更具体的问题而不是讨论:

我浏览了一下并搜索了有关此主题的信息,但我没有看到部署的系统包含任何大量数据.

  1. 我能够上传的文件大小是否有限制(例如压缩的400GB数据库文件)?
  2. 我作为资源上传到CKAN中的数据集的文件数量是否有限制?(例如,我创建了一个数据集并上传了250,000个64MB JSON文件,系统是否可用?)
  3. UI似乎不支持在该时间上载多个文件的能力(例如,作为资源的数据文件夹).是否有支持此功能的工具/扩展/插件?
  4. 一个.是否有任何限制会阻止我使用CKAN API来实现这一目标?

ckan

6
推荐指数
1
解决办法
1461
查看次数

如何使用Hibernate和Spring Boot正确处理空结果集

我有一个使用Hibernate和Spring Data JPA的Spring应用程序CrudRepository.如果查询的数据存在于数据库中,则一切似乎都能正常工作.但是,如果有一个返回没有结果的查询,那么CrudRepository返回null并得到一个NullPointerException.因此,例如,http://localhost:8080/api/id=3如果数据库中有一个id为3的行,它可以正常工作.如果没有id为3的行,则失败并显示:

出现意外错误(type = Internal Server Error,status = 500)

在客户端和NullPointerException服务器端.

处理"无结果"查询的简单情况的正确方法是什么?

java spring hibernate spring-mvc

6
推荐指数
1
解决办法
7330
查看次数

在Zeppelin中使用%pyspark解释器注册表时,我无法访问%sql中的表

我正在使用Zeppelin 0.5.5.我在这里找到了python的代码/示例,因为我无法使用%pyspark http://www.makedatauseful.com/python-spark-sql-zeppelin-tutorial/.我感觉他的%pyspark示例有效,因为如果您使用原始的%spark zeppelin教程,则已经创建了"bank"表.

这段代码在笔记本中.

%pyspark
from os import getcwd
# sqlContext = SQLContext(sc) # Removed with latest version I tested
zeppelinHome = getcwd()
bankText = sc.textFile(zeppelinHome+"/data/bank-full.csv")

bankSchema = StructType([StructField("age", IntegerType(),     False),StructField("job", StringType(), False),StructField("marital", StringType(), False),StructField("education", StringType(), False),StructField("balance", IntegerType(), False)])

bank = bankText.map(lambda s: s.split(";")).filter(lambda s: s[0] != "\"age\"").map(lambda s:(int(s[0]), str(s[1]).replace("\"", ""), str(s[2]).replace("\"", ""), str(s[3]).replace("\"", ""), int(s[5]) ))

bankdf = sqlContext.createDataFrame(bank,bankSchema)
bankdf.registerAsTable("bank")
Run Code Online (Sandbox Code Playgroud)

此代码位于同一笔记本中,但工作台不同.

%sql 
SELECT count(1) FROM bank

org.apache.spark.sql.AnalysisException: no such table bank; line 1 pos 21
...
Run Code Online (Sandbox Code Playgroud)

apache-spark-sql apache-zeppelin

5
推荐指数
1
解决办法
4799
查看次数

Spring REST响应在自定义控制器中有所不同

我有几个控制器自动创建REST端点.

@RepositoryRestResource(collectionResourceRel = "books", path = "books")
public interface BooksRepository extends CrudRepository<Books, Integer> {
    public Page<Books> findTopByNameOrderByFilenameDesc(String name);
}
Run Code Online (Sandbox Code Playgroud)

当我访问:http:// localhost:8080/Books

我回来了:

{
    "_embedded": {
        "Books": [{
            "id": ,
            "filename": "Test123",
            "name": "test123",
            "_links": {
                "self": {
                    "href": "http://localhost:8080/books/123"
                },
                "Books": {
                    "href": "http://localhost:8080/books/123"
                }
            }
        }]
    },
    "_links": {
        "self": {
            "href": "http://localhost:8080/books"
        },
        "profile": {
            "href": "http://localhost:8080/profile/books"
        },
        "search": {
            "href": "http://localhost:8080/books/search"
        },
        "page": {
            "size": 20,
            "totalElements": 81,
            "totalPages": 5,
            "number": 0
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java spring spring-data spring-data-rest spring-rest

5
推荐指数
1
解决办法
1086
查看次数

在 Spring Boot Data Rest 中向 HATEOAS 响应添加更多信息

我有以下 REST 控制器。

@RepositoryRestController
@RequestMapping(value = "/booksCustom")
public class BooksController extends ResourceSupport {

    @Autowired
    public BooksService booksService;

    @Autowired
    private PagedResourcesAssembler<Books> booksAssembler;

    @RequestMapping("/search")
    public HttpEntity<PagedResources<Resource<Books>>> search(@RequestParam(value = "q", required = false) String query, @PageableDefault(page = 0, size = 20) Pageable pageable) {
        pageable = new PageRequest(0, 20);

        Page<Books> booksResult = BooksService.findBookText(query, pageable);

        return new ResponseEntity<PagedResources<Resource<Books>>>(BooksAssembler.toResource(BooksResult), HttpStatus.OK);

    }
Run Code Online (Sandbox Code Playgroud)

Page<Books> BooksResult = BooksService.findBookText(query, pageable);的由SolrCrudRepository. 当它运行时BookResult有几个字段,内容字段和其他几个字段,一个是highlighted. 不幸的是,我从 REST 响应中得到的唯一content信息是字段中的数据和 HATEOAS 响应中的元数据信息(例如页面信息、链接等)。将highlighted字段添加到响应的正确方法是什么?我假设我需要修改ResponseEntity …

rest spring spring-data spring-data-rest spring-hateoas

5
推荐指数
2
解决办法
3020
查看次数

Liquibase maven 插件未使用类路径属性

出于某种原因,当我在我的liquibase.properties文件中设置它时,Liquibase maven 插件没有使用我的属性。当我运行时,mvn liquibase:update我得到以下信息。

[INFO] there are no resolved artifacts for the Maven project.
[INFO] Parsing Liquibase Properties File
[INFO]   File: target/classes/liquibase.properties
[INFO]   'classpath' in properties file is not being used by this task.
Run Code Online (Sandbox Code Playgroud)

因此,更新失败,因为 liquibase 找不到驱动程序并且无法连接到数据库。

我看到了这个 SO 问题,但他们使用的是 liquibase 可执行文件而不是 maven。我用它作为如何使用 liquibase.properties 文件的例子。

使用 MS-SQL Server 设置 Liquibase

我看到它在哪里遇到异常 L571 到 L588 异常,但实际的异常没有打印出来,所以我不知道错误的原因。

https://github.com/liquibase/liquibase/blob/9ae7f90a0bbbbcec229a0788afa74831db348ced/liquibase-maven-plugin/src/main/java/org/liquibase/maven/plugins/AbstractLiquibaseMojo.java#L573

java liquibase maven

5
推荐指数
1
解决办法
3153
查看次数

在 Postgresql 中查询复杂 JSON 的简洁方法

我将 JSON 数据存储在我的 postgresql 9.5 DB 的 JSONB 字段中。

有没有办法在不知道哪一列是子对象的情况下制作子对象列?

有问题的 JSON 示例:

{
   "a":1,
   "b":[1,2,3],
   "c":"bar",
   "d":{
      "key1":"value1",
      "key2":"value2"
   }
 }
Run Code Online (Sandbox Code Playgroud)

我可以使用以下内容从 JSON 对象中获取所有键。

SELECT * FROM json_object_keys('{"a":1,"b":[1,2,3],"c":"bar", "d":{"key1":"value1", "key2":"value2"}}')

那时我可以使用 json_to_record() 但我想将列拆分为它们自己的单独字段。

select * from json_to_record('{"a":1,"b":[1,2,3],"c":"bar", "d":{"key1":"value1", "key2":"value2"}}') as x(a int, b text, c text, d text)

得到我

a| b       | c   | d     
1| [1,2,3] | bar | {"key1":"value1", "key2":"value2"}
Run Code Online (Sandbox Code Playgroud)

有没有办法让这样的东西回来,最好是在一个查询中?

--------------------------------------------------------------------
a| b       | c   | d                                  | key1  | key2     
1| [1,2,3] | bar | …
Run Code Online (Sandbox Code Playgroud)

postgresql json jsonb postgresql-9.5

3
推荐指数
1
解决办法
1161
查看次数

创建文件夹时使用 Python 看门狗库查看多个事件

我遇到了一些我没有预料到的额外事件的问题。

我在看文件夹C:\Users\kvasko\Downloads\data。如果我复制一个文件夹,2017\07\25\LogFile.xml我将看到以下 3 个“创建”事件,而我希望只看到 1 个。如果我提前创建日期文件夹结构(但在应用程序运行时查看文件夹),它只会生成一个像我期望的那样的事件。我从来没有因为创建文件夹而收到事件。就像为创建文件夹而生成事件一样,但是在检查我的on_created(self,event)所有三个外观事件上消息的实际事件时,它们看起来完全相同。这里发生了什么?

这是示例输出和最小示例。

2017-09-22 13:58:10,182 - root - INFO - Watchdog: file created C:\Users\kvasko\Downloads\data\2017\07\25\LogFile.xml
2017-09-22 13:58:11,184 - root - INFO - Watchdog: file created C:\Users\kvasko\Downloads\data\2017\07\25\LogFile.xml
2017-09-22 13:58:12,187 - root - INFO - Watchdog: file created C:\Users\kvasko\Downloads\data\2017\07\25\LogFile.xml
Run Code Online (Sandbox Code Playgroud)

我希望:

2017-09-22 13:58:12,187 - root - INFO - Watchdog: file created C:\Users\kvasko\Downloads\data\2017\07\25\LogFile.xml
Run Code Online (Sandbox Code Playgroud)

有没有办法从文件夹创建中检测它是否实际上有多个事件?

以下是我的观察者配置。

folder = "C:\\Users\\kvasko\\Downloads\\data"
observer = Observer(MyProcessHandler(patterns=["*.xml"]), folder, recursive=True)
observer.start_observer()

os.mkdirs("C:\\Users\\kvasko\\Downloads\\data\\2017\\07\\25")
shutil.copy2("C:\temp\LogFile.xml", "C:\\Users\\kvasko\\Downloads\\data\\2017\\07\\25")

try:
    while True:
        time.sleep(5)
except:
    print("Error")
Run Code Online (Sandbox Code Playgroud)

以下是我的处理程序类。

import …
Run Code Online (Sandbox Code Playgroud)

python watchdog

3
推荐指数
1
解决办法
3127
查看次数

由于消费者较慢,Kafka 重新平衡主题中的数据

例如,假设我有一个包含 4 个分区的主题。我向这个主题发送了 4k 条消息。每个分区获得 1k 条消息。由于外部因素,其中 3 个消费者分别处理了所有 1k 条消息。但是,第 4 个分区只能通过 200 条消息,还剩下 800 条消息需要处理。有没有一种机制可以让我“重新平衡”主题中的数据,说给分区 1-3 200 的分区 4s 数据,让所有带有 200 条消息的分区成为一个进程?

我不是在寻找一种向消费者组添加额外节点并让 kafka 平衡分区的方法。

添加了重新分配分区的输出:

当前分区副本分配

{
  "version": 1,
  "partitions": [
    {
      "topic": "MyTopic",
      "partition": 0,
      "replicas": [
        0
      ],
      "log_\ndirs": [
        "any"
      ]
    },
    {
      "topic": "MyTopic",
      "partition": 1,
      "replicas": [
        0
      ],
      "log_dirs": [
        "any"
      ]
    },
    {
      "topic": "MyTopic",
      "partition": 4,
      "replicas": [
        0
      ],
      "log_dirs": [
        "any"
      ]
    },
    {
      "topic": "MyTopic",
      "partition": …
Run Code Online (Sandbox Code Playgroud)

producer-consumer apache-kafka kafka-consumer-api

3
推荐指数
1
解决办法
3129
查看次数