小编Ali*_*i n的帖子

将自动增量标识添加到oracle中非空的现有表中

我想知道如何在现有的oracle表中添加标识列?我正在使用oracle 11g.假设我有一个名为DEGREE的表,我将为其添加一个标识列.

FYI表不为空.

database oracle identity

7
推荐指数
2
解决办法
1万
查看次数

通过配置或新服务区分微服务逻辑

我们有一条数据处理管道,可在其中接收来自不同来源的数据。整个管道是通过使用事件驱动的体系结构和微服务来实现的。服务之一具有三个单独的任务。其中两个在不同的数据源之间是完全相同的,但是第三个任务范围可能会根据我们的数据源是什么而略有变化。例如,对于一个源,可以基于文件1和文件2计算唯一签名,对于另一个源,可以根据字段2和3计算唯一签名。实现此服务的最佳方法是如何与微服务粒度原则保持一致?

我想到了三种方法:

1)创建一个服务,并对每个源使用不同的实现(例如工厂设计模式)。根据来源,将在运行时使用其中一种实现。

优点:服务数量少。复杂度降低

缺点:由于该服务将在所有数据源之间共享,因此,通过添加任何新的数据源,应重新部署该服务,这将在该服务与负责从源收集数据的任何服务之间创建隐式依赖关系。

2)将此服务分为两个服务,对所有源使用一个,然后重新实现每个数据源的提取服务。

优点:收集器与这两个服务之间没有依赖性。通过添加新的源,需要实施新的服务,并且不需要重新部署与其他源相关的服务。

缺点:更多的服务,并且由于服务太小,我们将来可能会面临纳米服务的问题。

3)不要更改服务的粒度,而是在运行时创建服务的不同实例。每个都有不同的配置,以指定用于每个源的字段集。在这种情况下,代码是共享的,但是运行时实例根据它属于哪个源而有所不同。

优点:服务数量少,没有操作依赖性

缺点:将逻辑的复杂性转移到运行时,这可能使部署和操作更具挑战性

architecture event-driven microservices

7
推荐指数
1
解决办法
171
查看次数

传统的DB单例连接效果很差

我在我的java应用程序中使用单例数据库连接,这是我的连接管理器类的代码:

public abstract class DatabaseManager {
    //Static instance of connection, only one will ever exist
        private static Connection connection = null;    
        private static String dbName="SNfinal";
        //Returns single instance of connection
        public static Connection getConnection(){       
            //If instance has not been created yet, create it
            if(DatabaseManager.connection == null){
                initConnection();
            }
            return DatabaseManager.connection;
        }   
        //Gets JDBC connection instance
        private static void initConnection(){           
            try{        
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                   String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
                      "databaseName="+dbName+";integratedSecurity=true";

                DatabaseManager.connection =
                             DriverManager.getConnection(connectionUrl);        
            }
            catch (ClassNotFoundException e){       
                System.out.println(e.getMessage());
                System.exit(0);
            }
            catch (SQLException e){ …
Run Code Online (Sandbox Code Playgroud)

java jdbc query-performance

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

无法从链中的任何提供商加载 AWS 凭证 Spring Cloud Stream Kinesis Binder

如果不使用系统级别的默认配置,我无法连接到 Spring Cloud Stream Kinesis Binder (1.2.0.RELEASE) 中的 AWS kinesis。仅当系统已配置为使用默认配置文件并且使用 [default] 配置文件设置访问密钥 ID 和秘密访问密钥时,应用程序才能工作。否则,将无法通过抛出此异常来连接到 AWS 资源:

Caused by: com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain: [com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper@3b2c8bda: Unable to load credentials from service endpoint, com.amazonaws.auth.profile.ProfileCredentialsProvider@688d619c: No AWS profile named 'default']
    at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:136)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.getCredentialsFromContext(AmazonHttpClient.java:1225)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.runBeforeRequestHandlers(AmazonHttpClient.java:801)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:751)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:744)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:726)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:686)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:668)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:532)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:512)
    at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.doInvoke(AmazonDynamoDBClient.java:3768)
    at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:3737)
    at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.executeDescribeTable(AmazonDynamoDBClient.java:1836)
    at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.describeTable(AmazonDynamoDBClient.java:1804)
    at com.amazonaws.services.dynamodbv2.document.Table.describe(Table.java:137)
    at org.springframework.integration.aws.metadata.DynamoDbMetadataStore.afterPropertiesSet(DynamoDbMetadataStore.java:145)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1837)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1774) …
Run Code Online (Sandbox Code Playgroud)

aws-java-sdk spring-cloud-stream spring-integration-aws

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

更改hbase时间戳排序以获取特定行的第一个版本

根据我的要求,我需要在Hbase中获取特定行的第一个版本.假设以下Htable:

row_key          cf1:c1           timestamp
----------------------------------------
1                  x                 t1
1                  x                 t2
1                  x                 t3
...
Run Code Online (Sandbox Code Playgroud)

假设我想根据时间戳检索第一个版本的row(1).首先,为此目的是否有任何hbase java方法?第二,如果没有这样的方法,我可以通过获取行(1)的最后版本来将时间戳的排序顺序更改为DESC以检索此类单元吗?对hbase的时间戳排序进行此更改有什么顾虑?

java hbase nosql

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

将脚本或命令与 Skaffold 开发部署一起运行到 Kubernetes 集群

我想在运行之前运行一个命令来从远程存储库克隆脚本,skaffold dev我需要以某种方式注入git clone命令或将 git clone 命令和相应的参数放在 shell 脚本中,然后使用 Skaffold 运行 shell 脚本。

从 Skaffold 工作流的角度来看,这一步应该在构建之前运行。我在构建阶段使用 Jib,看起来 Jib 状态没有给我任何在实际构建之前运行脚本的能力。我不知道我是否可以为 Skaffold 生命周期添加一个新阶段,例如pre-build. 我想到的一个解决方案是使用custombuild 而不是Jib并将所有预构建命令以及与 jib 相关的命令放在一个脚本中运行。这种方法可能有效,但不会很方便。我想知道是否有更好的方法来使用 Skaffold 做到这一点。

build:
  artifacts:
    - image: gcr.io/k8s-skaffold/example
      custom:
        buildCommand: ./prebuild-and-build.sh
Run Code Online (Sandbox Code Playgroud)

kubernetes skaffold

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

使用JUNG计算特征向量值

我想用JUNG库计算特定图的顶点的特征向量中心度量.不幸的是我的代码返回错误的结果.这是我的代码的一部分:

DirectedSparseGraph<Customer, Transaction> tsn=f.getTSN()
EigenvectorCentrality<Customer, Transaction> eScorer=new EigenvectorCentrality<>(tsn);
for(Customer node:tsn.getVertices()){
            System.out.println(node.getName()+" :eigen:"+eScorer.getVertexScore(node));
        }
Run Code Online (Sandbox Code Playgroud)

你能不能告诉我,我错过了使用jung库的特征向量的哪一部分?问候.

java graph jung

2
推荐指数
1
解决办法
483
查看次数

Java高效迭代char

作为我实现的一部分,我需要尽可能高效地实现对字符的迭代.这是我写的源代码的一部分:

public int normalize(char s[], int len) {
    for (int i = 0; i < len; i++) {
          switch (s[i]) {
            //numbers
            case EN_D0:
            case AR_D0:
              s[i]= FA_D0;
              break;
            case EN_D1:
            case AR_D1:
              s[i]= FA_D1;
              break;
            case EN_D2:
            case AR_D2:
              s[i]= FA_D2;
              break;
            case EN_D3:
            case AR_D3:
              s[i]= FA_D3;
              break;
            case EN_D4:
            case AR_D4:
              s[i]= FA_D4;
              break;
            case EN_D5:
            case AR_D5:
              s[i]= FA_D5;
              break;
            case EN_D6:
            case AR_D6:
              s[i]= FA_D6;
              break;
            case EN_D7:
            case AR_D7:
              s[i]= FA_D7;
              break;
            case EN_D8: …
Run Code Online (Sandbox Code Playgroud)

java iteration performance

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

针对Titan db的嵌套遍历gremlin查询

我想知道如何有一个以嵌套格式返回结果的gremlin查询.假设有如下属性图:

USERPAGE一些特性,如顶点AGEUSER顶点;

FOLLOW边缘USERPAGE;

我正在寻找一个单一的高效查询,它为所有年龄大于20岁的用户提供所有跟随的用户.我可以使用来自应用程序端的简单循环来执行该操作,并且每次迭代使用简单的遍历查询.不幸的是,这样的解决方案对我来说效率不高,因为它会产生大量查询,并且在这种情况下网络延迟可能很大.

graph-databases gremlin titan tinkerpop3

0
推荐指数
1
解决办法
627
查看次数